国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
編寫LINUX硬件驅(qū)動的基本步驟
from http://blog.chinaunix.net/uid-22834118-id-3403242.html
2012.11
  這里只是概要地描述編寫驅(qū)動的基本步驟,且不會涉及到具體操作或復(fù)雜的編程。
要成功編譯及安裝內(nèi)核模塊,需做好以下幾方面事情:

1 安裝編譯工具。(具體安裝不是本文關(guān)心內(nèi)容)

2 下載內(nèi)核源碼,并配置構(gòu)造內(nèi)核樹;內(nèi)核版本最好跟要加載模塊的系統(tǒng)一致,如不一致,
  則可能導(dǎo)致在加載模塊失敗,這時需強(qiáng)制加載。(具體配置設(shè)置及加載不是本文關(guān)心內(nèi)容)
  源碼可到www.kernel.org站上下載。

3 要加載模塊的系統(tǒng)需支持模塊加載功能,否則無法加載驅(qū)動模塊。該功能可在配置系統(tǒng)內(nèi)核時
  選中,如圖所示:

該配置基于linux-3.2.1內(nèi)核
4 編寫驅(qū)動程序 
 demo.zip
 
  當(dāng)編譯環(huán)境搭建好后,接下來就是編寫程序。下面以一個簡單的示例"demo.c"來演示如何編寫一個
 最簡單的驅(qū)動程序,當(dāng)然這個驅(qū)動程序除了演示之外別無他用。
  1. #include <linux/init.h>
  2. #include <linux/module.h>

  3. MODULE_LICENSE("Dual BSD/GPL"); /* 申明模塊使用的協(xié)議 */
  4. MODULE_AUTHOR("Kozo");          /* 申明模塊作者 */
  5. MODULE_DESCRIPTION("It's a demo module"); /* 描述驅(qū)動模塊 */

  6. static __init int demo_init(void)
  7. {
  8.     printk(KERN_INFO"demo init\n");
  9.     return 0;
  10. }
  11. static __exit void demo_exit(void)
  12. {
  13.     printk(KERN_INFO"demo exit\n");
  14. }

  15. module_init(demo_init); /* 聲明加載函數(shù) */
  16. module_exit(demo_exit); /* 聲明卸載函數(shù)*/
5 編寫Makefile文件
 Makefile代碼如下:

點(diǎn)擊(此處)折疊或打開

  1. # DEBUG = y

  2. ifeq ($(DEBUG),y)
  3.     DEBFLAGS = -O -g #-D"macro of your module"
  4. else
  5.     DEBFLAGS = -O2
  6. endif

  7. EXTRA_CFLAGS += $(DEBFLAGS)
  8. #EXTRA_CFLAGS += -I"the direction of header file"

  9. ifneq ($(KERNELRELEASE),)
  10.     obj-m = demo.o
  11. else
  12.     KERNELDIR ?= /usr/src/kernels/$(shell uname -r)/
  13.     PWD := $(shell pwd)
  14. default:
  15.     $(MAKE) -C $(KERNELDIR) M=$(PWD) modules
  16. endif

  17. clean:
  18.     rm -rf *.o *.depend .*.cmd *.ko *.mod.c .tmp_versions *.order *.symvers *.ko.unsigned

 6 編譯模塊
  注意:demo.c與Makefile應(yīng)在同一目錄下。
  使用"$make",便可生成demo.ko模塊。

7 模塊加載與卸載
  加載模塊可使用"#insmod demo.ko"或"#modprobe demo.ko",加載成功后,
可通過"#lsmod | grep demo"查看.
  卸載模塊可使用"#rmmod demo"。

8 輸出模塊打印信息
  使用"#dmesg"可輸出模塊打印信息,demo模塊的輸出信息如下



注:轉(zhuǎn)載時請注明出自:add358.blog.chinaunix.net
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux內(nèi)核驅(qū)動模塊的編譯及加載
Linux下編寫和加載 .ko 文件(驅(qū)動模塊文件)
Linux驅(qū)動編程 step-by-step (一)
Linux驅(qū)動編程中EXPORT
linux驅(qū)動模塊編譯(初學(xué)者)
Linux內(nèi)核驅(qū)動模塊
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服