基于uclinux的CAN总线嵌入式驱动编程
1 引言
早期应用于八位单片机软件设计的嵌入式系统主要为前后台系统(或超循环系统),程序大约在几千行以内,由两部分组成,即其应用程序是一个无限的循环,循环中调用函数完成相应的操作,属于后台行为;其中断服务程序处理异步事件,属于前台行为.随着嵌入式系统功能越来越庞杂,如友好的人机界面、网络化、远程监控等.各种任务的优先级不同,传统的设计方法无法完成,程序长达数万行,程序员必须同繁琐的底层硬件打交道,这样效率低下.现代电子技术的发展为嵌入式微处理器提供了更多的外设,通用的如串口、并口、以太网口、现场总线、USB口等.基于免费自由软件Linux发展而来的嵌入式系统uclinux,是一种免费的嵌入式操作系统.uclinux系统具有内核小、效率高、源码开放、性能稳定、大量的开发工具、良好的开发环境等特点,并且各种应用程序丰富,是进行嵌入式系统开发的最优秀工具之一.
2 uclinux操作系统简介
uclinux 系统主要由用户进程、系统调用接口、uclinux 内核、硬件控制器等四部分组成.用户进程是用户根据自己的设计和功能要求开发的应用程序,通过调用系统的功能函数来实现系统功能;系统调用接口通过系统调用实现用户与系统内核的接口,这些调用和服务也可以看成是系统内核的一部分;uclinux 内核是操作系统的灵魂,它抽象了许多硬件细节,将所有的硬件抽象成统一的虚拟接口,使程序可以以一种统一的方式进行数据处理,它主要包括基于优先级的进程调度、内存管理、文件系统、网络接口、进程间通讯等五部分;硬件控制器则包含了系统需要的所有可能的物理设备.以上四个部分之间的每个子系统都只能跟邻近的系统进行通信。
uclinux 的设备管理系统是嵌入式操作系统的重要组成部分,它可以分为:下层、与设备相关的,即所谓的设备驱动程序,直接与相应的设备打交道,并向上提供一组访问接口;以及上层、与设备无关,根据输入输出请求,通过特定设备驱动提供的接口,与设备进行通信.如通用的串口、网卡等驱动程序在uclinux 中都可以找到。
3 uclinux驱动编程原理
uclinux嵌入式系统不能象Linux一样动态加载驱动程序模块,而只能同内核一起编译,与应用程序、其他驱动程序一起固化到可擦写的Flash上,驱动程序长驻内存,是静态驱动程序.uclinux系统根据设备性质的不同,将设备分为四种类型:字符设备(char)、块设备(block)、网络接口( net )和其他设备驱动程序模块.在下载的uclinux源代码包中,可以在uclinux/linux/drivers目录下面看到通用设备如char,block, net, cdrom, scsi, sound等.系统对于每个设备都对应一个主设备号和一个次设备号,不同的设备可以对应相同的主设备号,应用程序访问设备通过不同的次设备号来识别和区别设备.在Linux系统/dev目录下通过输入ls -l命令可以查到系统已注册的设备,因此编写新的驱动程序时必须向系统注册该设备.在uclinux系统中,通过register_chrdev函数实现注册。
相关文章
- 2024-07-31铁路客车提速轴承外圈非基准端面挡边平行度测量仪的研制
- 2023-03-02智能化色谱分析软件的研究与应用探讨
- 2024-07-09多CCD拼接相机中图像传感器不均匀性校正
- 2022-04-27监控摄像机日夜及彩色黑白转换两用简析
- 2024-02-26实现同一分析周期内两流路并行分析的技术改造



请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。