linux驱动程序相关头文件简单介绍.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linux驱动程序相关头文件简单介绍

?LED驱动程序相关头文件简单介绍分类:?linux驱动开发2011-10-25 21:53?3455人阅读?评论(1)?收藏?举报cstructoutputmoduletypesfile[cpp]?view plaincopy~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~??????????????????????????????????《常识》??¥应用程序系统内核设备驱动硬件设备??¥设备驱动既是系统内核的下属,又是硬件设备的老大。????¥在inux系统中用一个文件来代表一个设备。这个文件就叫设备文件。设备驱动的责任是将应用程序对设备文件??的打开、读、写、定位等操作转化为对硬件设备的打开、读、写、定位等操作。而对于任何硬件设备,应用程序??只需利用这些基本操作就可以完全控制它!??¥编写linux设备驱动需要的知识结构:??1、40%的设计模式相关知识。设计模式是系统内核限定的,做别人的下属就得按照别人的规矩办事。??2、30%的内核工作原理相关知识。内核是你领导,领会领导意图才能把事情办好。??3、30%的硬件相关知识。控制好硬件是你的的本质工作,你得把你的小弟管理好.??~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~??在解读OK6410官方提供的LED驱动程序源码的过程中,发现很多没见过的宏和函数。例如S3C64XX_GPM(0)、S3C64XX_GPM_OUTPUT(0)、__raw_writel(tmp,S3C64XX_GPMPUD)、__raw_writel(tmp,S3C64XX_GPMCON)等。而这些都包含在一些头文件里面。另一方面,我们自己动手编写LED的驱动程序也必须知道相关的头文件有哪些,对我们有哪些用。因此,我觉得在自己动手编写LED驱动程序之前对相关头文件进行简单的分析是非常有必要的。以下是我自己结合源码分析得出的一些结论,如有不正确的地方,希望能够得到指正。OK6410官方提供的LED驱动程序源码:[cpp]?view plaincopy#include?linux/module.h??#include?linux/kernel.h??#include?linux/fs.h??#include?linux/init.h??#include?linux/miscdevice.h??#include?linux/delay.h??#include?linux/device.h??#include?linux/cdev.h??#include?asm/irq.h??#include?mach/gpio.h??#include?plat/regs-gpio.h??#include?plat/gpio-cfg.h??#include?mach/hardware.h??#include?linux/io.h????#define?DEVICE_NAME?leds??#define?LED_MAJOR?231??????static?unsigned?long?led_table?[]?=?{?????????S3C64XX_GPM(0),?????????S3C64XX_GPM(1),?????????S3C64XX_GPM(2),?????????S3C64XX_GPM(3),??};????static?unsigned?int?led_cfg_table?[]?=?{??????S3C64XX_GPM_OUTPUT(0),??????S3C64XX_GPM_OUTPUT(1),??????S3C64XX_GPM_OUTPUT(2),??????S3C64XX_GPM_OUTPUT(3),??};????static?int?s3c6410_leds_ioctl(??????struct?inode?*inode,???????struct?file?*file,???????unsigned?int?cmd,???????unsigned?long?arg)??{??????unsigned?long?tmp;??????switch(cmd)?{??????case?0:??????case?1:??????????if?(arg??4)?{??????????????return?-EINVAL;??????????}??????????tmp?=?__raw_readl(S3C64XX_GPMDAT);?????

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档