色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

RK3568驅動指南|驅動基礎進階篇-進階8 內核運行ko文件總結

北京迅為電子 ? 2024-01-31 14:58 ? 次閱讀

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工藝,搭載一顆四核Cortex-A55處理器和Mali G52 2EE 圖形處理器。RK3568 支持4K 解碼和 1080P 編碼,支持SATA/PCIE/USB3.0 外圍接口。RK3568內置獨立NPU,可用于輕量級人工智能應用。RK3568 支持安卓 11 和 linux 系統,主要面向物聯網網關、NVR 存儲、工控平板、工業檢測、工控盒、卡拉 OK、云終端、車載中控等行業。

?
【公眾號】迅為電子

【粉絲群】824412014(加群獲取驅動文檔+例程)

視頻觀看】嵌入式學習之Linux驅動(驅動基礎進階篇_全新升級)_基于RK3568

【購買鏈接】迅為RK3568開發板瑞芯微Linux安卓鴻蒙ARM核心板人工智能AI主板

進階8 內核運行ko文件總結
8.1 內核運行ko流程分析
當我們使用系統調用時,內核會執行SYSCALL_DEFINE3宏定義的函數,如

SYSCALL_DEFINE3(finit_module, int, fd, const char __user *, uargs, int, flags)或SYSCALL_DEFINE3(init_module, void __user *, umod, unsigned long, len, const char __user *, uargs)。這些函數最終都會調用load_module函數,而在load_module函數中,會通過do_one_initcall(mod->init)來執行驅動程序的入口函數。

do_one_initcall函數的作用是執行一個初始化調用函數,并檢查執行過程中是否存在搶占不平衡或中斷被禁用的情況。如果存在錯誤信息,會打印警告信息。最后,返回初始化調用函數的返回值。這個函數通常在內核初始化過程中使用,用于執行各個模塊的初始化函數。

為什么mod->init就是驅動的入口函數呢?

打開include/linux/module.h文件,找到以下代碼,如下圖所示:

wKgZomW572qAVlQrAAFpYj0Mo2w481.png

圖8-1

上述代碼是用于定義模塊的初始化函數和清理函數的宏定義。通過使用module_init宏和module_exit宏,開發人員可以指定模塊的入口函數和清理函數。這些宏定義了一些內聯函數和與之關聯的特殊命名的函數,以及一些屬性和別名,用于在編譯時進行檢查并將用戶定義的函數與特定的模塊函數關聯起來。

在上圖的代碼中,int init_module(void) __copy(initfn) __attribute__((alias(#initfn)));:定義一個名為init_module的函數,用于作為模塊的入口函數。__copy(initfn)表示復制用戶定義的初始化函數,__attribute__((alias(#initfn)))表示將init_module函數與用戶定義的初始化函數initfn關聯起來。將init_module作為函數initfn的別名。init_module是驅動加載函數的統一別名,當我們編譯ko文件的時候,會生成一個.mod.c 的文件。

8.2 內核加載ko文件總結
本篇內容講解的知識點比較零散,為了更好的總結學習,我們畫了以下流程圖。

wKgZomW574aAO2qUAADkQYDiIxU250.png

圖 8-2

總結一下,要加載內核模塊,通常需要使用insmod命令或類似工具觸發系統調用,然后在內核中執行相應的系統調用函數(如sys_finit_module或sys_init_module)來加載模塊。在加載過程中,會調用load_module函數,進而執行模塊的初始化函數。這些過程構成了加載內核模塊的流程。

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

    關注

    3

    文章

    1372

    瀏覽量

    40276
  • 驅動
    +關注

    關注

    12

    文章

    1838

    瀏覽量

    85262
  • RK3568
    +關注

    關注

    4

    文章

    514

    瀏覽量

    5034
收藏 人收藏

    評論

    相關推薦

    RT-Thread驅動開發指南進階篇-動手驅動先楫未適配的外設LCD

    經過上一的《《RT-Thread設備驅動開發指南》基礎--以先楫bsp的hwtimer設備為例》闡述,可以大致了解到RT-thread設備驅動
    的頭像 發表于 02-25 11:04 ?2516次閱讀
    RT-Thread<b class='flag-5'>驅動</b>開發<b class='flag-5'>指南</b><b class='flag-5'>進階篇</b>-動手<b class='flag-5'>驅動</b>先楫未適配的外設LCD

    文檔更新 |迅為 RK3568開發板驅動指南-第十五/十六

    測試 ? 驅動基礎-進階篇 進階1 編譯進內核驅動系統是如何運行的?
    發表于 07-08 11:04

    文檔更新 | 迅為RK3568驅動指南-第十七篇(串口)

    實驗 進階6 內核運行ko文件實驗——系統調用 進階7 向系統中添加一個系統調用
    發表于 09-24 10:42

    迅為iTOP-RK3568開發板驅動開發指南-第十八 PWM

    測試 ? 驅動基礎-進階篇 進階1 編譯進內核驅動系統是如何運行的?
    發表于 10-29 10:13

    《HELLO+FPGA》-項目進階篇

    《HELLO+FPGA》-項目進階篇
    發表于 09-27 10:13

    電源設計人員必看資料 開關電源基礎知識進階篇

    開關電源基礎知識進階篇資料來自網絡
    發表于 06-19 20:02

    如何驅動RK3568 VCM?

    RK3568 VCM如何驅動
    發表于 03-02 06:12

    迅為RK3568開發板保姆級3900頁手冊_415期視頻_426G文檔

    :向系統中添加一個系統調用... 28.進階8:內核是如何運行KO文件的... 20.階段性
    發表于 08-11 11:14

    iTOP-RK3568開發板驅動指南第五-中斷

    _字符設備基礎 第三期_并發與競爭 第四期_高級字符設備進階 第五期_中斷 第六期_平臺總線 第七期_設備樹 第八期_設備樹插件 第九期_設備模型 第十期_熱插拔 第十一期_pinctrl子系統 未完待續,持續更新中...嗶哩嗶哩搜索-迅為RK3568開發板,更多教程內容
    發表于 09-04 10:53

    更新 | 持續開源 迅為RK3568驅動指南第十一篇-pinctrl子系統

    《iTOP-RK3568開發板驅動開發指南》更新,本次更新內容對應的是驅動(第十一期_pinctrl子系統-全新升級)視頻,后續資料會不斷更新,不斷完善,幫助用戶快速入門,大大提升研發
    發表于 10-18 11:12

    USB HID設備應用(進階篇

    Freescale的USB HID設備應用(進階篇
    發表于 12-07 18:19 ?0次下載

    rk3568是什么架構的?

    設計之一,經過優化,可在提供高性能的同時實現低功耗。RK3568有四個Cortex-A55內核,能夠以高達2GHz的時鐘速度運行。 此外,RK3568還配備了ARM Mali-G52
    的頭像 發表于 08-15 17:25 ?2888次閱讀

    RK3568驅動指南驅動基礎進階篇-進階5 自定義實現insmod命令實驗

    RK3568驅動指南驅動基礎進階篇-進階5 自定義實現insmod命令實驗
    的頭像 發表于 02-20 14:10 ?677次閱讀
    <b class='flag-5'>RK3568</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>5 自定義實現insmod命令實驗

    迅為RK3568開發板驅動開發指南-輸入子系統

    迅為RK3568開發板驅動開發指南-輸入子系統
    的頭像 發表于 02-23 15:11 ?862次閱讀
    迅為<b class='flag-5'>RK3568</b>開發板<b class='flag-5'>驅動</b>開發<b class='flag-5'>指南</b>-輸入子系統

    瑞芯微RK3568 USB驅動

    瑞芯微RK3568 USB驅動程序
    發表于 11-11 14:18 ?1次下載
    主站蜘蛛池模板: 亚洲色播永久网址大全| 欧美性FREE玩弄少妇| 男人天堂黄色| 日日撸影院在线| 亚洲人成影院在线播放| 99精品视频免费观看| 国产精品女上位好爽在线短片| 国产亚洲人成网站在线观看播放| 美女视频秀色福利视频| 我在厨房摸岳的乳HD在线观看| 在线免费国产| 国产成人在线视频网站| 快播萝莉影院| 天堂在线亚洲精品专区| 91avcom| 超h高h肉h文教室生理课| 九九热精品在线观看| 色爱区综合激情五月综合激情| 曰曰夜夜在线影院视| 国产精品久久久久久久久久免费| 美女强奷到抽搐在线播放| 小萝ar视频网站| qvod影院| 久久免费精品一区二区| 性欧美FREE少妇XXX| xxxx88| 伦理 电影在线观看百度影音| 校花在公车上被内射好舒| music radio在线收听| 久草在线精彩免费视频| 午夜福利电影| 潮 喷女王cytherea| 毛片免费在线| 野花影院手机在线观看| 国产精品视频一区二区猎奇| 琪琪SEE色原网色原网站18| 在线观看免费视频播放视频| 国产午夜视频| 手机伊在人线香蕉2| 爱穿丝袜的麻麻3d漫画免费| 美女大本营|