zedboard--運行在demo系統上的helloworld驅動(十八)

       前面虛擬機安裝ubuntu12.04已經完成,按照之前的方法安裝交叉編譯環境也很順利,要寫能在板子上運行的驅動程序,必須要編譯內核,首先下載內核。

       使用git命令下載似乎不是很好使,https://github.com/Digilent/linux-digilent/releases,我下載的是3.3的那個。

 1:解壓源碼:

 tar -xvzf linux-digilent-3.3.0-digilent-12.07-zed-beta.tar.gz

       如果不編譯內核,直接在makefile直接將目錄指向這裏是要報錯的。因爲有些.h .o文件需要編譯過後纔有。



2.配置內核源碼      

在arch/arm/configs/目錄下有這個配置文件   digilent_zed_defconfig 

make ARCH=arm digilent_zed_defconfig


3編譯Linux內核

make ARCH=arm

編譯過程在arch/arm/boot目錄下生成Image和zImage文件


4編寫helloworld.c和Makefile

helloworld.c


Makefile


可以看到helloworld.c和pc機運行的驅動程序時完全一樣的,而Makefile有一點不一樣,就是這裏的kernel路徑就是我們解壓後的路徑,然後還有ARCH=arm


5make


make通過了,之前就沒有通過,這裏還有一個疑問待解決,就是上面只是編譯了內核,生成了Image和zImage文件,上面時候還需要安裝內核模塊呢?這裏還有待搞清楚。

ls看一下生成的文件



看到生成了helloworld.ko文件,拷貝到U盤裏面,拷貝到zedboard自帶的迷你linux系統下。

6測試

啓動完系統後


插上U盤,掛載到/opt目錄下

fdisk -l

mount /dev/sda1  /opt/

cd /opt/

insmod helloworld.ko

測試結果:


運行完畢。




發佈了55 篇原創文章 · 獲贊 15 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章