嵌入式Linux新手入門:為什么迅為RK3568+迅為資料是黃金組合
新人必看:想玩轉RK3568,但糾結買哪家?作為開發板,板卡只是半成品,“板卡+保姆級資料”才是你能握在手里的完整武器!
嵌入式Linux驅動的學習路徑:手持迅為攻略的“開圖玩家”
你手里的不是一堆PDF和視頻,而是一張清晰的“驅動開發藏寶圖”。你的學習路徑是這樣的:
【一】從開機到驅動“HelloWorld”
1:跟著《入門指南》成功啟動系統,看到串口日志。
2:參照文檔搭建編譯環境,成功編譯官方提供的第一個內核。
3:將自己編譯的系統燒錄進板子,并讓一個LED燈閃爍起來。成就達成!
【二】攻克字符設備驅動與設備樹
1:跟著《第19章字符設備驅動框架實驗》和《第25章點亮LED燈實驗》,親手寫出按鍵驅動,并成功在應用層控制。
2:學習《第62-68章設備樹系列實驗》,從語法到實例,徹底看懂驅動如何從設備樹中獲取硬件資源。
3:你已經能獨立完成一個“按鍵控制LED”的綜合項目,對驅動框架和設備樹有了清晰理解。
【三】向高級驅動工程師邁進
研究《第46-56章中斷與工作隊列》,處理更復雜的異步事件。
動手《第121-128章pinctrl子系統》和《第129-137章GPIO子系統》,掌握現代內核引腳管理的標準方法。
開始嘗試移植復雜外設,內核源碼在你眼中不再是一座孤島,而是有地圖的寶藏。
跟著迅為學習路徑:信心爆棚,每天都在解鎖新成就,學習路徑清晰可見。

《北京迅為itop-3568開發板驅動開發指南(重制版)》
- helloworld 驅動實驗
本章編寫第一個驅動程序helloworld,并講解Linux驅動基本框架。
2.1 驅動編寫
本小節來編寫一個最簡單的驅動——helloworld驅動。其程序helloworld.c代碼如代碼清單
2.1所示.
代碼清單2.1

2.2 驅動基本框架
Linux驅動的基本框架由模塊加載函數,模塊卸載函數,模塊許可證聲明,模塊參數,模
塊導出符號,模塊作者信息等幾部分組成,我們先來看一下這幾個部分的作用。
1模塊加載函數(驅動入口函數)
當加載驅動模塊時,內核會執行模塊加載函數,完成模塊加載函數中的初始化工作。
2模塊卸載函數(驅動出口函數)
當卸載驅動模塊時,內核會執行模塊卸載函數,完成模塊卸載函數中的退出工作。
3模塊許可證聲明
許可證聲明描述了內核模塊的許可權限,如果不聲明模塊許可,模塊在加載的時候,會收到“內核被污染(kernel tainted)”的警告。可接受的內核模塊聲明許可有“GPL”“GPL v2” 等。
4模塊參數(可選擇)
內核模塊參數是模塊被加載的時候可以傳遞給它的值。
5模塊導出符號(可選擇)
內核模塊可以導出的符號,導出符號以后其他內核模塊可以使用本模塊中的變量或函數。
6模塊作者信息等說明(可選擇)
其中模塊參數,模塊導出符號,模塊作者信息是可選的部分。其余部分是必須有的。
接下來通過驅動基本框架分析helloworld驅動。
(1)模塊加載函數:

(2)模塊卸載函數:

(3)模塊許可證聲明

(4)模塊作者信息

(5)頭文件

通過上面的分析可知,helloworld驅動包含了驅動框架所有必要部分。因此helloworld驅動可以看作是驅動代碼的模板。任何一個驅動代碼可以都用它作為基礎來編寫實現。因此同學們要將helloworld驅動記憶下來!
-
嵌入式
+關注
關注
5189文章
20192瀏覽量
329561 -
Linux
+關注
關注
88文章
11641瀏覽量
218194 -
RK3568
+關注
關注
5文章
628瀏覽量
7610 -
迅為電子
+關注
關注
0文章
86瀏覽量
310
發布評論請先 登錄
【迅為工業RK3568穩定可靠】itop-3568開發板Linux驅動開發實戰:RK3568內核模塊符號導出詳解

嵌入式Linux新手入門:為什么迅為RK3568+迅為資料是黃金組合
評論