哈工大嵌入式設計與實踐實驗七 驅動程式開發

2021-06-13 13:39:05 字數 2184 閱讀 1251

1.完成乙個核心板上的led驅動程式

驅動程式**zcyled.c

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include module_license ("gpl");

#define gpio6_oe 0x49058034

#define gpio6_datain 0x49058038

#define gpgo6_dataout 0x4905803c

volatile unsigned long virt , phys;

static volatile unsigned long *gpgcon;

static volatile unsigned long *gpgdat;

static volatile unsigned long *gpgup;

static int zcy_open (struct inode *inode, struct file *file)

static int zcy_ioctl (struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)

return 0;

}struct file_operations zcy_fops =

;int major;

static int __init zcy_init (void)

static void __exit zcy_exit (void)

module_init (zcy_init);

module_exit (zcy_exit);

在ubuntu虛擬機器下執行make 編譯生成zcyled.ko檔案 拷貝到sd卡的label2目錄中

makefile

kerneldir :=/a8rp/source/linux-omap3-a8rp/

pwd := $(shell pwd)

default:

$(make) -c $(kerneldir) m=$(pwd) modules

clean:

$(rm) -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

$(rm) -rf module.markers module.symvers modules.order tags

obj-m := zcyled.o

測試檔案zcy_test.c

#include #include #include #include #include #include #include #include int main()

/*ioctl(fd,0);

printf("command:0\n");

ioctl(fd,1);

printf("command:1\n");

ioctl(fd,3);

printf("command:3\n");*/

ioctl(fd,0);

printf("command:0\n");

sleep(3);

ioctl(fd,1);

printf("command:1\n");

close(fd);

return 0;

}

測試檔案在虛擬機器下執行命令

arm-linux-gcc -o zcy_test zcy_test.c

生成可執行檔案zcy_test拷貝到sd卡的label2中

最後sd卡啟動系統 

1.載入驅動 insmod zcyled.ko

2.檢視新加入的裝置 cat /proc/devices

3.手動建立乙個新的裝置檔案以便測試檔案找到檔案識別符號fd

mknod /dev/zcy c 249 0   

注意:保證 /dev/zcy  與測試檔案中獲得fd的路徑一致

4.執行可執行檔案zcy_test 即可

./zcy_test

結語:最後不要忘了在生成驅動前修改系統的makefile即可

嵌入式系統設計與實踐

嵌入式系統設計與實踐 基本資訊 原書名 embedded systems 譯者 餘水清 叢書名 o reilly精品圖書系列 出版社 機械工業出版社 isbn 9787111415848 出版日期 2013 年5月 開本 16開 頁碼 1 版次 1 1 所屬分類 計算機 更多關於 嵌入式系統設計與實...

嵌入式系統設計與實踐

嵌入式系統設計與實踐 基本資訊 原書名 embedded systems 譯者 餘水清 叢書名 o reilly精品圖書系列 出版社 機械工業出版社 isbn 9787111415848 出版日期 2013 年5月 開本 16開 頁碼 1 版次 1 1 所屬分類 計算機 更多關於 嵌入式系統設計與實...

嵌入式開發與設計流程

一 嵌入式作業系統的分類 實時作業系統 vxworks wince onx.nucleus 非實時作業系統 嵌入式linux 具有作業系統的嵌入式軟體層次 1 驅動層程式 2 實時作業系統 rtos 3 作業系統的應用程式介面 api 4 應用程式 二 嵌入式處理器分類 1 嵌入式微控制器 micr...