北京電子科技學院(BESTI)
實驗報告
課程:資訊安全系統設計基礎 班級:1353
姓名:蘆暢 傅冬菁
學号:20135308 20135311
成績: 指導教師:婁家鵬 實驗日期:2015.11.24
實驗密級: 預習程度: 實驗時間:15:30~18:00
儀器組次: 必修/選修: 實驗序号:4
實驗名稱:實驗四:外設驅動程式設計
實驗目的與要求:
1.掌握實時系統應用和驅動程式的編寫
2.選擇某個接口電路
實驗儀器:
名稱 | 型号 | 數量 |
嵌入式開發平台 | UP-NETARM2410-CL | 1 |
PC機 | DELL |
實驗内容、步驟與體會:
1、前期準備,開發環境的配置同實驗一,運作./install.sh

編譯代碼,挂載調試,成功運作:
2、閱讀和了解源代碼,進入/bc/01_demo,使用vi 編輯器或其他編輯器閱讀了解源代碼。
2、編譯驅動子產品及測試程式
在 Makefile 中有兩種編譯方法,可以在本機上使用gcc 也可以使用交叉編譯器進行編譯,這裡我們使用交叉編譯器進行編譯的結果。
因為手動編譯代碼太為繁瑣,我們選擇了用make的方法,将Makefile稍微修改後就可以使用。Makefile修改後如上圖所示。
之後輸入make指令,看到如下圖指令:
如果編譯的時候出現問題,可能是在/usr/src 下沒有建立一個linux 連接配接,可以使用下面的指令:
[root@zxt 01_demo]# cd /usr/src/
[root@zxt src]# ln -sf linux-2.4.20-8 linux
[root@zxt src]# ls
如果使用 gcc 編譯的話,需要通過下面的指令來建立裝置節點,如果使用交叉編譯器
的話,不需要建立裝置節點。
#mknod /dev/demo c 254 0
首先要插入驅動子產品demo.o,然後可以用lsmod 指令來檢視子產品是否已經被插入,在
不使用該子產品的時候還可以用rmmod 指令來将子產品解除安裝。
編譯成功,出現如下結果:
[root@BC 01_demo]# ./test_demo
write 32 bytes data to /dev/demo
0: 0 1 2 3
1: 4 5 6 7
2: 8 9 10 11
3: 12 13 14 15
4: 16 17 18 19
5: 20 21 22 23
6: 24 25 26 27
7: 28 29 30 31
*****************************************************
Read 32 bytes data from /dev/demo
0: 31 30 29 28
1: 27 26 25 24
2: 23 22 21 11
3: 12 13 14 15
4: 16 17 18 19
5: 20 10 9 8
6: 7 6 5 4
7: 3 2 1 0
*****************************************************
遇到的問題及解決辦法:
1.我們起初運作make沒有成功,我們先選擇了手動編譯代碼,然而後來還是沒有運作成功,出現
[root@zxt 01_demo]# ./test_demo
####DEMO device open fail####
失敗提示。
後來我們問了同學,将Mekefile修改了,再次make,可以成功運作。
2.
[root@zxt src]# ln -sf linux-2.4.20-8 linux
- ln指令的用法是連接配接,使用格式是ln [options] source dist,這裡我們用到的sf參數的含義是:
-f:連結時先将與dist同檔名的檔案删除
-s:進行軟連結。(軟連結,又稱符号連結,這個檔案包含了另一個檔案的路徑名,特點是可以連結不同檔案系統的檔案,甚至可以連結不存在的檔案。)