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

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開(kāi)發(fā)板Linux驅(qū)動(dòng)開(kāi)發(fā)實(shí)戰(zhàn):RK3568內(nèi)核模塊符號(hào)導(dǎo)出詳解

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

掃碼添加小助手

加入工程師交流群

【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開(kāi)發(fā)板Linux驅(qū)動(dòng)開(kāi)發(fā)實(shí)戰(zhàn):RK3568內(nèi)核模塊符號(hào)導(dǎo)出詳解

選擇迅為iTOP-3568開(kāi)發(fā)板,獲取完整驅(qū)動(dòng)開(kāi)發(fā)套件與工業(yè)級(jí)穩(wěn)定性保障

在復(fù)雜的Linux驅(qū)動(dòng)開(kāi)發(fā)中,模塊化設(shè)計(jì)是提升代碼可維護(hù)性和復(fù)用性的關(guān)鍵。內(nèi)核模塊符號(hào)導(dǎo)出正是實(shí)現(xiàn)模塊間通信的基礎(chǔ)技術(shù)。本期將基于迅為RK3568開(kāi)發(fā)板,深入講解這一核心機(jī)制。


迅為提供的完整驅(qū)動(dòng)開(kāi)發(fā)套件,包含從基礎(chǔ)教程到進(jìn)階實(shí)戰(zhàn)的全套代碼示例,助您快速掌握此類(lèi)核心驅(qū)動(dòng)開(kāi)發(fā)技巧。

wKgZPGkf92yAW_cSAAPQZuGAs7k384.png

第5章 內(nèi)核模塊符號(hào)導(dǎo)出實(shí)驗(yàn)

本章節(jié)我們學(xué)習(xí)內(nèi)核模塊符號(hào)導(dǎo)出,什么是內(nèi)核模塊符號(hào)導(dǎo)出呢??jī)?nèi)核模塊之間是相互獨(dú)

立的,互相不能直接訪問(wèn)。將內(nèi)核模塊的符號(hào)(函數(shù)或變量)導(dǎo)出后,導(dǎo)出的符號(hào)(函數(shù)或變

量)可以被其他模塊使用。

5.1 內(nèi)核模塊符號(hào)導(dǎo)出簡(jiǎn)介

驅(qū)動(dòng)程序編譯生成的ko文件是相互獨(dú)立的,即模塊之間變量或者函數(shù)在正常情況下無(wú)法

進(jìn)行互相訪問(wèn)。而一些復(fù)雜的驅(qū)動(dòng)模塊需要分層進(jìn)行設(shè)計(jì),這時(shí)候就需要用到內(nèi)核模塊符號(hào)導(dǎo)

出。

內(nèi)核模塊符號(hào)導(dǎo)出指的是在內(nèi)核模塊中導(dǎo)出相應(yīng)的函數(shù)和變量,符號(hào)導(dǎo)出所使用的宏為E

XPORT_SYMBOL(sym)和EXPORT_SYMBOL_GPL(sym)。定義在 內(nèi)核源碼/include/linux/export.h文

件中(在module.h文件中已經(jīng)對(duì)export.h進(jìn)行引用,所以不需要單獨(dú)引用export.h文件),詳

細(xì)定義如代碼清單5.1所示:

wKgZPGkf9maAWWlHAABA-1l5IJY098.png

EXPORT_SYMBOL(sym)和EXPORT_SYMBOL_GPL(sym)兩個(gè)宏使用方法相同,sym參數(shù)表示要

導(dǎo)出的函數(shù)或變量名稱(chēng)。

宏EXPORT_SYMBOL_GPL(sym)導(dǎo)出的內(nèi)核模塊符號(hào)只能被GPL許可的模塊使用,因此絕

大多數(shù)情況都是使用EXPORT_SYMBOL(sym)宏進(jìn)行內(nèi)核模塊符號(hào)導(dǎo)出。

5.2 實(shí)驗(yàn)程序的編寫(xiě)

本實(shí)驗(yàn)代碼存在網(wǎng)盤(pán)iTOP-RK3568開(kāi)發(fā)板【底板V1.7版本】\03_【iTOP-RK3568開(kāi)發(fā)板】

指南教程\02_Linux驅(qū)動(dòng)配套資料\04_Linux驅(qū)動(dòng)例程\03路徑下。

本章實(shí)驗(yàn)將編寫(xiě)Linux下的內(nèi)核模塊符號(hào)導(dǎo)出實(shí)例代碼,總共有兩個(gè)驅(qū)動(dòng)程序,第一個(gè)驅(qū)

動(dòng)文件名為mathmodule.c,用來(lái)定義參數(shù)num和函數(shù)add(a,b),第二個(gè)驅(qū)動(dòng)文件名為hello.c,

會(huì)引用mathmodule.c驅(qū)動(dòng)程序中的參數(shù)num和數(shù)學(xué)函數(shù)add(a,b),并將相應(yīng)的參數(shù)值和函數(shù)

返回值打印到串口終端上。

代碼清單5.2是mathmodule.c代碼。

代碼清單5.2

wKgZPGkf9maAYL_mAAD8rlFsgDY629.png

wKgZO2kf9maAaPpYAAA6jkawQAY512.png

代碼清單5.2定義了一個(gè)int類(lèi)型的num變量和add()數(shù)學(xué)函數(shù),并使用EXPORT_SYMBOL

宏進(jìn)行導(dǎo)出。

代碼清單5.3是hello.c代碼。

代碼清單5.3

wKgZO2kf9maAAUHgAAEnZPouQwQ094.png

代碼清單5.3中程序使用了在代碼清單5.2中定義的int類(lèi)型的變量num和add()函數(shù),并

在驅(qū)動(dòng)入口函數(shù)中打印相應(yīng)了num的參數(shù)值并對(duì)add()函數(shù)進(jìn)行了調(diào)用。

5.3 運(yùn)行測(cè)試

5.3.1 編譯驅(qū)動(dòng)程序

在mathmodule.c和hello.c的同一目錄下創(chuàng)建Makefile文件,如圖5.1所示。

wKgZPGkf9maAMIlSAABc4uGvaxc021.png

Makefile文件內(nèi)容如代碼清單5.4所示:

代碼清單5.4

wKgZO2kf9maAZJldAACW7q8baWU127.png

這里要注意的是在hello.c代碼中使用了mathmodule.c所導(dǎo)出的符號(hào),所以mathmodule.c

要在hello.c之前進(jìn)行編譯,即Makefile中第3行和第4行代碼順序不能交換。

使用命令make編譯驅(qū)動(dòng)程序,編譯成功后如圖5.2所示:

wKgZPGkf9maAFxbWAAG08ePQPbc294.png

編譯完后會(huì)生成hello.ko和mathmodule.ko目標(biāo)文件,如圖5.3所示:

wKgZO2kf9maALBhlAAFE3n5L2DY695.png

5.3.2 運(yùn)行測(cè)試

由于hello.ko依賴(lài)于mathmodule.ko,所以mathmodule.ko需要先加載,分別使用以下命

令進(jìn)行模塊的加載(加載順序不能變):

insmod mathmodule.ko

insmod hello.ko

打印信息如圖5.4所示。

wKgZO2kf9maAF0VfAAC50QlAjjY226.png

通過(guò)圖5.4可以看出當(dāng)hello.ko驅(qū)動(dòng)加載的時(shí)候,在mathmodule.ko模塊中定義的num參

數(shù)值和在hello.ko中調(diào)用add()函數(shù)的后的返回值都被打印了出來(lái)。說(shuō)明mathmodule.ko中已經(jīng)

成功實(shí)現(xiàn)內(nèi)核模塊符號(hào)導(dǎo)出。

可以輸入以下命令進(jìn)行驅(qū)動(dòng)的卸載:

rmmod hello.ko

rmmod mathmodule.ko

打印信息如圖5.5所示。

wKgZPGkf9maAP36nAAB-qdQZnf0052.png

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

    關(guān)注

    26

    文章

    6433

    瀏覽量

    121183
  • Linux驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    0

    文章

    47

    瀏覽量

    10526
  • RK3568
    +關(guān)注

    關(guān)注

    5

    文章

    655

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    驅(qū)動(dòng)開(kāi)發(fā)實(shí)戰(zhàn)iTOP-RK3568開(kāi)發(fā)板eDP屏幕移植全攻略

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

    iTOP-3568開(kāi)發(fā)板?Linux驅(qū)動(dòng)開(kāi)發(fā)實(shí)戰(zhàn):menuconfig圖形化配置實(shí)驗(yàn)

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

    RK3568開(kāi)發(fā)板NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手教你玩轉(zhuǎn)RKNN-Toolkit2 的使用

    RK3568開(kāi)發(fā)板NPU實(shí)戰(zhàn)】別再閑置你的NPU!手把手教你玩轉(zhuǎn)RKNN-Toolkit2 的使用
    的頭像 發(fā)表于 11-11 14:21 ?1567次閱讀
    【<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>NPU<b class='flag-5'>實(shí)戰(zhàn)</b>】別再閑置你的NPU!手把手教你玩轉(zhuǎn)RKNN-Toolkit2 的使用

    工業(yè)RK3568穩(wěn)定可靠itop-3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)第4章驅(qū)動(dòng)模塊傳參實(shí)驗(yàn)

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

    避坑指南!RK3568開(kāi)發(fā)板選型,這5點(diǎn)沒(méi)看清千萬(wàn)別下手!(附驅(qū)動(dòng)開(kāi)發(fā)指南資源)

    避坑指南!RK3568開(kāi)發(fā)板選型,這5點(diǎn)沒(méi)看清千萬(wàn)別下手!(附驅(qū)動(dòng)開(kāi)發(fā)指南資源)
    的頭像 發(fā)表于 10-30 15:49 ?1114次閱讀
    避坑指南!<b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b>選型,這5點(diǎn)沒(méi)看清千萬(wàn)別下手!(附<b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>驅(qū)動(dòng)</b><b class='flag-5'>開(kāi)發(fā)</b>指南資源)

    【北京itop-3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南(重制版)

    iTOP-RK3568開(kāi)發(fā)板驅(qū)動(dòng)開(kāi)發(fā)指南目錄:前言學(xué)習(xí)方法Linux驅(qū)動(dòng)基礎(chǔ)第 1 章 你好!
    發(fā)表于 10-30 15:48 ?43次下載

    iTOP-RK3568人工智能開(kāi)發(fā)板mobilenet圖像分類(lèi)模型推理測(cè)試

    想快速驗(yàn)證MobileNet圖像分類(lèi)模型的實(shí)際運(yùn)行效果?iTOP-RK3568人工智能開(kāi)發(fā)板,讓模型推理測(cè)試高效又省心。
    的頭像 發(fā)表于 08-28 15:53 ?1575次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>iTOP-RK3568</b>人工智能<b class='flag-5'>開(kāi)發(fā)板</b>mobilenet圖像分類(lèi)模型推理測(cè)試

    RK3568開(kāi)發(fā)板模型推理測(cè)試實(shí)戰(zhàn)LPRNet?車(chē)牌識(shí)別

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

    RK3568?重制版RK3568驅(qū)動(dòng)指南全面升級(jí)

    RK3568 重制版RK3568驅(qū)動(dòng)指南全面升級(jí)
    的頭像 發(fā)表于 07-28 15:25 ?3709次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b>?重制版<b class='flag-5'>RK3568</b><b class='flag-5'>驅(qū)動(dòng)</b>指南全面升級(jí)

    技術(shù)分享 | RK3568開(kāi)發(fā)板如何將 Linux 板卡虛擬成U盤(pán)

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

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

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

    RK3568開(kāi)發(fā)板安裝燒錄工具-安裝 RKTool 驅(qū)動(dòng)

    在燒寫(xiě)鏡像之前首先需要安裝 RKTool 驅(qū)動(dòng)。 RKTool 驅(qū)動(dòng)在網(wǎng)盤(pán)資料“iTOP-3568 開(kāi)發(fā)板\\\\01_【iTOP-RK3568
    發(fā)表于 05-29 10:47

    RK3568驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

    電子RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-28 15:24 ?1547次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>驅(qū)動(dòng)</b>指南GPIO子系統(tǒng) GPIO操作函數(shù)實(shí)驗(yàn)

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)

    RK3568開(kāi)發(fā)板驅(qū)動(dòng)指南GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)
    的頭像 發(fā)表于 05-26 15:39 ?1698次閱讀
    <b class='flag-5'>迅</b><b class='flag-5'>為</b><b class='flag-5'>RK3568</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>驅(qū)動(dòng)</b>指南GPIO子系統(tǒng)三級(jí)節(jié)點(diǎn)操作函數(shù)實(shí)驗(yàn)
    莲花县| 布拖县| 惠水县| 博爱县| 安岳县| 阜阳市| 平凉市| 宁武县| 姜堰市| 鱼台县| 万全县| 渑池县| 宁海县| 石城县| 赣州市| 武乡县| 临邑县| 浮山县| 黎平县| 富民县| 乌鲁木齐县| 津市市| 鹿泉市| 广平县| 涡阳县| 宝坻区| 尼木县| 竹山县| 蒙城县| 襄垣县| 江孜县| 固阳县| 大悟县| 新竹县| 贡山| 石河子市| 高安市| 乐昌市| 镇坪县| 庄浪县| 筠连县|