亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群


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

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


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

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

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

wKgZO2kKv1iAWYvRAAX4gJ2VKR8017.png

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

聯(lián)系我們獲得《迅為itop-3568開發(fā)板驅動開發(fā)指南》完整版本。

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

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

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

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

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

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

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

命令。

3.1 設置交叉編譯器

1.下載交叉編譯器

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

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

/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.設置環(huán)境變量

在終端輸入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系統(tǒng),使交叉編譯環(huán)境生效。

3.檢查是否設置成功

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

如果終端有如圖3.4所示的打印信息,說明交叉編譯環(huán)境搭建成功。如果沒有出現(xiàn)如圖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開發(fā)板上,通過insmod helloworld.ko命令加

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

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

wKgZO2kKv1eAawnFAAEEwRQkfV4474.png

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

時候會執(zhí)行驅動出口函數(shù),所以可以看到驅動出口函數(shù)打印出來的字符串信息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卸載。所以要根據(jù)

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

3.5 查看模塊信息

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

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

wKgZO2kKv1eAJlrpAAIo5u0MDyw831.png

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

如模塊作者,模塊說明,模塊支持的參數(shù)等等。

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

    關注

    25

    文章

    6054

    瀏覽量

    111376
  • 驅動開發(fā)

    關注

    0

    文章

    137

    瀏覽量

    12501
  • Linux驅動
    +關注

    關注

    0

    文章

    44

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

    嵌入Linux新手入門:為什么RK3568+
    的頭像 發(fā)表于 11-04 14:05 ?51次閱讀
    嵌入<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開發(fā)板選型,這5點沒看清千萬別下手!(附驅動開發(fā)指南資源)

    避坑指南!RK3568開發(fā)板選型,這5點沒看清千萬別下手!(附驅動開發(fā)指南資源)
    的頭像 發(fā)表于 10-30 15:49 ?164次閱讀
    避坑指南!RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>選型,這5點沒看清千萬別下手!(附<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>指南資源)

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

    項目效率翻倍!RK3568?V2.0硬件接口升級,開發(fā)流程再提速
    的頭像 發(fā)表于 10-29 10:53 ?113次閱讀
    項目<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'>開發(fā)</b>流程再提速

    RK3568開發(fā)板模型推理測試實戰(zhàn)LPRNet?車牌識別

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

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

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

    RK3568開發(fā)板驅動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

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

    RK3568開發(fā)板驅動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗

    RK3568開發(fā)板驅動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗
    的頭像 發(fā)表于 05-26 15:39 ?1170次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>驅動</b>指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗

    【北京】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅動開發(fā)實操-HDF驅動配置UART

    【北京】iTOP-RK3568開發(fā)板鴻蒙OpenHarmony系統(tǒng)南向驅動開發(fā)實操-HDF
    的頭像 發(fā)表于 03-25 11:02 ?1120次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>鴻蒙OpenHarmony系統(tǒng)南向<b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>實操-HDF<b class='flag-5'>驅動</b>配置UART

    【北京】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅動開發(fā)-第4章 UART基礎知識

    【北京】iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅動開發(fā)-第4章 UART
    的頭像 發(fā)表于 03-17 15:50 ?781次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】iTOP-RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>OpenHarmony系統(tǒng)南向<b class='flag-5'>驅動</b><b class='flag-5'>開發(fā)</b>-第4章 UART基礎知識

    北京iTOP-RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅動開發(fā)實操-HDF驅動配置LED

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

    北京RK3568開發(fā)板OpenHarmony系統(tǒng)南向驅動開發(fā)內核HDF驅動框架架構

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

    【技術分享】RK3568開發(fā)板使用TFTP加載內核設備樹

    【技術分享】RK3568開發(fā)板使用TFTP加載內核設備樹
    的頭像 發(fā)表于 02-21 14:04 ?1000次閱讀
    【技術分享】<b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>使用TFTP加載內核設備樹

    RK3568開發(fā)板驅動指南Linux中通用SPI設備驅動

    RK3568開發(fā)板驅動指南Linux中通用SPI設備驅動
    的頭像 發(fā)表于 01-23 11:02 ?3339次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>驅動</b>指南<b class='flag-5'>Linux</b>中通用SPI設備<b class='flag-5'>驅動</b>

    【北京】itop-3562開發(fā)板Linux系統(tǒng)中使用NPU

    【北京】itop-3562開發(fā)板Linux系統(tǒng)中使用NPU
    的頭像 發(fā)表于 11-25 14:52 ?1331次閱讀
    【北京<b class='flag-5'>迅</b><b class='flag-5'>為</b>】itop-3562<b class='flag-5'>開發(fā)板</b>在<b class='flag-5'>Linux</b>系統(tǒng)中使用NPU

    基于RK3568開發(fā)板全國產(chǎn)平臺,快速實現(xiàn)APP開機自啟動技術分享

    基于RK3568開發(fā)板全國產(chǎn)平臺,快速實現(xiàn)APP開機自啟動技術分享
    的頭像 發(fā)表于 11-21 13:58 ?1256次閱讀
    基于<b class='flag-5'>迅</b><b class='flag-5'>為</b>RK<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>全國產(chǎn)平臺,快速實現(xiàn)APP開機自啟動技術分享