實驗目的
學習在 LINUX 下進行驅動設計的原理。
掌握使用模組方式進行驅動開發除錯的過程
實驗內容
在PC機上編寫簡單的虛擬硬體驅動程式並進行除錯,實驗驅動的各個介面函式的實現, 分析並理解驅動與應用程式的互動過程。
連線arm開發板
將 arm 開發板電源線接好,保持開發板開關處於閉合狀態。再分別將串列埠線、並口線和網線與 pc 機連線好。
建立超級終端
執行WindowsXP中:開始→所有程式→附件→通訊→超級終端(HyperTerminal)。
新建一個通訊終端。要求輸入區號、電話號碼等資訊請隨意輸入,為所建超級終端取名為 arm,隨意為其選一個圖示。
在屬性對話方塊中,將波特率設為 115200,資料位設為 8,無奇偶校驗,停止位為 1,無資料流控制。將其另存為在桌面。
開啟超級終端
開啟超級終端,開啟 arm 機電源開關。等待一分鐘,arm 機的資訊會顯示在超級終端的視窗中。輸入“boot”後會引導kernel,啟動linux系統。在應用程式目錄下,可以通過“ls”檢視。
環境配置
輸入ifconfig命令,記錄下arm機的ip為:192.168.0.123。修改xp系統與redhat虛擬機器的ip,使得它們均與arm機的ip在同一網段。xp系統為192.168.0.78,redhat為192.168.0.121.將三個IP地址ping一下,確保是相互聯通的。
在pc機中“開始”、“執行”,輸入虛擬機器的ip。\192.168.0.121,輸入使用者名稱bc,密碼123456 然後確定,就可以訪問虛擬機器的檔案了。然後把所需檔案解壓縮拷貝到共享資料夾bc中。進入虛擬機器,在命令列中輸入./install.sh,安裝指令碼程式將會自動建立
目錄,配置編譯環境。
在虛擬機器中使用vi修改/root/.bash_profile檔案中的PATH變數為PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin/(因為該檔案為隱藏系統檔案,所以使用ls命令不可見),存檔後執行:source /root/.bash_profile,則以後armv4l-unknown-linux-gcc會自動搜尋到,可以在終端上輸入。
實驗步驟
1、閱讀和理解原始碼
進入/arm2410cl/exp/drivers/01_demo,使用vi編輯器或其他編輯器閱讀理解原始碼。
2、編譯驅動模組及測試程式
上面介紹了在 Makefile 中有兩種編譯方法,可以在本機上使用 gcc 也可以使用交叉編 譯器進行編譯
3、測試驅動程式
如果使用 gcc 編譯的話,需要通過#mknod /dev/demo c 254 0 命令來建立裝置節點,如果使用交叉編譯器 的話,不需要建立裝置節點
4、編譯成功
[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
*****************************************************