?? readme.txt
字號:
***********************驅動設計&使用說明******************************
作者:flyerwing
硬件平臺:h9200開發板(基于AT91RM9200)
操作系統:linux-2.4.27-vrs1-ATMEL
描述:定時點亮h9200開發板pc14&pc15的led
主要硬件模塊:
1。定時器:采用9200 tc1,中斷工作方式
2。led:工作在gpio模式的pc14&pc15
**********************************************************************
***驅動設計說明***
1。實現字符設備驅動
2。模塊動態加載
3。實現的主要系統調用:
3.1 open
A:初始化tc1,tc1_init()
B:pc14&pc15的gpio模式配置
C:向內核申請中斷
request_irq(AT91C_ID_TC1,tc1_irq_handler,SA_INTERRUPT,"tc1",NULL)
參數1:中斷號(體系結構相關):定義在include/asm/arch/AT91RM9200.H,9200可以管理32個中斷
參數2:中斷向量入口函數指針
參數3:標志,SA_INTERRUPT表示獨享中斷
參數4:中斷設備名,出現在/proc/interrupt中
3.2 close
A:關閉tc1中斷
disable_irq(AT91C_ID_TC1);
B:釋放中斷
free_irq(AT91C_ID_TC1,NULL);
3.3 ioctl
A:實現點亮和熄滅led
B:打開和關閉tc中斷
3.4模塊的注冊和注銷
采用devfs文件系統注冊方法,靜態分配設備號,無需手動創建設備文件。注意
使用中需要內核在fs中支持devfs文件系統
3.5中斷服務函數說明
中斷中點亮led,并打印消息表示中斷發生的次數。
***驅動使用說明***
step1: 啟動目標板,進入系統shell
setp2:通過nfs方式或其它方式拷貝leddrv.o到/lib/modules/
step3:輸入insmod leddrv.o
step4:運行測試程序 ./test 100000
效果:可以看到pc14&pc15的led在調試串口打印消息的同步下閃爍,ctrl+C退出
***特別說明***
test 的輸入參數為定時器的定時值,該值沒有經過換算,完全是為了演示中斷的
使用和定時器的配置,因此輸入值不代表實際的定時時間。
***文件說明***
leddrv.c:驅動源文件
leddrv.o:驅動模塊
Makefile: 編譯文件
test: 測試程序可執行文件
test.c: 測試程序源文件
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -