《linux裝置驅動程式III》學習—第二章

來源:互聯網
上載者:User

 

1,介紹最簡單的hello world 驅動程式。。。。之前已經看過了,這部分過

2,模組程式與應用程式的區別

     @應用程式從頭到尾按順序執行單個任務。模組程式要先註冊到核心,為的是給調用做準備

     @退出時,應用程式的資源系統會回收,模組程式要手動

     @模組程式不能像應用程式那樣串連庫函數,它調用的只能是核心中的標頭檔 include/linux ,linux/asm

     @模組運行在核心空間,應用程式運行在使用者空間

3,核心中的並發----驅動也應該考慮的問題

     驅動程式也是核心程式的一部分,所以這部分介紹了核心編程的注意事項

     核心程式不同於應用程式在一段時間內按順序執行就行了,要記住核心是並發的,同一時刻有很多事情發生

 

4,當前進程指標:current。printk(KERN_INFO " current  pid  is %d",current->pid);

5,驅動程式標準makefile

obj-m := hello.o   說明有個模組要從hello.o中構造,構造出hello.ko

hello-objs := hello1.o hello2.o   說明由兩個檔案1、2構成

make  -C ~/kernel-2.6 M=‘PWD’  modules    -C後是核心的代碼目錄  M後為構造模組前返回的目錄

 

標準makefile模板:

ifneq ($(KERNELRELEASE),)

     obj-m :=hello.o

else

     KERNELDIR ?= /lib/...   你電腦核心所在位置

     PWD := $(shell pwd)    

default:

     $(MAKE)  -C $(KERNELDIR)  M=$(PWD)  modules

clean:

     rm -rf  *.o

endif

6,幾個常用的宏

  EXPORT_SYMBOL(name);  將name參數導到模組外

  MODULE_LICNESE("GPL");  獲得GPL許可

  MODULE_AUTHOR("ZL");  作者

 

6,驅動程式參數傳遞

  module_param(name,int ,0);  name 為參數名字,int為類型

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.