linux字符设备驱动篇.ppt

linux字符设备驱动篇.ppt

ID:52267622

大小:290.51 KB

页数:11页

时间:2020-04-03

linux字符设备驱动篇.ppt_第1页
linux字符设备驱动篇.ppt_第2页
linux字符设备驱动篇.ppt_第3页
linux字符设备驱动篇.ppt_第4页
linux字符设备驱动篇.ppt_第5页
资源描述:

《linux字符设备驱动篇.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于GPRS远程安防监控系统作者:261676224项目描述本装置可以通过传感器采集现场火警【温度传感器模拟】等数据,通过摄像头采集现场图像,通过红外传感器【按键模拟】是否有人进入现场,在异常情况下给用户发送短信同时并报警;用户可以通过INTERNET登陆监控机的主页,在主页上观察监控机采集到的现场数据,以及现场是否有人进入过,通过摄像头采集现场图像或对现场进行实时监控实现功能KEY1-启动报警KEY2-解除报警LED1-运行状态提示灯LED2-温度过限提示灯LED3-阻值过限提示灯LED4-网页控制LED灯---------

2、-------------------------------------------------------------------------------采集到的阻值及温度数据全部存入数据库实时监控终端界面可以修改阻值、温度阀值、或者主要控制蜂鸣器或LED灯驱动篇module_init(xxx_init)module_exit(xxx_exit)intinit_module(int)voidinit_module(void)insmod[装载]rmmod[卸载]lsmod[查看]驱动篇如何编写一个字符设备驱动?编写驱动准备

3、首先对驱动所涉及到的硬件相关进行了解,包括其可实现的功能,需要配置的寄存器等,当然我们可以先实现裸驱程序正常执行,看看运行状态,然后再考虑如何将其编写为驱动模块驱动编写思想可以把驱动作为一个接口函数,功能当然也体现在接口函数上,可以使用多个函数来实现不同的功能,然后供给上层应用层的调用驱动加载模式如何加载?驱动模块加载方式的选择根据需要来决定,如果仅为调试使用,建议以命令insmod方式加载,rmmod方式卸载,否则可以以静态方式加载,用makemenuconfig来选配,生成zImage驱动篇int(*release)(st

4、ructinode*,structfile*);int(*open)(structinode*,structfile*);DEMO1?register_chrdev_region(xx_devnumber,1,“driver_name”);alloc_chrdev_region(&xx_devnumber,1,“driver_name”);register_chrdev_region(xx_devnumber,1);cdev_addcdev_initIounmap()驱动篇DEMO2?platform_device_regis

5、ter(xx_device);platform_device_unregister(xx_device);-------------------------------------------------------------------------------------------------------------------structplatform_devicexx_device=

6、structxx_device_resource={{

7、[0]={.name=“xx_d”,

8、.start=0XE03001C0,.

9、id=-1,

10、.end=0XE03001C0+0X3,.resource=xx_device_resource,

11、.flags=IORESOURCE_MEM,.num_resource=?,

12、},.dev={

13、[1]={.release=myrelease,}

14、…};

15、}Voidmyrelease(structdevice*dev){}

16、}xx_device.c驱动篇DEMO2?platform_driver_register(xx_driver);platform_driver_unregister(xx_driver);-

17、------------------------------------------------------------------------------------------------------------------structplatform_driverxx_driver={.driver={.name=“xx_d”,},.probe=xx_init,--->xx_init(structplatform_device*xx_device).remove=xx_exit,--->xx_exit(structpla

18、tform_device*xx_device)};-----------------------------------------------------------------------------------------------------------------

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。