驅動設計之ARM hello

2021-09-08 21:35:17 字數 1705 閱讀 1918

開發環境:虛擬機器上的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

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

現在看看我的截圖:

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

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

領域驅動設計之關聯設計

在找到實體與值物件後,我們就需要進行物件之間的關聯設計。1.關聯盡量少,不要形成複雜的關係網。複雜的關係網不利於劃分邊界,理解與維護物件,同時對效能也有不利影響,通常關係只找出在整個業務生命週期都需要存在的關係。比如乙個訂單項需要關聯到產品,但是仔細分析,乙個訂單項並不需要再整個業務生命週期都需要存...

模型驅動設計 MDD 之靈活設計

板橋裡人 2006 8 12更新 靈活設計可以使我們隨著專案開發的進行,感到速度越來越快,而不是越來越慢,甚至 停滯不前。靈活設計是對領域建模的補充,當我們從領域中抓住那些隱隱約約的線索和概念原型後,就象準備好原料 下面就是通過迭代將原料錘煉成一定具體的形狀,可以俗稱 打鐵 那麼打鐵打到什麼形狀算可...

linux網路驅動之網絡卡驅動程式的設計

裝置開啟 資料傳送 資料接收 中斷處理 每個網路介面都由乙個net device 位於 標頭檔案的的第840行 結構描述,該結構可用於如下核心函式動態分配 struct net device alloc netdev int sizeof priv,const char mask,void setu...