日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群


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

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


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

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

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

wKgZO2kKv1iAWYvRAAX4gJ2VKR8017.png

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

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

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

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

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

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

如何將驅(qū)動編譯成內(nèi)核模塊。

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

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

命令。

3.1 設置交叉編譯器

1.下載交叉編譯器

在網(wǎng)盤“iTOP-3568開發(fā)板\03_【iTOP-RK3568開發(fā)板】指南教程\02_Linux驅(qū)動配套資料\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

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

代碼如代碼清單3.1所示。

wKgZO2kKv1eAQm7BAADYUtCjMUg121.png

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

wKgZO2kKv1eAC-mjAAEyPUjtY_k586.png

3.3 編譯成內(nèi)核模塊

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

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

把helloworld驅(qū)動編譯成內(nèi)核模塊,如圖3.6所示。

wKgZO2kKv1iAJUDHAAQpJKfbSac762.png

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

編譯好的驅(qū)動程序。如圖3.7所示:

wKgZO2kKv1eAA4qFAAGjhaoIumM547.png

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

wKgZPGkKv1eACyu6AANO9ej9-ZQ038.png

3.4 模塊加載與卸載

內(nèi)核模塊可以通過insmod命令加載、通過rmmod命令卸載。

將helloworld.ko內(nèi)核模塊拷貝到iTOP-RK3568開發(fā)板上,通過insmod helloworld.ko命令加

載helloworld內(nèi)核模塊,加載內(nèi)核模塊時會調(diào)用驅(qū)動入口函數(shù)helloworld_init,從而輸出打印

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

wKgZO2kKv1eAawnFAAEEwRQkfV4474.png

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

時候會執(zhí)行驅(qū)動出口函數(shù),所以可以看到驅(qū)動出口函數(shù)打印出來的字符串信息helloworld_exit,

如下3.10所示:

wKgZPGkKv1eAEv7sAAFRdQsg0Jw551.png

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

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

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

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

內(nèi)核當中,所以modprobe命令比較“聰明”。

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

動卸載依賴的內(nèi)核模塊,但是使用modprobe命令可以自動卸載驅(qū)動模塊所依賴的其他模塊。

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

helloworld.ko命令卸載。

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

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

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

3.5 查看模塊信息

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

命令查看內(nèi)核中加載的模塊,如圖3.11所示:

wKgZO2kKv1eAJlrpAAIo5u0MDyw831.png

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    電子RK3568+RK3588開發(fā)板資料煥新升級!多維度優(yōu)化助力開發(fā)效率提升

    電子RK3568+RK3588開發(fā)板資料煥新升級!多維度優(yōu)化助力開發(fā)
    的頭像 發(fā)表于 03-26 15:06 ?588次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>電子RK<b class='flag-5'>3568</b>+RK3588<b class='flag-5'>開發(fā)板</b><b class='flag-5'>資料</b>煥新升級!多維度優(yōu)化助力<b class='flag-5'>開發(fā)</b>者<b class='flag-5'>效率</b>提升

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

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

    驅(qū)動開發(fā)實戰(zhàn):iTOP-RK3568開發(fā)板eDP屏幕移植全攻略

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

    iTOP-Hi3516開發(fā)板驅(qū)動開發(fā)資料全面上線,構(gòu)建入門到精通的完整學習路徑!

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

    Hi3403開發(fā)板驅(qū)動教程全面上線,開啟嵌入Linux開發(fā)新篇章!

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

    iTOP-3568開發(fā)板?Linux驅(qū)動開發(fā)實戰(zhàn):menuconfig圖形化配置實驗

    iTOP-3568開發(fā)板?Linux驅(qū)動開發(fā)實戰(zhàn)
    的頭像 發(fā)表于 11-24 15:29 ?984次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b>iTOP-<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b>?<b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>實戰(zhàn):menuconfig圖形化配置實驗

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux驅(qū)動開發(fā)實戰(zhàn):RK3568內(nèi)核模塊符號導出詳解

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux
    的頭像 發(fā)表于 11-21 13:25 ?1697次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b>工業(yè)RK<b class='flag-5'>3568</b>穩(wěn)定可靠】itop-<b class='flag-5'>3568</b><b class='flag-5'>開發(fā)板</b><b class='flag-5'>Linux</b><b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)</b>實戰(zhàn):RK<b class='flag-5'>3568</b>內(nèi)核模塊符號導出詳解

    工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板驅(qū)動開發(fā)第4章驅(qū)動模塊傳參實驗

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

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

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

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

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

    項目效率翻倍!RK3568?V2.0硬件接口升級,開發(fā)流程再提速
    的頭像 發(fā)表于 10-29 10:53 ?702次閱讀
    項目<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 ?1587次閱讀
    <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 ?1363次閱讀
    技術分享 | <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ā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入
    的頭像 發(fā)表于 05-29 14:05 ?1219次閱讀
    <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'>驅(qū)動</b>指南GPIO子系統(tǒng)GPIO子系統(tǒng)API函數(shù)的引入

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

    RK3568開發(fā)板驅(qū)動指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗
    的頭像 發(fā)表于 05-26 15:39 ?1698次閱讀
    <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'>驅(qū)動</b>指南GPIO子系統(tǒng)三級節(jié)點操作函數(shù)實驗
    易门县| 十堰市| 双辽市| 中西区| 镇宁| 额济纳旗| 镇江市| 犍为县| 洛隆县| 南皮县| 达日县| 通化市| 株洲县| 繁峙县| 扶余县| 贵南县| 静海县| 鹤岗市| 东丽区| 莫力| 镇康县| 瑞金市| 沈阳市| 南郑县| 垫江县| 曲麻莱县| 富民县| 南召县| 清水河县| 潞城市| 江永县| 吉隆县| 沙河市| 临漳县| 东丰县| 商都县| 全南县| 五大连池市| 自贡市| 微山县| 东海县|