98国产精品综合一区二区三区,国产福利视频,男人添女人囗交做爰视频,日本免费一区二区三区视频观看

你好!歡迎來(lái)到深圳市穎特新科技有限公司!
語(yǔ)言
當(dāng)前位置:首頁(yè) >> Nuvoton/新唐 >> 新唐NUC972最簡(jiǎn)單的驅(qū)動(dòng)教程

新唐NUC972最簡(jiǎn)單的驅(qū)動(dòng)教程

關(guān)鍵字:NUC970 ARM9處理器 作者: 來(lái)源: 發(fā)布時(shí)間:2018-10-23  瀏覽:49

1.新建文本文檔,重命名為 hello_dev.c (驅(qū)動(dòng)的開(kāi)發(fā)同應(yīng)用的開(kāi)發(fā)一樣,也是在文本文檔下開(kāi)發(fā)的)。

2.包含頭文件

內(nèi)核模塊需要包含內(nèi)核相關(guān)頭文件,不同模塊根據(jù)功能的差異,所需要的頭文件也不相同,但是<linux/module.h>和<linux/init.h>是必不可少的。

 

#include <linux/module.h>

#include <linux/init.h>

 

 

 

3.模塊初始化

模塊的初始化負(fù)責(zé)注冊(cè)模塊本身。如果一個(gè)內(nèi)核模塊沒(méi)有被注冊(cè),則其內(nèi)部的各種方法(函數(shù))無(wú)法被應(yīng)用程序使用,只有已注冊(cè)模塊的各種方法才能夠被應(yīng)用程序使用并發(fā)揮各方法的實(shí)際功能。模塊并不是內(nèi)核內(nèi)部的代碼,而是獨(dú)立于內(nèi)核之外,通過(guò)初始化,能夠讓內(nèi)核之外的代碼來(lái)替內(nèi)核完成本應(yīng)該由內(nèi)核完成的功能,模塊初始化的功能相當(dāng)于模塊與內(nèi)核之間銜接的橋梁,告知內(nèi)核“我進(jìn)來(lái)了”。

 

static int __init module_init_func(void)

{

初始化代碼

}

module_init(module_init_func);

 

說(shuō)明:

(1) 模塊初始化函數(shù)一般都需聲明為 static,因?yàn)槌跏蓟瘮?shù)對(duì)于其它文件沒(méi)有任何意義;

(2) __init 表示初始化函數(shù)僅僅在初始化期間使用,一旦初始化完畢,將釋放初始化函數(shù)所占用的內(nèi)存,類似的還有__initdata;

(3) module_init 是必須的,沒(méi)有這個(gè)定義,內(nèi)核將無(wú)法執(zhí)行初始化代碼。module_init宏定義會(huì)在模塊的目標(biāo)代碼中增加一個(gè)特殊的代碼段,用于說(shuō)明該初始化函數(shù)所在的位置。

當(dāng)使用 insmod 將模塊加載進(jìn)內(nèi)核的時(shí)候,初始化函數(shù)的代碼將會(huì)被執(zhí)行。模塊初始化代碼只與內(nèi)核模塊管理子系統(tǒng)打交道,并不與應(yīng)用程序交互。

4.模塊退出。

當(dāng)系統(tǒng)不再需要某個(gè)模塊,可以卸載這個(gè)模塊以釋放該模塊所占用的資源。模塊的退出相當(dāng)于告知內(nèi)核“我要離開(kāi)了”。實(shí)現(xiàn)模塊退出的函數(shù)常稱為模塊的退出函數(shù)或者清除函數(shù)

 

static void __exit module_exit_func(void)

{

模塊退出代碼

}

module_exit(module_exit_func);

 

說(shuō)明:

(1) 模塊退出函數(shù)沒(méi)有返回值;

(2) __exit 標(biāo)記這段代碼僅用于模塊卸載;

(3) module_exit 不是必須的。但是,沒(méi)有 module_exit 定義的模塊無(wú)法被卸載,如果需要支持模塊卸載則必須有 module_exit。

當(dāng)使用 rmmod 卸載模塊時(shí),退出函數(shù)的代碼將被執(zhí)行。模塊退出代碼只與內(nèi)核模塊管理子系統(tǒng)打交道,并不直接與應(yīng)用程序交互。

5.許可證

Linux 內(nèi)核是開(kāi)源的,遵守 GPL 協(xié)議,所以要求加載進(jìn)內(nèi)核的模塊也最好遵循相關(guān)協(xié)議。為模塊指定遵守的協(xié)議用 MODULE_LINCENSE 來(lái)聲明,如:

 

MODULE_LICENSE("GPL");

 

內(nèi)核能夠識(shí)別的協(xié)議有“GPL”、“GPL v2”、“GPL and additional rights(GPL 及附加權(quán)利)”、“Dual BSD/GPL(BSD/GPL 雙重許可)”、“Dual MPL/GPL(MPL/GPL 雙重許可)”以及“Proprietary(私有)”。

如果一個(gè)模塊沒(méi)有指定任何許可協(xié)議,則會(huì)被認(rèn)為是私有協(xié)議。采用私有協(xié)議的模塊,在加載過(guò)程中會(huì)出現(xiàn)警告,并且不能被靜態(tài)編譯進(jìn)內(nèi)核。

 

執(zhí)行完上面步驟,一個(gè)最小的linux驅(qū)動(dòng)便寫(xiě)好了。全部代碼如下:

 

6.編譯

內(nèi)核模塊的編譯需要Makefile文件,在hello_dev.c所在路徑建立Makefile文件:

在Makefile輸入以下文本并保存。

 

obj-m := hello_dev.o

PWD  := $(shell pwd)

KVER ?= $(shell uname -r)

KDIR :=/home/qlqcetc/nuc970bsp/02.linux內(nèi)核3.10.x

all:

  $(MAKE) -C $(KDIR) M=$(PWD)

clean:

  rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions

 

其中obj-m 指定要編譯的源文件是hello_dev.c,KDIR指定內(nèi)核的路徑,驅(qū)動(dòng)模塊的編譯是需要內(nèi)核源碼的相關(guān)文件的,所以需要設(shè)置內(nèi)核源碼所在路徑。

中斷進(jìn)入驅(qū)動(dòng)源碼所在文件夾:

#/home/qlqcetc/nuc970bsp/06.示例驅(qū)動(dòng)程序/00.hello_dev

#ls

編譯:

#make

#ls

生成的hello_dev.ko就是驅(qū)動(dòng)模塊,使用U盤將其復(fù)制到開(kāi)發(fā)板的/lib/modules/路徑下(modules文件夾需要?jiǎng)?chuàng)建),就可以加載驅(qū)動(dòng)模塊了。

開(kāi)發(fā)板終端輸入:

# cd /lib/modules/

# insmod hello_dev.ko

可以看到驅(qū)動(dòng)加載成功,驅(qū)動(dòng)打印出信息:

開(kāi)發(fā)板終端輸入:

# mkdir 3.10.101

# rmmod hello_dev.ko

可以看到驅(qū)動(dòng)卸載成功,驅(qū)動(dòng)打印出信息:

編輯:admin  最后修改時(shí)間:2018-10-23

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬(wàn)眾潤(rùn)豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2025 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

chinese少妇偷sex国语| yy111111少妇无码理论片| 妻子年轻出轨老了老公要离婚| 军人边走边吮她的花蒂| 青青草原精品99久久精品66| 99久久久国产精品免费蜜臀| 同性两个17男互摸互吃的小说| 久久久久亚洲av无码网站| 高洁在公车被灌满jing液| 各种各色bb小便| 男男调教惩罚做到哭play| 野花香视频在线观看免费| 亚洲中文字幕无码av永久| 亚洲 欧美 激情 小说 另类| 约附近学生100元3小时| 老人玩小处雌女hd另类| 国产风流老太婆大bbbhd视频| 无码精品人妻一区二区三区漫画| rape强行asian真实| 日韩亚洲av人人夜夜澡人人爽| 极品白嫩小泬10p| 精品国产三级a∨在线| 校花娇躯被学长抽搐呻吟| 极品人妻偷吃40p| 特黄做受又粗又大又硬老头| 亲妺妺乱的性视频| 亚洲精品国产精品国自产观看| 最近中文字幕在线中文一页| 亚洲av欧洲av人人爽爽软件| 高h小月被几个老头调教| 法国a级情欲片性船| 国产偷人爽久久久久久老妇app| 啊灬啊别停灬用力啊村妇| 97国产av传媒视频在线观看| 女人做爰全过程免费观看美女| 免费看男男gay啪啪网站| 吃奶呻吟打开双腿做受动态图| 国产在线av一区二区麻豆董小宛| 天堂中文在线资源库| 激烈 痉挛 抽搐 潮喷 mp4| 帅气体育生gary网站mv视频|