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...