国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

迅為3568開發板從零學習Linux驅動開發:迅為一站式資料包如何讓我效率翻倍

北京迅為電子 ? 2025-11-05 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群


作為一名嵌入式Linux的初學者,在拿到功能強大的RK3568開發板時,我的心情既興奮又忐忑。興奮在于終于可以動手實踐,忐忑則源于對復雜開發環境的恐懼。網絡上零散的資料、版本不匹配的工具鏈、以及深不見底的“坑”,都巨大挑戰。

然而,迅為提供的一站式資料包,可以讓嵌入式Linux學習之旅卻出乎意料地順暢和高效。本文將分享《【北京迅為】itop-3568開發板驅動開發指南》第3章 內核模塊實驗的完整過程。


迅為一站式學習教程資料包的價值所在

,迅為的一站式資料包在以下幾個方面讓我效率翻倍:
1.完整性:從工具鏈、源碼、到文檔和工具,所有要素版本匹配,開箱即用,形成了閉環生態。
2.指引性:步步為營的文檔如同一位無聲的導師,消除了過程中的不確定性,讓學習路徑清晰可見。
3.排障效率:技術支持是強大的“安全網”,能將絕大多數常見問題的解決,

對于一名新手而言,時間是最寶貴的成本。迅為的資料包所做的,正是通過體系化的知識工程,最大限度地節約的時間,保護了學習熱情,能夠快速進入嵌入式Linux開發的核心殿堂——驅動開發。這無疑是一次價值遠超硬件本身的投資。

wKgZO2kKv1iAWYvRAAX4gJ2VKR8017.png

北京迅為RK3568開發板:迅為RK3568開發板ARM3568J核心板瑞芯微人工智能AI鴻蒙Linux安卓

聯系我們獲得《迅為itop-3568開發板驅動開發指南》完整版本。

配套視頻資源:【北京迅為】嵌入式學習之Linux驅動, 免費在線觀看

【北京迅為itop-3568開發板驅動開發指南第 3 章 內核模塊實驗】

在上一章節編寫了最簡單的驅動程序helloworld。helloworld驅動程序要如何編譯并運行

呢?編譯驅動有兩種方法,分別是將驅動編譯進內核和將驅動編譯成內核模塊。我們先來學習

如何將驅動編譯成內核模塊。

把驅動編譯成內核模塊并運行需要設置交叉編譯器、編寫Makefile和編譯模塊三個步驟。

編譯好的內核模塊可以使用insmod命令加載到內核運行,從內核中卸載內核模塊使用rmmod

命令。

3.1 設置交叉編譯器

1.下載交叉編譯器

在網盤“iTOP-3568開發板\03_【iTOP-RK3568開發板】指南教程\02_Linux驅動配套資料\03_

交叉編譯器”路徑下下載交叉編譯器,將下載好的交叉編譯器拷貝到虛擬機Ubuntu環境中的

/usr/local目錄下,如圖3.1所示。

wKgZPGkKv1eAE0FoAAFa4071BrQ024.png

輸入tar -vxf gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz命令解壓交叉編譯壓縮

包,解壓完畢后會生成交叉編譯器所在的文件夾。如圖3.2所示。

wKgZO2kKv1eAYqREAAFtaBzOqf8474.png

2.設置環境變量

在終端輸入sudo vi /etc/profile命令打開profile文件,接著在profile文件末尾添加以下

代碼。

export PATH=$PATH:/usr/local/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin

添加完后如圖3.3所示。

wKgZPGkKv1eAVuCWAAG2B3Bpa60360.png

保存退出后在終端輸入reboot命令重新啟動Ubuntu系統,使交叉編譯環境生效。

3.檢查是否設置成功

Ubuntu系統重新啟動登錄到系統后,打開命令行終端,輸入命令aarch64-linux-gnu-gcc -v,

如果終端有如圖3.4所示的打印信息,說明交叉編譯環境搭建成功。如果沒有出現如圖3.4的

打印信息,需要檢查上一步驟是否設置正確。

wKgZPGkKv1iACRrXAA8kl-0tLFY152.png

3.2 編寫 Makefile

wKgZPGkKv1eAaAbRAAFFJm4_Xd0305.png

編譯驅動程序需要使用Makefile文件。接下來為helloworld.c編寫一個簡單的Makefile,其

代碼如代碼清單3.1所示。

wKgZO2kKv1eAQm7BAADYUtCjMUg121.png

源文件helloworld.c與Makefile文件需要位于同一級目錄下。如下圖3.5所示:

wKgZO2kKv1eAC-mjAAEyPUjtY_k586.png

3.3 編譯成內核模塊

在把驅動編譯成內核模塊之前需先編譯通過在Makefile文件中通過KDIR變量指定路徑下

的內核源碼。內核源碼編譯通過后,在Makefile與helloworld驅動路徑下輸入make命令即可

把helloworld驅動編譯成內核模塊,如圖3.6所示。

wKgZO2kKv1iAJUDHAAQpJKfbSac762.png

內核模塊是以ko為后綴名,因此編譯成功得到的helloworld.ko文件即內核模塊,也就是

編譯好的驅動程序。如圖3.7所示:

wKgZO2kKv1eAA4qFAAGjhaoIumM547.png

輸入make clean命令可清除編譯文件,如圖3.8所示:

wKgZPGkKv1eACyu6AANO9ej9-ZQ038.png

3.4 模塊加載與卸載

內核模塊可以通過insmod命令加載、通過rmmod命令卸載。

將helloworld.ko內核模塊拷貝到iTOP-RK3568開發板上,通過insmod helloworld.ko命令加

載helloworld內核模塊,加載內核模塊時會調用驅動入口函數helloworld_init,從而輸出打印

字符串信息“helloworld_init”,如圖3.9所示:

wKgZO2kKv1eAawnFAAEEwRQkfV4474.png

如果要卸載helloworld內核模塊,執行rmmod helloworld命令。同理,在卸載內核模塊的

時候會執行驅動出口函數,所以可以看到驅動出口函數打印出來的字符串信息helloworld_exit,

如下3.10所示:

wKgZPGkKv1eAEv7sAAFRdQsg0Jw551.png

加載內核模塊也可以使用modprobe命令,它比insmod命令更強大,modprobe命令在加

載驅動模塊的時候,會同時加載該模塊依賴的其他模塊。比如helloworld.ko依賴before.ko,

使用insmod加載的時候,就必須先加載before.ko,然后再加載helloworld.ko才可以加載成功。

使用modprobe加載的時候,他會自動分析模塊的依賴關系,然后將所有依賴的模塊都加載到

內核當中,所以modprobe命令比較“聰明”。

同樣,在卸載驅動模塊的時候,如果模塊存在依賴關系,如果使用insmod命令,需要手

動卸載依賴的內核模塊,但是使用modprobe命令可以自動卸載驅動模塊所依賴的其他模塊。

如果驅動模塊是以modprobe helloworld.ko命令加載的,卸載的時候使用modprobe -r

helloworld.ko命令卸載。

但是,使用modprobe卸載存在一個問題,如果所依賴的模塊被其他模塊所使用,比如剛

才例子中的before.ko還被其他的模塊使用,這時候就不能使用modprobe卸載。所以要根據

需求選擇合適的命令進行操作。

3.5 查看模塊信息

lsmod命令可以列出已經載入Linux內核模塊,在helloworld驅動加載之后,使用lsmod

命令查看內核中加載的模塊,如圖3.11所示:

wKgZO2kKv1eAJlrpAAIo5u0MDyw831.png

除了使用lsmod命令,也可以使用modinfo helloworld.ko命令可以獲得模塊的其他信息,

如模塊作者,模塊說明,模塊支持的參數等等。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開發板
    +關注

    關注

    26

    文章

    6289

    瀏覽量

    118033
  • 驅動開發
    +關注

    關注

    0

    文章

    140

    瀏覽量

    12635
  • Linux驅動
    +關注

    關注

    0

    文章

    47

    瀏覽量

    10480
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    iTOP-Hi3403開發板一站式啟動Hi3403 NPU開發運行例程開始,快速驗證AI效能

    iTOP-Hi3403開發板一站式啟動Hi3403 NPU開發運行例程開始,快速驗證
    的頭像 發表于 02-12 15:59 ?973次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-Hi3403<b class='flag-5'>開發板</b>】<b class='flag-5'>一站式</b>啟動Hi3403 NPU<b class='flag-5'>開發</b>:<b class='flag-5'>從</b>運行例程開始,快速驗證AI效能

    驅動開發實戰:iTOP-RK3568開發板eDP屏幕移植全攻略

    驅動開發實戰:iTOP-RK3568開發板eDP屏幕移植全攻略
    的頭像 發表于 12-30 15:42 ?892次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>實戰:iTOP-RK<b class='flag-5'>3568</b><b class='flag-5'>開發板</b>eDP屏幕移植全攻略

    iTOP-Hi3516開發板驅動開發資料全面上線,構建入門到精通的完整學習路徑!

    iTOP-Hi3516開發板linux驅動開發資料
    的頭像 發表于 12-19 15:47 ?632次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-Hi3516<b class='flag-5'>開發板</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b><b class='flag-5'>資料</b>全面上線,構建<b class='flag-5'>從</b>入門到精通的完整<b class='flag-5'>學習</b>路徑!

    Hi3403開發板驅動教程全面上線,開啟嵌入Linux開發新篇章!

    iTOP-Hi3403開發板linux驅動教程全面上線,開啟嵌入
    的頭像 發表于 12-18 14:23 ?674次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>Hi3403<b class='flag-5'>開發板</b><b class='flag-5'>驅動</b>教程全面上線,開啟嵌入<b class='flag-5'>式</b><b class='flag-5'>Linux</b><b class='flag-5'>開發</b>新篇章!

    iTOP-3568開發板?Linux驅動開發實戰:menuconfig圖形化配置實驗

    iTOP-3568開發板?Linux驅動開發實戰
    的頭像 發表于 11-24 15:29 ?765次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-<b class='flag-5'>3568</b><b class='flag-5'>開發板</b>?<b class='flag-5'>Linux</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>實戰:menuconfig圖形化配置實驗

    工業RK3568穩定可靠】itop-3568開發板Linux驅動開發實戰:RK3568內核模塊符號導出詳解

    工業RK3568穩定可靠】itop-3568開發板Linux
    的頭像 發表于 11-21 13:25 ?1180次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>工業RK<b class='flag-5'>3568</b>穩定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>開發板</b><b class='flag-5'>Linux</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>實戰:RK<b class='flag-5'>3568</b>內核模塊符號導出詳解

    工業RK3568穩定可靠】itop-3568開發板驅動開發第4章驅動模塊傳參實驗

    工業RK3568穩定可靠】itop-3568開發板驅動
    的頭像 發表于 11-06 14:25 ?372次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>工業RK<b class='flag-5'>3568</b>穩定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>開發板</b><b class='flag-5'>驅動</b><b class='flag-5'>開發</b>第4章<b class='flag-5'>驅動</b>模塊傳參實驗

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

    嵌入Linux新手入門:為什么RK3568+
    的頭像 發表于 11-04 14:05 ?514次閱讀
    嵌入<b class='flag-5'>式</b><b class='flag-5'>Linux</b>新手入門:為什么<b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b>+<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>資料</b>是黃金組合

    項目效率翻倍RK3568?V2.0硬件接口升級,開發流程再提速

    項目效率翻倍RK3568?V2.0硬件接口升級,開發流程再提速
    的頭像 發表于 10-29 10:53 ?458次閱讀
    項目<b class='flag-5'>效率</b><b class='flag-5'>翻倍</b>!<b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b>?V2.0硬件接口升級,<b class='flag-5'>開發</b>流程再提速

    RK3568開發板模型推理測試實戰LPRNet?車牌識別

    RK3568開發板模型推理測試實戰LPRNet 車牌識別
    的頭像 發表于 08-25 14:55 ?1309次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發板</b>模型推理測試實戰LPRNet?車牌識別

    技術分享 | RK3568開發板如何將 Linux 板卡虛擬成U盤

    技術分享 | RK3568開發板如何將 Linux 板卡虛擬成U盤
    的頭像 發表于 06-04 10:57 ?1115次閱讀
    技術分享 | <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發板</b>如何將 <b class='flag-5'>Linux</b> 板卡虛擬成U盤

    RK3568開發板驅動指南GPIO子系統GPIO子系統API函數的引入

    RK3568開發板驅動指南GPIO子系統GPIO子系統API函數的引入
    的頭像 發表于 05-29 14:05 ?1013次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發板</b><b class='flag-5'>驅動</b>指南GPIO子系統GPIO子系統API函數的引入

    RK3568開發板驅動指南GPIO子系統三級節點操作函數實驗

    RK3568開發板驅動指南GPIO子系統三級節點操作函數實驗
    的頭像 發表于 05-26 15:39 ?1519次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發板</b><b class='flag-5'>驅動</b>指南GPIO子系統三級節點操作函數實驗

    北京iTOP-RK3568開發板OpenHarmony系統南向驅動開發實操-HDF驅動配置LED

    北京iTOP-RK3568開發板OpenHarmony系統南向驅動開發實操-HDF
    的頭像 發表于 03-14 14:41 ?1346次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-RK<b class='flag-5'>3568</b><b class='flag-5'>開發板</b>OpenHarmony系統南向<b class='flag-5'>驅動</b><b class='flag-5'>開發</b>實操-HDF<b class='flag-5'>驅動</b>配置LED

    北京RK3568開發板OpenHarmony系統南向驅動開發內核HDF驅動框架架構

    北京RK3568開發板OpenHarmony系統南向驅動開發內核HDF
    的頭像 發表于 03-11 14:13 ?1842次閱讀
    北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發板</b>OpenHarmony系統南向<b class='flag-5'>驅動</b><b class='flag-5'>開發</b>內核HDF<b class='flag-5'>驅動</b>框架架構