- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
驱动原理扩展阅读
双色LED的Linux驱动程序分析 简单的LED驱动程序设计分析 嵌入式系统中的驱动程序开发,同时需要软件和硬件两个方面的知识。 硬件方面: 我们使用三星公司的 ARM9处理器S3C2410的2个I/O口(GPG12和GPG13) 直接驱动LED,原理图见下页。 根据数据手册知GPG12和GPG13是可以输出12mA的电流,内部具有100k欧的上拉电阻。 双色LED: 常见的是3/5mm红绿双色led,其正向压降和电流关系见数据手册。据此可以计算出2个电阻R的值及其消耗的功率。(5 mA电流时) LED发光器件迅速发展,高亮度和超高亮度(效率接近90%) 软件: 如图1所示的电路原理图驱动的双色LED,实际就是控制微处理器的2个I/O口的电平输出。 如果没有操作系统,这个硬件的驱动没有任何困难可提。LINUX下驱动程序把软件和硬件分析开来,应用程序所有对硬件的访问都必须通过驱动程序。 硬件对于应用程序不通明,必需依靠对应的驱动程序中定义的通信接口实现对硬件的操作。 双色LED 驱动程序 #include linux/config.h#include linux/module.h#include linux/kernel.h#include linux/init.h#include asm/hardware.h#include asm/delay.h#include asm/uaccess.h#undef DEBUG//#define DEBUG#ifdef DEBUG#define DPRINTK( x... ) printk(s3c2410-led: ##x)#else#define DPRINTK( x... )#endif # define LEDGreen GPIO_G12#define LEDOrange GPIO_G13static unsigned int LED[ ]={LEDGreen, LEDOrange};#define NumberOfLed (sizeof(LED)/sizeof(*LED))#define DEVICE_NAME s3c2410-led#define DbLedRAW_MINOR 1static int DbLedMajor = 0;static unsigned int ledstatus=3;static void Updateled(void){ int i; for(i=0; iNumberOfLed; i++) { if (ledstatus (1i)) write_gpio_bit(LED[i], 1); else write_gpio_bit(LED[i], 0); }} static ssize_t s3c2410_DbLed_write(struct file *file, const char *buffer, size_t count, loff_t * ppos){ copy_from_user(ledstatus, buffer, sizeof(ledstatus)); Updateled(); DPRINTK(write: led=0x%x, count=%d\n, ledstatus, count); return sizeof(ledstatus);}static ssize_t s3c2410_DbLed_read(struct file *filp, char *buffer, size_t count, loff_t *ppos){ copy_to_user(buffer, ledstatus, sizeof(ledstatus)); DPRINTK(read: led=0x%x\n, count=%d\n, ledstatus, count); return sizeof(ledstatus);} static int s3c2410_DbLed_release(struct inode *inode, struct file *fil
文档评论(0)