練手, 第乙個字元驅動.
用模組載入方法
華清遠見《嵌入式linux裝置驅動開發詳解》的**拿來改的.
編譯過程發現很多錯誤.
最後發現 這本書帶的驅動**都是基於linux2.4的...目前我用的linux2.6, **部分需要做修改.
我的板子是 友善之臂的 2410. vmware+ubuntu nfs交叉編譯
首先
linux2.6核心編譯裡面要開啟loadable modules, 以及 unload 的選項也要選上 否則用不到rmmod命令 呵呵.
第二 (和上面第一條一樣,今後寫驅動都會要用到這個)
要製作linux 核心樹(linux2.6必須)
在linux2.6.14.1的**目錄
make bzimage
會生成乙個新檔案 vmlinux
然後 make modules //編譯模組
make modules install //安裝模組
結束之後會在/lib/modules下生成2.6.14.1資料夾, 這個就是核心樹了. 主要用到的就是裡面的標頭檔案.
第三
注意會用到ioremap()函式, 絕對位址到虛擬位址的轉換, 然後用指標來對portb的暫存器賦值
第四
測試..
交叉編譯, 在開發板串列埠終端上 insmod ./led.ko 出現提示符, rmmod led 也出現退出訊息.
這個時候注意了, 要新增裝置節點, 否則 test程式是打不開裝置的.
mknod /dev/leds c 231 0 //建立裝置節點
然後執行./test , 可以看到開發板上4個led全亮, 全黑, 輪流....說明這個驅動弄成功了.
感謝老何.
Linux驅動 LED驅動測試
環境 主機 fedora12 目標板 mini6410 目標板linux核心版本 2.6.38 實現功能 驅動目標板4個led.說明 led與6410引腳對應連線 led1 gpk4 led2 gpk5 led3 gpk6 led4 gpk7 驅動源 led driver.c cpp view pl...
(一)linux驅動之led
我採用的是正點原子的linux板子,覺得原子的板子還是很不錯的。由於正點原子使用的設計是通過電平拉低是點亮led,拉高則是關閉led。1.構建驅動載入和解除安裝函式 2.申請裝置號,裝置號可以指定,或者讓系統自動分配 3.初始化建立的cdev結構體。4.最後自動建立裝置節點 include incl...
Linux驅動 12 LED驅動
2.呼叫led驅動 1.1 led管腳的呼叫配置函式 gpio request gpio申請函式 gpio set value gpio賦值函式 s3c gpio cfgpin gpio配置函式,比如配置成輸入模式或者輸出模式 三星平台 s3c gpio output gpio配置成輸出模式的巨集定...