摘要 | 第5-6页 |
Abstract | 第6页 |
第1章 绪论 | 第9-14页 |
1.1 课题研究背景及意义 | 第9-10页 |
1.1.1 课题背景 | 第9页 |
1.1.2 课题研究目的和意义 | 第9-10页 |
1.2 国内外研究现状 | 第10-12页 |
1.3 课题主要研究内容 | 第12-13页 |
1.4 论文结构 | 第13-14页 |
第2章 嵌入式系统开发环境的搭建 | 第14-20页 |
2.1 嵌入式系统简介 | 第14-15页 |
2.2 宿主机 Linux 系统搭建 | 第15-16页 |
2.2.1 构建内核源码树 | 第15-16页 |
2.2.2 交叉编译工具链 | 第16页 |
2.3 目标板嵌入式系统搭建 | 第16-19页 |
2.3.1 S3C2410 和开发板简介 | 第16-17页 |
2.3.2 内核裁剪 | 第17-18页 |
2.3.3 BootLoader 和 Kernel 烧写 | 第18-19页 |
2.3.4 Root Filesystem | 第19页 |
2.4 本章小结 | 第19-20页 |
第3章 Linux 设备驱动开发技术 | 第20-33页 |
3.1 Linux 设备驱动程序分类 | 第20页 |
3.2 Linux 驱动程序关键技术 | 第20-32页 |
3.2.1 并发与竞争 | 第20-24页 |
3.2.2 高级时间管理技术 | 第24-26页 |
3.2.3 I/O 内存与 I/O 端口 | 第26-29页 |
3.2.4 中断处理 | 第29-31页 |
3.2.5 调试技术 | 第31-32页 |
3.3 本章小结 | 第32-33页 |
第4章 字符设备驱动 | 第33-44页 |
4.1 内核模块开发 | 第33-35页 |
4.1.1 内核模块 | 第33-34页 |
4.1.2 加载和卸载模块 | 第34页 |
4.1.3 模块初始化和退出 | 第34-35页 |
4.1.4 初始化中的错误处理 | 第35页 |
4.2 主次编号 | 第35-37页 |
4.2.1 设备编号的内部表示 | 第35-36页 |
4.2.2 分配和释放设备编号 | 第36-37页 |
4.3 重要数据结构 | 第37-39页 |
4.3.1 文件操作 | 第37-38页 |
4.3.2 文件结构 | 第38-39页 |
4.3.3 inode 结构 | 第39页 |
4.4 字符驱动 | 第39-43页 |
4.4.1 字符设备注册 | 第39-40页 |
4.4.2 读和写 | 第40-41页 |
4.4.3 ioctl 接口 | 第41-42页 |
4.4.4 阻塞和非阻塞 | 第42-43页 |
4.5 本章小结 | 第43-44页 |
第5章 USB 键盘驱动设计 | 第44-49页 |
5.1 USB 驱动程序结构 | 第44-45页 |
5.2 USB 键盘的驱动设计 | 第45-48页 |
5.2.1 驱动初始化和注销 | 第45-46页 |
5.2.2 驱动的探测函数 | 第46-47页 |
5.2.3 驱动的核心原理 | 第47页 |
5.2.4 驱动的断开函数 | 第47页 |
5.2.5 驱动实验结果 | 第47-48页 |
5.3 本章小结 | 第48-49页 |
结论 | 第49-50页 |
参考文献 | 第50-53页 |
攻读硕士学位期间所发表的学术论文 | 第53-54页 |
致谢 | 第54页 |