Hello的驅動示例 linux驅動開發入門

2022-09-02 17:33:10 字數 1683 閱讀 5483

開發環境:虛擬機器上的linux(fedora)+arm(11)+友善之臂的光碟帶的linux核心linux-2.6.36

開發步驟:

1.先安裝手冊重新編譯下核心和裁剪切檔案系統,具體的就參考手冊,上面寫的很清楚,但是需要注意的是:在編譯核心的時候不要選擇linux_module_sample已經led和iic驅動,也就是不要包括hello驅動、led驅動、以及iic驅動。這個是為了方便在你的編譯的驅動時好分辨,當然你也可以不程式編譯,但是你的驅動的名稱最好不要重

2、**編寫

hello.c檔案:

#include
#include
static

int __init arm_hello_init(void)

static

void __exit arm_hello_exit(void)

module_init(arm_hello_init);
module_exit(arm_hello_exit);
module_license("gpl");
makefile

#hello_makefile arm
obj-m :=hello.o
krneldir :=/opt/friendlyarm/mini6410/linux/linux-2.6.36
cross_compile =arm-linux-
cc :=$(cross_compile)gcc
ld :=$(cross_compile)ld
pwd :=$(shell pwd)
all:
make -c $(krneldir) m=$(pwd) modules
.phony :clean
clean:
rm -rf *.o *ko
在這個makefile裡面需要注意的幾件事情:

krneldir:為你的linux的核心源**的路徑

要順利的編譯成功還得肯定你的交叉編譯器裝好了

好了,先在就make

看看你的開發板上動態載入的驅動在那個位置就拷貝到那裡

現在看看我的截圖:

好了找到你的驅動放的位置下面你就建立乙個資料夾來儲存你的驅動就可以了,但是其實你可以將其放在其他的任何位置都可以,但是為了規範還是放到對應的資料夾裡面。

嘿嘿,看到結果了哈!要是有什麼不會的聯絡我!

Linux驅動篇之hello

一 環境 a ubuntu18.04 b arm linux gnueabi gcc 7.5.0 gcc 7.5.0 c friendlyarm tiny4412 標準版 d linux 5.5 二 目標 a hello驅動 b hello應用 三 步驟 a hello驅動 1 在drivers目錄...

驅動 入門例項hello驅動(一)

一 基本理論 二 基本資料結構和例項 三 總結 一 基本理論 雖然基本的linux核心是乙個大的image檔,也可以當做是乙個bin檔,可執行檔案。但是核心是模組化組成的,它允許在核心執行時向其中動態的插入或刪除 二 基本資料結構和例項 以下是module init和module exit巨集函式 ...

Linux 2 6核心驅動之hello模組

終於開始在鍾愛的linux上學習寫驅動程式了。本來以為寫乙個hello模組是異常簡單的事情,結果折騰了幾天才編譯通過。首先為了測試安裝了虛擬機器 核心程式是很危險滴,我可不想讓自己的愛本頻繁崩潰 裝fedora17 fedora18的live版在虛擬機器上始終跑不起來 來回來去幾次也裝不上virtu...