资源描述:
《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)};-----------------------------------------------------------------------------------------------------------------