1.首先驅動程式檔案通過tftp傳輸到開發板上,然後執行insmod s3c_led.ko 裝載led驅動模組
2.cat /proc/devices |grep led,顯示led 250
3.建立裝置節點:mknod /dev/led0 c 250 0
mknod /dev/led1 c 250 1
mknod /dev/led2 c 250 2
mknod /dev/led3 c 250 3
4.改變裝置的保護許可權:chmod 644 /dev/led[0-3]
5.測試程式如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include //返回出錯資訊所需要的標頭檔案
#define platdrv_magic 0x60
#define led_off _io (platdrv_magic, 0x18)
#define led_on _io (platdrv_magic, 0x19)
#define led_num 4
#define name_length 20
int main(int argc,char **argv)
; int fd1;
if(argc<3)
for(j=0;j6.總結:在編寫測試程式時,開始總是沒有效果,列印檔案描述符也是0,但總是找不到出錯資訊,後來在應用程式空間使用了strerror(errno)這個函式
才列印出錯原因,這才找出了問題。在應用程式空間使用strerror(errno)還是很管用的。。。。
led驅動程式
led drv.c檔案如下 include include include include include include include include include include include include include include include include led opr....
字元裝置驅動 LED驅動程式
int main open sys.open led.open write sys.write led.write 第一步 驅動功能實現 static int first drv open struct inode inode,struct file file static ssize t firs...
十 編寫LED驅動程式
結合前面介紹的linux字元驅動編寫的流程 申請裝置號 裝置註冊 生成裝置節點 開始對led驅動進行編寫。編寫驅動的流程 檢視原理圖以及資料手冊 核心尋找相似驅動進行開發,有時從零開始 字元驅動編寫以及實現功能,方便呼叫 編譯核心或者insmod載入 測試驅動。檢視原理圖以及資料手冊 如下圖 從圖中...