论文部分内容阅读
随着信息化,网络化,智能化的发展,嵌入式技术获得广阔的发展空间。Linux凭借其内核微小、可裁剪性、免费开源、可靠安全和多平台性迅速成为主流嵌入式开发平台。嵌入式设备种类繁多,大多数应用在字符设备。设备驱动程序在嵌入式系统中占据举足轻重的地位。因此本文针对嵌入式Linux字符驱动程序设计原理和方法进行研究。首先,介绍嵌入式系统开发环境搭建。内容包括宿主机Linux系统搭建,内核源码树的构建,交叉编译工具链的制作,S3C2410平台简单介绍,Linux内核的裁剪和移植,BootLoader和根文件系统。其次,重点研究了Linux设备驱动关键技术。深入了解内核并发技术如信号量和自旋锁,内核定时器包括Tasklet机制、工作队列等技术,与硬件通信的I/O内存和I/O端口技术,中断处理及调试技术。再者,研究了字符设备驱动程序的基本原理和方法。介绍了内核模块开发技术,包括模块的初始化和退出,错误处理和模块参数等内容。重点研究了字符设备的设备号及注册,关于字符设备的重要数据结构,并对字符设备驱动的读和写方法、ioctl接口及阻塞与非阻塞等技术进行研究。最后,将本文研究的设备驱动技术应用于USB键盘,介绍了USB键盘驱动核心数据结构和基本方法。