#include #include #include #include #include #include #include #include #include #include static struct class *firstdrv_class;
static struct class_device *firstdrv_class_dev;
volatile unsigned long *gpfcon = null;
volatile unsigned long *gpfdat = null;
static int first_drv_open(struct inode *inode, struct file *file)
static ssize_t first_drv_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)
else
return 0;
}static struct file_operations first_drv_fops = ;
int major;
static int first_drv_init(void)
static void first_drv_exit(void)
module_init(first_drv_init);
module_exit(first_drv_exit);
module_license("gpl");
#include #include #include #include /* firstdrvtest on
* firstdrvtest off
*/int main(int argc, char **argv)/* 第乙個int argc,是記錄你輸入在命令列上的字串個數;第二個*argv是個指標陣列,存放輸入在命令列上的命令(字串) */
if (argc != 2)
if (strcmp(argv[1], "on") == 0) /* 判斷輸入的是on or off ? */
else
write(fd, &val, 4);/* &val相當於first_drv_write中的__user *buf; 4相當於first_drv_write中的size_t count*/
return 0;
}
第乙個驅動程式
原始出處 驅動程式的開發,向來是令人感到有所畏懼的,可能很多人像我一樣,看了很久卻還是一頭霧水,不得其門而入。我們今天就通過乙個簡單的程式來使讀者學會初步的驅動程式開發。在開發windows驅動程式之前,我們需要首先安裝ddk,win98及其以前的vxd我們就不要再考慮了 windows 2000 ...
第乙個驅動程式
從今天開始就要進入核心驅動程式部分了,在這一節裡就通過第乙個驅動程式來介紹一下核心驅動模組的編寫框架。static intfirst drv open struct inode inode,struct file file static ssize t first drv write struct ...
第乙個程式點亮乙個LED燈
include 引用52包檔案 可以理解為命名空間 sbit p1 0 p1 0 定義p1管腳0 void main 主程式 c語言所必需要有的 以下非程式 上面的程式,首先引用reg52.h,這裡有對操作微控制器相關資料的封裝,方便使用者使用 接著,用p1 0這個sbit型別的變數,引用p1口的第...