日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

内核程序实现多文件的调用

發布時間:2025/3/15 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 内核程序实现多文件的调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要實現這個功能,編程步驟和應用程序多文件的調用是一樣的,只是在這個基礎上,會顯示的將變量或者函數名進行導出,導出的宏如下:

EXPORT_SYMBOL(變量名或者函數名);

或者

EXPORT_SYMBOL_GPL(變量名或者函數名);

前者導出的變量或者函數能夠給任何一個內核程序調用后者導出的變量或者函數只能給那些遵循GPL協議的內核程序調用;

?

案例:編寫內核程序,掌握內核符號導出

實施步驟:

PC機執行:

1.mkdir?/opt/drivers/day02/3.0

2.cd?/opt/drivers/day02/3.0

3.vim?test.h?//函數的聲明

4.vim?test.c?//函數的定義

5.vim?helloworld.c?//函數的調用

6.vim?Makefile

??obj-m?+=?helloworld.o

??obj-m?+=?test.o

??或者

??obj-m?+=?helloworld.o?test.o

??結果:

??????test.c?->?test.ko

??????helloworld.c?->?helloworld.ko

7.make

8.cp?*.ko?/opt/rootfs/?

?

ARM板上執行:

加載模塊

insmod?test.ko

insmod?helloworld.ko

卸載模塊

rmmod?helloworld

rmmod?test

注意:加載卸載順序



第二種方法: 使用modprobe 加載?

modprobe命令使用步驟:

1.?進入內核源碼?cd?/opt/kernel

make?modules

2.?修改?Makefile,添加如下信息

install

make?-C?$(KDIR)?SUBDIRS=$(PWD)?modules_install?INSTALL_MOD_PATH=/opt/

#modules_install?表示安裝模塊,主要是產生modules.dep,

依賴關系文件,然后將.ko拷貝到extra目錄。

#INSTALL_MOD_PATH?表示安裝到那個目錄下

#一旦執行make?install?安裝模塊時,最后在/opt目錄生成一個lib目錄,

然后將lib目錄的內容拷貝到/opt/rootfs/lib

3.?make?//編譯模塊

4.?make?install?//安裝模塊

5.?cp?/opt/lib/*?/opt/rootfs/lib?-frd

6.?在開發板上進行加載:

modprobe?helloworld.ko?/modprobe?helloworld

#說明:?modprobe默認到/lib/modules/2.6.32.17-davinci1/下找以來文件modules.dep

根據依賴文件,決定先加載哪個模塊!模塊在/lib/modules/2.6.32.17-davinci1/extra

7.?卸載模塊

modprobe?-r?helloworld??

?

?

總結:?modprobe用于復雜的有依賴關系的模塊加載。且它的操作其實也不方便。

如果依賴關系簡單的話還是用EXPORT_SYSBOL?();

?

?




與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的内核程序实现多文件的调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。