嵌入式Linux系统应用及项目实践教学课件作者丰海第六章_字符型驱动课件.ppt
文本预览下载声明
第六章 字符型驱动 * 丰海 硬件接口、驱动程序、设备文件、应用程序 驱动程序: 将底层硬件的操作写成供应用程序可以调用的函数集合。 设备文件: 为了让应用程序方便地控制硬件设备,驱动程序将硬件映射成一个设备文件,这样应用程序通过读写这个设备文件就可以控制硬件设备了。 应用程序: 应用程序通过读写设备文件,并调用驱动程序里的函数来控制硬件设备。 驱动程序与应用程序之间的区别 1.应用程序有一个main主函数,从头到尾执行一个任务; 驱动程序却没有main函数。 2.应用程序可以和GLIBC库连接,因此可以包含标准的头文件,比如stdio.h, 在驱动程序中是不能使用标准C库的,比如输出打印函数只能使用内核的printk函数,包含的头文件只能是内核的头文件,比如linux/module.h。 一个字符型驱动的标准框架如下: 1 头文件和宏定义 2 ioctl函数:定义了供应用程序调用的ioctl函数的实体 3 结构体:将所有供应用程序调用的函数名注册在这个结构体中 4 初始化函数模块hello_init:调用register_chrdev()函数为这份 驱动注册主设备号,如; ret = register_chrdev(0, DEVICE_NAME, hello_fops); 5 退出函数模块hello_exit:调用unregister_chrdev( ) 函数注销刚 才申请的主设备号,如: unregister_chrdev(demoMajor, DEVICE_NAME); 6 模块说明:说明那些函数是初始化函数;那些函数是退出函数 1 字符型驱动实例1 2 字符型驱动实例2 3 内核与应用程序之间的数据交换实例3
显示全部