首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM数控系统的PC/104总线设计(2)

基于ARM数控系统的PC/104总线设计(2)

3嵌入式Linux下的驱动程序开发  为了在Linux 2.6操作系统下实现本文所述的功能,必须为总线控制器提供一个驱动程序。在Linux中,所有的硬件设备都像常规文件一样看待,他们可以使用和操作文件相同的,标准的系统调用进行打开、关闭和读写。用户程序通过相应的系统调用来访问硬件设备,设备驱动程序的作用正是为这些系统调用提供接口。为了能对PC/104总线上的地址空间进行随机、连续访问,把PC/104总线设计成块设备。

  设备驱动程序本质上说就是一组相关函数的集合。在驱动程序模块化编程中,首先需要调用入口函数im-modLde()完成设备驱动程序的初始化工作:利用函数

  在系统中注册和PC/104相关的几个中断,关联中断服务例程,并设置中断等级;利用函数setexternal irq(int irq,int edge,int pulIup)设置中断的触发模式,和是否利用处理器的内部上拉;其中最重要的一个工作就是向内核注册设备,调用函数

  注册成功后,该设备获得系统分配的主设备号、自定义的次设备号,并建立起与文件系统的关联;在本应用中只需要定义write()、read()两个文件操作,因此文件系统接口可定义为:

  最后驱动程序卸载时调用出口函数Clearnup rood-ule(),通过函数

  放相应的资源。
  4 结 语
  本文重点描述对PC/104控制器的设计,从满足系统的时序要求出发,采用CPLD器件和VHDL语言完成对PC/104总线上信号的驱动,同时在嵌入式Linux环境下编写驱动程序,提供了一套完整的基于ARM嵌入式系统上实现PC/104总线的方案,该方案将在实践应用中进一步验证和完善。本文成功地把工业控制计算机技术中的嵌入式PC/104总线结构在S3C2410处理器上实现,该系统具有体积小、功耗低,克服了传统PC机的缺点;采用CPLD通过VHDL语言实现PC/104总线控制器,缩短开发的成本和周期,提高了开发的灵活性。
继承事业,薪火相传
返回列表