arm linux驅動開發學習6

2021-10-16 09:27:06 字數 1727 閱讀 5350

靜態編譯

–>將驅動原始碼放到kernel核心原始碼所對應的資料夾下面

–>修改kconfig配置

–>修改makefile

–>make menuconfig配置圖形介面

–>生成zimage映象檔案

動態編譯:

–>將驅動檔案編譯成.ko檔案

–>將test.ko檔案拷貝到/lib/module/4.1.15/目錄下

–>depmod(會在/lib/modules/#4.1.15#/目錄下生成modules.dep和modules.dep.bb檔案,表明模組的依賴關係)

–>modprobe test(注意這裡無需輸入.ko字尾) 即可

1 kerneldir :

=/home/zuozhongkai/linux/imx6ull/linux/temp/linux-imx-rel_imx_4.

1.15_2.

1.0_ga_alientek

2 current_path :

= $(shell pwd)

3 obj-m :

= chrdevbase.o

45 build: kernel_modules

67 kernel_modules:

8 $(make)

-c $(kerneldir) m=$(current_path) modules

9 clean:

10 $(make)

-c $(kerneldir) m=$(current_path) clean

第 1 行,kerneldir 表示開發板所使用的 linux 核心原始碼目錄,使用絕對路徑,大家根

據自己的實際情況填寫即可。

第 2 行,current_path 表示當前路徑,直接通過執行「pwd」命令來獲取當前所處路

徑。第 3 行,obj-m 表示將 chrdevbase.c 這個檔案編譯為 chrdevbase.ko 模組。

第 8 行,具體的編譯命令,後面的 modules 表示編譯模組,-c 表示將當前的工作目錄切

換到指定目錄中,也就是 kernerldir 目錄。m 表示模組原始碼目錄,「make modules」命令

中加入 m=dir 以後程式會自動到指定的 dir 目錄中讀取模組的原始碼並將其編譯為.ko 檔案。

–>makefile 編寫好以後輸入「make」命令編譯驅動模組

!!!需要注意的是:引用linux kernel的標頭檔案用<.>;自己檔案裡面的.**件應該使用"*.h"

以下是驅動檔案adxl362.c的標頭檔案**,需要注意最後一行!

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

"adxl362.h"

//!!!!!!!!!!!!!!!!!!!

之後再資料夾下生成了.ko檔案

arm linux驅動開發學習2

驅動測試階段 wifi模組始終無法載入成功,usb wifi插上之後,始終無法顯示wifi網路資訊 lib modules 4.1.15 ifconfig a eth0 link encap ethernet hwaddr00 04 9f 04 d2 35 inet addr 192.168 1.5...

arm linux驅動開發學習5

串列埠通訊 只要是使用串列埠通訊,不論是ttl還是232 485,其驅動程式都是一樣的,通過外接rs485晶元即可將串列埠轉換為rs485訊號。本節用的是串列埠3,串列埠驅動框架為 1 uart driver 註冊與登出 每個串列埠驅動都需要定義乙個 uart driver,載入驅動的時候通過 ua...

ARM Linux驅動開發環境

目的 梳理arm linux驅動開發所需的環境和流程,記錄遇到的問題。環境介紹 pc機 編寫驅動程式和測試 伺服器 編譯驅動程式生成.ko檔案,編譯測試 生成執行程式 單板 jz2440 準備工作 linux核心 linux 2.6.22.6以及對應的補丁檔案 工具鏈 gcc version 3.4...