色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > IT培訓(xùn)問題庫 > 嵌入式linux驅(qū)動如何學(xué)?小白入門必看

嵌入式linux驅(qū)動如何學(xué)?小白入門必看 時間:2018-07-19      來源:未知

嵌入式發(fā)展這么快,很多人都躋身在嵌入式行業(yè),對于新手小白來說,學(xué)習(xí)嵌入式還是會遇到一些問題,就比如說嵌入式linux驅(qū)動, 驅(qū)動程序開發(fā)是嵌入式Linux項目中工作量大的一部分內(nèi)容,開發(fā)出高質(zhì)量的驅(qū)動程序是項目成功的關(guān)鍵,那么嵌入式linux驅(qū)動如何學(xué)呢?那我就來談?wù)剬W(xué)習(xí)嵌入式linux驅(qū)動的小竅門,這可是珍藏版哦。

首先嵌入式linux驅(qū)動你要了解,驅(qū)動和linux是兩碼事,就拿一個lcd來說,我們可以在windows ce上編寫驅(qū)動,也可以利用linux framebuffer編寫驅(qū)動,當(dāng)然如果是做通信的朋友,也可以利用vxworks來做驅(qū)動。驅(qū)動沒有限制,但是它也要和具體的操作系統(tǒng)平臺聯(lián)系起來,這樣才有意義。當(dāng)然又有朋友說了,非要操作系統(tǒng)不可嗎?其實不要操作系統(tǒng)也可以,做一個簡單的while(1)前后臺系統(tǒng)系統(tǒng)也可以,只不過這樣開發(fā)的效率不高,而且可擴展性不好。既然linux已經(jīng)為我們把框架都搭好了,我們?yōu)槭裁床豢梢园阉苯幽脕磉M(jìn)行利用處理呢?這樣又方便又簡單。

嵌入式linux驅(qū)動

接下來就是嵌入式linux驅(qū)動必備的一些技能:

1、 編寫Linux設(shè)備驅(qū)動要求工程師有非常好的硬件基礎(chǔ),懂得SRAM、Flash、SDRAM、磁盤的讀寫方式,UART、I2C、USB等設(shè)

備的接口以及輪詢、中斷、DMA的原理,PCI總線的工作方式以及CPU的內(nèi)存管理單元(MMU)等。

2、編寫Linux設(shè)備驅(qū)動要求工程師有非常好的C語言基礎(chǔ),能靈活地運用C語言的結(jié)構(gòu)體、指針、函數(shù)指針及內(nèi)存動態(tài)申請和

釋放等。

3、編寫Linux設(shè)備驅(qū)動要求工程師有一定的Linux內(nèi)核基礎(chǔ),雖然并不要求工程師對內(nèi)核各個部分有深入的研究,但至少要明

白驅(qū)動與內(nèi)核的接口。尤其是對于塊設(shè)備、網(wǎng)絡(luò)設(shè)備、Flash設(shè)備、串口設(shè)備等復(fù)雜設(shè)備,內(nèi)核定義的驅(qū)動體系架構(gòu)本身就非

常復(fù)雜。

4、編寫Linux設(shè)備驅(qū)動要求工程師有非常好的多任務(wù)并發(fā)控制和同步的基礎(chǔ),因為在驅(qū)動中會大量使用自旋鎖、互斥、信號

量、等待隊列等并發(fā)與同步機制。

掌握了嵌入式linux驅(qū)動的知識點,那接下來就是重要的了,實踐,嵌入式linux驅(qū)動如何實踐,看看我是怎么做的吧:

(01)找兩臺電腦,一臺電腦安裝windows系統(tǒng),另外一臺電腦安裝linux系統(tǒng),至于類型沒有限制;

(02)查看linux系統(tǒng)的版本類型,輸入uname -r即可;

(03)根據(jù)獲取的linux kernel版本,在www.kernel.org上面尋找合適的kernel版本,直接用wget下載即可;

(04)用tar解壓內(nèi)核版本,將boot下config文件拷貝到本地,輸入make menuconfig,直接保存即可;

(05)輸入make -j2 & make modules_install & make install即可,系統(tǒng)重啟;

(06)在linux系統(tǒng)起來后,注意在grub啟動的時候選擇剛剛編譯的內(nèi)核版本,這樣就可以在linux上開發(fā)kernel驅(qū)動了;

(07)在windows 平臺安裝secureCRT工具,和linux取得連接;

(08)輸入下面的代碼,分別是hello.c和Makefile,其中hello.c內(nèi)容如下

[cpp] view plain copy

1. #include

2. #include

3. #include

4.

5. MODULE_LICENSE("GPL");

6. MODULE_AUTHOR("feixiaoxing");

7. MODULE_DEION("This is just a hello module!n");

8.

9. static int __init hello_init(void)

10. {

11. printk(KERN_EMERG "hello, initn");

12. return 0;

13. }

14.

15. static void __exit hello_exit(void)

16. {

17. printk(KERN_EMERG "hello, exitn");

18. }

19.

20. module_init(hello_init);

21. module_exit(hello_exit);

Makefile的內(nèi)容如下所示

[cpp] view plain copy

1. ifneq ($(KERNELRELEASE),)

2. obj-m := hello.o

3.

4. else

5. PWD := $(shell pwd)

6. KVER := $(shell uname -r)

7. KDIR := /lib/modules/$(KVER)/build

8. all:

9. $(MAKE) -C $(KDIR) M=$(PWD) modules

10. clean:

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

12. endif

(09)編譯的時候,直接make即可,當(dāng)然前提是這兩個文件必須在一個目錄下;

(10)編譯后生成hello.ko文件,大家可以把它想象成一個普通的執(zhí)行文件;

(11)如果需要安裝,直接insmod hello.ko即可,輸入dmesg | tail 可以看到打印的內(nèi)容,輸入lsmod | grep hello也可以看一下模塊是否已經(jīng)安裝;

(12)如果刪除模塊,直接輸入rmmod hello即可,當(dāng)然添加和刪除的操作都需要在root模式下進(jìn)行操作。這是我在學(xué)習(xí)的時候的一些詳細(xì)步驟,你get到了嗎

嵌入式linux驅(qū)動的學(xué)習(xí)就是這么簡單,不要覺得他很難,掌握了這些,它就會是so easy!

上一篇:如何學(xué)習(xí)arm嵌入式,資深程序員教會你

下一篇:硬件工程師都沒人干了?那你還不知道這些吧

华清图书馆

0元电子书,限时免费申领

10本华清图书PDF版

扫码关注华清远见公众号
自动回复“2”,即可申领!
熱點文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號-5,京公海網(wǎng)安備11010802025203號

回到頂部

主站蜘蛛池模板: 久久国产精品无码HDAV | 国产精品爽爽va在线观看无码 | 又白又肥的大白屁股在线视频 | 蜜桃在线播放 | 综合亚洲另类欧美久久成人精品 | 精品国产一区二区av麻豆 | 久久久久久亚洲蜜桃 | 国产精品久久久久久久久岛国 | 久久国产精品嫩草影院的使用方法 | 久久不见久久见免费视频7 BBW极度另类孕妇 | 高清国产AV一区二区三区 | 久久久噜噜噜久久熟女 | 宝贝好紧好爽再搔一点试视频 | 亚洲爱爱综合 | 亚洲日韩AV无码中文字幕美国 | 久久无码中文字幕无码 | 涩涩爱97| 无码人妻A片一区二区三区 欧美人妻小说 | 奇米影视7777狠狠狠狠影视 | 99九九精品视频 | 免费无码肉片在线观看 | 午夜福利理论片在线观看 | 亚洲国产精品lv | 久爱WWW成人网免费视频 | 亚洲欧美国产精品无码中文字 | 国产一区二区三区导航 | 国产精品乱码一区二区三区图片 | 2024AV天堂手机在线观看 | 肉岳疯狂69式激情的高潮 | 四虎影视久久久免费观看 | 永久免费啪啪的网站入口 | 亚洲精品天堂无码中文字幕 | 成人做爰www | 久久久久久精品人妻免费网站 | 国产在视频线在精品视频2020 | 久久aⅴ人妻少妇嫩草影院 日本高清免费一本在线观看 | 乱淫的女高中调教h | 日本精品视频在线播放 | 丰满人妻av无码一区二区三区 | 国产乱人视频在线播放 | 亚洲AV香蕉一区区二区三区 |