功率电感生产厂家
联系我们
热门搜索
点击排行
推荐阅读
猜猜你喜欢的
最新动态 您所在的位置: 首页 > 最新动态

嵌入式Linux字符设备驱动的设计与应用

来源:    作者:    发布时间:2015-08-17 07:11:26    浏览量:

摘要:描述了基于嵌入式Linux的字符设备驱动程序的设计方法和功率电感器实现过程。以电机、数码管、串口和mini键盘的驱动设计为例,详细阐述了嵌入式linux下字符设备驱动设计中的关键技术,包括设备的设备号、设备的操作及设备的注册和卸载等。通过编写相应硬件设备的应用程序高频电感器设计,测试设备驱动的正确性。介绍了Troolltech公司开发的开源图形用户界面库-Qt,并使用Qt编程方法设计出良好的人机交互界面。试验结果表明设计的驱动程序完全正确,可以被应用程序使用。

1引言

随着嵌入式系统的发展,嵌入式 Linux以其稳定性和开放源代码的优点在嵌入式系统的开发中得到广泛应用。越来越多的软硬件厂商使用嵌入式 Linux来开发自己的产品,对基于嵌入式 Linux平台开发设备的驱动程序和应用程序的需求在成倍增长。本文通过实现对 PXA255开发板外围字符设备(电机、数码管、串口和 mini键盘)的操作和控制,详细讨论了嵌入式 linux字符设备驱动的设计与应用。

2系统的设计框架

系统的设计分为字符设备驱动程序和人机交互界面两部分。驱动程序为应用程序提供了操作设备的接口;人机交互界面的设计实现设备应用程序并完成人机交互的功能。整个系统软硬件的关系如图 1:字符设备被映射到 Linux文件系统的文件和目录,通过文件系统的系统调用接口 open(),write(),read(),close()等函数访问字符设备,实现设备的操作。

图 1 系统软硬件的关系

3系统字符设备驱动程序的设计方法

Linux驱动程序是设备与具体的应用程序的中间层,它提供操作设备的接口,应用程序员不需要知道具体设备工作细节,只要调用一组标准化的函数就能完工字电感成对设备的操作,这些标准化的函数与具体的驱动没有关系,而将这些函数映射到作用于具体设备上的操作则与驱动程序相关[1]。Linux设备分为字符设备,块设备和网络设备,字符设备是能够像字节流一样被访问的设备。以下通过描述字符设备(电动机、数码管、串口、mini键盘)驱动的实现方法,深入讨论了基于嵌入式 linux的字符设备驱动的设计方法和实现过程。

3.1初始化函数与清除函数

Linux系统中,设备驱动的初始化函数负责注册设备,并完成驱动程序必要的初始化以及申请中断等[2],Linux系统使用 module_init宏指定初始化函数。在初始化函数中调用 regiSTer_chrdev函数向系统注册字符设备,通过 request_IRq 函数申请中断。例如电机设备的初始化函数如下:

  static int __init moto_init(void){

  int ret;

  ret = register_chrdev(MOTO_MAJOR, "moto&贴片电感quot;, &moto_fops);//注册电机设备

  if (ret) {

  printk(KERN_ERR "%s: can't get major %d.n",

  __func__, MOTO_MAJOR);

  return ret;

  }

  printk(KERN_INFO "%s: register moto device successfully.n", __func__);

  return 0;

  } 其中,register_chrdev函数的第一个参数为主设备号,如果为0 则系统为此驱动程序动态地分配一个主设备号;第二个参数是设备名称,这里是以moto为设备名称;第三个参数moto_fops是默认的struct file_operations结构体 [3]。

清除函数的功能和初始化函数的功能相反,它将驱动程序所占用的系统资源、中断号进行释放。Linux系统使用 module_exit宏指定清除函数。

3.2中断

在 Linux 系统中,中断是由系统来管理与维护的。中断服务子程序在初始化函数中调用 request_irq 函数与相应中断号关联,并将该中断的相关信息添加到系统的中断信息列表中。中断发生时, Linux系统响应中断号来实现中断处理程序的差模电感执行。mini键盘按键触发产生中断号为 SIMPLE_KEY_IRQ的中断,系统自动检索并调用键盘中断服务子程序。键盘中断处理流程如图 2:

  • 电压和电流传输方式的不同工业上通常用电压 0 5(10)V 或电流 0(4) 20mA 作为模拟信号传输的方法,也是被程 控机经常采用的一种方法。那么电压和电流的传输方式有什么不同,什么时候采用什么方法,下面将对此进行简要介

  • 采用软件无线电架构加速无线设备开发和测试随着现在无线电应用数量的增加—从相距数公里的两个朋友之间的视频交谈到PDA控制的库房环境和照明,无线标准的数量也在增加。每个行业都进入无线通信的应用领域,然而每个行业具有其自己的要求和规范,需要根据特

  • 分析无极灯在路灯照明中的应用 引言无极灯是21世纪的一种高效节能绿色新光源,主要由灯泡、耦合器和高频发生器组成,其工作原理是:高频电磁场能量以感应方式耦合到灯泡内,使灯泡内的气体击穿,形成等离子体,等离子体受激发原子返回基态时,

  •