色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置:首頁 > 嵌入式培訓 > IT培訓問題庫 > 嵌入式linux驅動如何學?小白入門必看

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

嵌入式發展這么快,很多人都躋身在嵌入式行業,對于新手小白來說,學習嵌入式還是會遇到一些問題,就比如說嵌入式linux驅動, 驅動程序開發是嵌入式Linux項目中工作量大的一部分內容,開發出高質量的驅動程序是項目成功的關鍵,那么嵌入式linux驅動如何學呢?那我就來談談學習嵌入式linux驅動的小竅門,這可是珍藏版哦。

首先嵌入式linux驅動你要了解,驅動和linux是兩碼事,就拿一個lcd來說,我們可以在windows ce上編寫驅動,也可以利用linux framebuffer編寫驅動,當然如果是做通信的朋友,也可以利用vxworks來做驅動。驅動沒有限制,但是它也要和具體的操作系統平臺聯系起來,這樣才有意義。當然又有朋友說了,非要操作系統不可嗎?其實不要操作系統也可以,做一個簡單的while(1)前后臺系統系統也可以,只不過這樣開發的效率不高,而且可擴展性不好。既然linux已經為我們把框架都搭好了,我們為什么不可以把它直接拿來進行利用處理呢?這樣又方便又簡單。

嵌入式linux驅動

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

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

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

2、編寫Linux設備驅動要求工程師有非常好的C語言基礎,能靈活地運用C語言的結構體、指針、函數指針及內存動態申請和

釋放等。

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

白驅動與內核的接口。尤其是對于塊設備、網絡設備、Flash設備、串口設備等復雜設備,內核定義的驅動體系架構本身就非

常復雜。

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

量、等待隊列等并發與同步機制。

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

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

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

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

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

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

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

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

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

[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的內容如下所示

[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即可,當然前提是這兩個文件必須在一個目錄下;

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

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

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

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

上一篇:如何學習arm嵌入式,資深程序員教會你

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

熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 韩剧1988免费观看全集| 午夜精品蜜臀一区二区三区免费| 亚洲欧美日韩久久久久久| 亚洲美女av在线| 在线观看欧美www| www.精品av.com| 欧美性高跟鞋xxxxhd| 久久久亚洲国产天美传媒修理工| 98午夜经典影视| 国产欧美韩国高清| 日韩高清中文字幕| 日韩在线不卡视频| 久久久久日韩精品久久久男男| 韩国福利视频一区| 国产欧美日韩中文| 精品女同一区二区三区在线播放| 欧美性xxxxx| 国产精品视频地址| 亚洲人在线视频| 久久777国产线看观看精品| 97国产在线视频| 亚洲一区二区三区香蕉| 中文字幕日韩精品在线| 欧美大片网站在线观看 | 欧美激情视频一区二区| 日本久久久久久久| 精品视频中文字幕| 欧美日韩高清在线观看| 国产999精品久久久影片官网| 亚洲激情中文字幕| 欧美日韩成人在线播放| 国产精品美女免费视频| 国产午夜精品一区二区三区| 日韩欧美国产成人| 成人激情综合网| 欧美xxxx综合视频| 国产欧美欧洲在线观看| 日韩视频免费大全中文字幕| 91精品国产网站| 亚洲肉体裸体xxxx137| 国内外成人免费激情在线视频|