第 1 章Linux 快速入门.................................................................................................................. 1 1.1 嵌入式 Linux基础........................................................................................................... 1 1.1.1 Linux 发展概述..................................................................................................... 1 1.1.2 Linux 作为嵌入式操作系统的优势..................................................................... 2 1.1.3 Linux 发行版本............................................. ........................................................ 3 1.1.4 如何学习Linux ..................................................................................................... 4 1.2 Linux 安装........................................................................................................................ 5 1.2.1 基础概念................................................................................................................ 5 1.2.2 硬件需求................................................................................................................ 7 1.2.3 安装准备................................................................................................................ 7 1.2.4 安装过程................................................................................................................ 8 1.3 Linux 文件及文件系统...................................................................................................11 1.3.1 文件类型及文件属性...........................................................................................11 1.3.2 文件系统类型介绍.............................................................................................. 13 1.3.3 Linux 目录结构................................................................................................... 14 1.4 实验内容——安装Linux 操作系统............................................................................. 17 本章小结................................................................................................................................. 17 思考与练习.............................................................................................................................. 18 第2 章Linux 基础命令................................................................................................................ 19 2.1 Linux 常用操作命令...................................................................................................... 19 2.1.1 用户系统相关命令.............................................................................................. 20 2.1.2 文件目录相关命令.............................................................................................. 27 2.1.3 压缩打包相关命令.............................................................................................. 38 2.1.4 比较合并文件相关命令...................................................................................... 40 2.1.5 网络相关命令...................................................................................................... 45 A-PDF MERGER DEMO ║2 嵌入式应用程序开发详解 2.2 Linux 启动过程详解...................................................................................................... 50 2.2.1 概述...................................................................................................................... 51 2.2.2 内核引导阶段...................................................................................................... 51 2.2.3 init阶段............................................................................................................... 52 2.3 Linux 系统服务.............................................................................................................. 54 2.3.1 独立运行的服务.................................................................................................. 55 2.3.2 xinetd设定的服务............................................................................................... 56 2.3.3 设定服务命令常用方法...................................................................................... 56 2.4 实验内容......................................................................................................................... 57 2.4.1 在Linux 下解压常见软件.................................................................................. 57 2.4.2 定制 Linux系统服务.......................................................................................... 58 本章小结................................................................................................................................. 60 思考与练习.............................................................................................................................. 60 第3 章Linux 下的C 编程基础................................................................................................... 61 3.1 Linux 下C语言编程概述.............................................................................................. 61 3.1.1 C语言简单回顾.................................................................................................. 61 3.1.2 Linux 下C语言编程环境概述........................................................................... 62 3.2 进入 Vi............................................................................................................................ 63 3.2.1 Vi的模式............................................................................................................. 63 3.2.2 Vi的基本流程..................................................................................................... 63 3.2.3 Vi 的各模式功能键............................................................................................. 65 3.3 初探 Emacs ..................................................................................................................... 66 3.3.1 Emacs的基本操作.............................................................................................. 67 3.3.2 Emacs的编译概述.............................................................................................. 70 3.4 Gcc编译器..................................................................................................................... 71 3.4.1 Gcc编译流程解析.............................................................................................. 71 3.4.2 Gcc编译选项分析.............................................................................................. 74 3.5 Gdb调试器..................................................................................................................... 77 3.5.1 Gdb 使用流程...................................................................................................... 78 3.5.2 Gdb基本命令...................................................................................................... 81 3.6 Make工程管理器........................................................................................................... 86 3.6.1 Makefile基本结构.............................................................................................. 86 3.6.2 Makefile变量...................................................................................................... 87 3.6.3 Makefile规则...................................................................................................... 90 3.6.4 Make管理器的使用............................................................................................ 91 3.7 使用autotools ................................................................................................................. 92 3.7.1 autotools使用流程.............................................................................................. 92 3.7.2 使用autotools所生成的Makefile...................................................................... 96 第1 章目录 3║ 3.8 实验内容......................................................................................................................... 98 3.8.1 Vi 使用练习......................................................................................................... 98 3.8.2 用Gdb调试有问题的程序................................................................................. 99 3.8.3 编写包含多文件的Makefile ............................................................................ 101 3.8.4 使用autotools生成包含多文件的Makefile.................................................... 103 本章小结............................................................................................................................... 105 思考与练习............................................................................................................................ 105 第4章嵌入式系统基础............................................................................................................ 106 4.1 嵌入式系统概述............................................................................................................ 106 4.1.1 嵌入式系统简介................................................................................................ 106 4.1.2 嵌入式系统发展历史........................................................................................ 107 4.1.3 嵌入式系统的特点............................................................................................ 108 4.1.4 嵌入式系统的体系结构.................................................................................... 108 4.1.5 几种主流嵌入式操作系统分析........................................................................ 109 4.2 ARM处理器硬件开发平台...........................................................................................111 4.2.1 ARM处理器简介...............................................................................................111 4.2.2 ARM体系结构简介...........................................................................................113 4.2.3 ARM9 体系结构.................................................................................................113 4.2.4 S3C2410处理器详解.........................................................................................116 4.3 嵌入式软件开发流程.................................................................................................... 121 4.3.1 嵌入式系统开发概述........................................................................................ 121 4.3.2 嵌入式软件开发概述........................................................................................ 122 4.4 实验内容——使用JTAG 烧写NAND Flash............................................................... 128 本章小结................................................................................................................................ 131 思考与练习............................................................................................................................. 132 第5章嵌入式Linux开发环境的搭建....................................................................................... 133 5.1 嵌入式开发环境的搭建................................................................................................ 133 5.1.1 嵌入式交叉编译环境的搭建............................................................................ 133 5.1.2 超级终端和Minicom配置及使用................................................................... 135 5.1.3 下载映像到开发板............................................................................................ 142 5.1.4 编译嵌入式Linux 内核.................................................................................... 145 5.1.5 Linux 内核目录结构......................................................................................... 149 5.1.6 制作文件系统.................................................................................................... 149 5.2 U-Boot移植................................................................................................................... 153 5.2.1 Bootloader 介绍................................................................................................. 153 5.2.2 U-Boot概述....................................................................................................... 155 5.2.3 U-Boot源码导读............................................................................................... 156 ║4 嵌入式应用程序开发详解 5.2.4 U-Boot移植主要步骤....................................................................................... 163 5.2.5 U-Boot常见命令............................................................................................... 164 5.3 实验内容——移植Linux 内核..................................................................................... 164 本章小结................................................................................................................................ 165 思考与练习............................................................................................................................. 165 第6 章文件 I/O 编程................................................................................................................ 166 6.1 Linux 系统调用及用户编程接口(API)................................................................... 166 6.1.1 系统调用............................................................................................................ 166 6.1.2 用户编程接口(API)..................................................................................... 167 6.1.3 系统命令............................................................................................................ 167 6.2 Linux 中文件及文件描述符概述.................................................................................. 168 6.3 不带缓存的文件I/O 操作............................................................................................. 168 6.3.1 open和close...................................................................................................... 168 6.3.2 read、write和lseek .......................................................................................... 170 6.3.3 fcntl .................................................................................................................... 173 6.3.4 select................................................................................................................... 178 6.4 嵌入式 Linux串口应用开发......................................................................................... 183 6.4.1 串口概述............................................................................................................ 183 6.4.2 串口设置详解.................................................................................................... 184 6.4.3 串口使用详解.................................................................................................... 191 6.5 标准 I/O 开发................................................................................................................. 194 6.5.1 打开和关闭文件................................................................................................ 194 6.5.2 文件读写............................................................................................................ 197 6.5.3 输入输出............................................................................................................ 198 6.6 实验内容........................................................................................................................ 201 6.6.1 文件读写及上锁................................................................................................ 201 6.6.2 多路复用式串口读写........................................................................................ 204 本章小结................................................................................................................................ 207 思考与练习............................................................................................................................. 207 第7 章进程控制开发................................................................................................................ 208 7.1 Linux 下进程概述........................................................................................................ 208 7.1.1 进程相关基本概念............................................................................................ 208 7.1.2 Linux 下的进程结构......................................................................................... 210 7.1.3 Linux 下进程的模式和类型............................................................................. 210 7.1.4 Linux 下的进程管理..........................................................................................211 7.2 Linux 进程控制编程.................................................................................................... 212 7.3 Linux 守护进程............................................................................................................ 224 第1 章目录 5║ 7.3.1 守护进程概述.................................................................................................... 224 7.3.2 编写守护进程.................................................................................................... 224 7.3.3 守护进程的出错处理........................................................................................ 229 7.4 实验内容....................................................................................................................... 232 7.4.1 编写多进程程序................................................................................................ 232 7.4.2 编写守护进程.................................................................................................... 235 本章小结............................................................................................................................... 238 思考与练习............................................................................................................................ 239 第8章进程间通信.................................................................................................................... 240 8.1 Linux 下进程间通信概述............................................................................................ 240 8.2 管道通信....................................................................................................................... 241 8.2.1 管道概述............................................................................................................ 241 8.2.2 管道创建与关闭................................................................................................ 242 8.2.3 管道读写............................................................................................................ 244 8.2.4 标准流管道........................................................................................................ 246 8.2.5 FIFO................................................................................................................... 249 8.3 信号通信....................................................................................................................... 253 8.3.1 信号概述............................................................................................................ 253 8.3.2 信号发送与捕捉................................................................................................ 255 8.3.3 信号的处理........................................................................................................ 258 8.4 共享内存....................................................................................................................... 264 8.4.1 共享内存概述.................................................................................................... 264 8.4.2 共享内存实现.................................................................................................... 265 8.5 消息队列....................................................................................................................... 267 8.5.1 消息队列概述.................................................................................................... 267 8.5.2 消息队列实现.................................................................................................... 268 8.6 实验内容....................................................................................................................... 272 8.6.1 管道通信实验.................................................................................................... 272 8.6.2 共享内存实验.................................................................................................... 275 本章小结............................................................................................................................... 277 思考与练习............................................................................................................................ 278 第9章多线程编程.................................................................................................................... 279 9.1 Linux 下线程概述........................................................................................................ 279 9.1.1 线程概述............................................................................................................ 279 9.1.2 线程分类............................................................................................................ 280 9.1.3 Linux 线程技术的发展..................................................................................... 280 9.2 Linux 线程实现............................................................................................................ 281 ║6 嵌入式应用程序开发详解 9.2.1 线程基本操作.................................................................................................... 281 9.2.2 线程访问控制.................................................................................................... 288 9.3 实验内容——“生产者消费者”实验....................................................................... 298 本章小结............................................................................................................................... 302 思考与练习............................................................................................................................ 303 第10 章嵌入式Linux 网络编程............................................................................................... 304 10.1 TCP/IP协议概述........................................................................................................ 304 10.1.1 OSI参考模型及TCP/IP参考模型................................................................. 304 10.1.2 TCP/IP协议族................................................................................................. 305 10.1.3 TCP和UDP .................................................................................................... 306 10.2 网络基础编程............................................................................................................. 308 10.2.1 socket概述....................................................................................................... 308 10.2.2 地址及顺序处理.............................................................................................. 309 10.2.3 socket基础编程............................................................................................... 314 10.3 网络高级编程............................................................................................................. 322 10.4 ping源码分析............................................................................................................. 326 10.4.1 ping简介.......................................................................................................... 326 10.4.2 ping源码分析.................................................................................................. 327 10.5 实验内容——NTP协议实现.................................................................................... 345 本章小结............................................................................................................................... 352 思考与练习............................................................................................................................ 352 第11 章嵌入式Linux设备驱动开发.......................................................................................... 353 11.1 设备驱动概述............................................................................................................. 353 11.1.1 设备驱动简介及驱动模块.............................................................................. 353 11.1.2 设备文件分类.................................................................................................. 354 11.1.3 设备号.............................................................................................................. 355 11.1.4 驱动层次结构.................................................................................................. 355 11.1.5 设备驱动程序与外界的接口.......................................................................... 355 11.1.6 设备驱动程序的特点...................................................................................... 356 11.2 字符设备驱动编写..................................................................................................... 356 11.3 LCD 驱动编写实例.................................................................................................... 363 11.3.1 LCD 工作原理................................................................................................. 363 11.3.2 LCD 驱动实例................................................................................................. 365 11.4 块设备驱动编写......................................................................................................... 374 11.4.1 块设备驱动程序描述符.................................................................................. 374 11.4.2 块设备驱动编写流程...................................................................................... 375 11.5 中断编程..................................................................................................................... 381 第1 章目录 7║ 11.6 键盘驱动实现............................................................................................................. 382 11.6.1 键盘工作原理.................................................................................................. 382 11.6.2 键盘驱动综述.................................................................................................. 383 11.6.3 键盘驱动流程.................................................................................................. 384 11.7 实验内容——skull驱动............................................................................................ 394 本章小结............................................................................................................................... 398 思考与练习............................................................................................................................ 399 第12 章Qt图形编程................................................................................................................ 400 12.1 嵌入式GUI简介........................................................................................................ 400 12.1.1 Qt/Embedded.................................................................................................... 401 12.1.2 MiniGUI........................................................................................................... 401 12.1.3 Microwindows、Tiny X 等............................................................................. 402 12.2 Qt/Embedded开发入门.............................................................................................. 402 12.2.1 Qt/Embedded介绍........................................................................................... 402 12.2.2 Qt/Embedded信号和插槽机制....................................................................... 405 12.2.3 搭建Qt/Embedded开发环境.......................................................................... 409 12.2.4 Qt/Embedded窗口部件................................................................................... 410 12.2.5 Qt/Embedded图形界面编程........................................................................... 414 12.2.6 Qt/Embedded对话框设计............................................................................... 416 12.3 实验内容——使用Qt 编写“Hello,World”程序................................................ 420 本章小结............................................................................................................................... ........................................................ 3 1.1.4 如何学习Linux ..................................................................................................... 4 1.2 Linux 安装........................................................................................................................ 5 1.2.1 基础概念................................................................................................................ 5 1.2.2 硬件需求................................................................................................................ 7 1.2.3 安装准备................................................................................................................ 7 1.2.4 安装过程................................................................................................................ 8 1.3 Linux 文件及文件系统...................................................................................................11 1.3.1 文件类型及文件属性...........................................................................................11 1.3.2 文件系统类型介绍.............................................................................................. 13 1.3.3 Linux 目录结构................................................................................................... 14 1.4 实验内容——安装Linux 操作系统............................................................................. 17 本章小结................................................................................................................................. 17 思考与练习.............................................................................................................................. 18 第2 章Linux 基础命令................................................................................................................ 19 2.1 Linux 常用操作命令...................................................................................................... 19 2.1.1 用户系统相关命令.............................................................................................. 20 2.1.2 文件目录相关命令.............................................................................................. 27 2.1.3 压缩打包相关命令.............................................................................................. 38 2.1.4 比较合并文件相关命令...................................................................................... 40 2.1.5 网络相关命令...................................................................................................... 45 A-PDF MERGER DEMO ║2 嵌入式应用程序开发详解 2.2 Linux 启动过程详解...................................................................................................... 50 2.2.1 概述...................................................................................................................... 51 2.2.2 内核引导阶段...................................................................................................... 51 2.2.3 init阶段............................................................................................................... 52 2.3 Linux 系统服务.............................................................................................................. 54 2.3.1 独立运行的服务.................................................................................................. 55 2.3.2 xinetd设定的服务............................................................................................... 56 2.3.3 设定服务命令常用方法...................................................................................... 56 2.4 实验内容......................................................................................................................... 57 2.4.1 在Linux 下解压常见软件.................................................................................. 57 2.4.2 定制 Linux系统服务.......................................................................................... 58 本章小结................................................................................................................................. 60 思考与练习.............................................................................................................................. 60 第3 章Linux 下的C 编程基础................................................................................................... 61 3.1 Linux 下C语言编程概述.............................................................................................. 61 3.1.1 C语言简单回顾.................................................................................................. 61 3.1.2 Linux 下C语言编程环境概述........................................................................... 62 3.2 进入 Vi............................................................................................................................ 63 3.2.1 Vi的模式............................................................................................................. 63 3.2.2 Vi的基本流程..................................................................................................... 63 3.2.3 Vi 的各模式功能键............................................................................................. 65 3.3 初探 Emacs ..................................................................................................................... 66 3.3.1 Emacs的基本操作.............................................................................................. 67 3.3.2 Emacs的编译概述.............................................................................................. 70 3.4 Gcc编译器..................................................................................................................... 71 3.4.1 Gcc编译流程解析.............................................................................................. 71 3.4.2 Gcc编译选项分析.............................................................................................. 74 3.5 Gdb调试器..................................................................................................................... 77 3.5.1 Gdb 使用流程...................................................................................................... 78 3.5.2 Gdb基本命令...................................................................................................... 81 3.6 Make工程管理器........................................................................................................... 86 3.6.1 Makefile基本结构.............................................................................................. 86 3.6.2 Makefile变量...................................................................................................... 87 3.6.3 Makefile规则...................................................................................................... 90 3.6.4 Make管理器的使用............................................................................................ 91 3.7 使用autotools ................................................................................................................. 92 3.7.1 autotools使用流程.............................................................................................. 92 3.7.2 使用autotools所生成的Makefile...................................................................... 96 第1 章目录 3║ 3.8 实验内容......................................................................................................................... 98 3.8.1 Vi 使用练习......................................................................................................... 98 3.8.2 用Gdb调试有问题的程序................................................................................. 99 3.8.3 编写包含多文件的Makefile ............................................................................ 101 3.8.4 使用autotools生成包含多文件的Makefile.................................................... 103 本章小结............................................................................................................................... 105 思考与练习............................................................................................................................ 105 第4章嵌入式系统基础............................................................................................................ 106 4.1 嵌入式系统概述............................................................................................................ 106 4.1.1 嵌入式系统简介................................................................................................ 106 4.1.2 嵌入式系统发展历史........................................................................................ 107 4.1.3 嵌入式系统的特点............................................................................................ 108 4.1.4 嵌入式系统的体系结构.................................................................................... 108 4.1.5 几种主流嵌入式操作系统分析........................................................................ 109 4.2 ARM处理器硬件开发平台...........................................................................................111 4.2.1 ARM处理器简介...............................................................................................111 4.2.2 ARM体系结构简介...........................................................................................113 4.2.3 ARM9 体系结构.................................................................................................113 4.2.4 S3C2410处理器详解.........................................................................................116 4.3 嵌入式软件开发流程.................................................................................................... 121 4.3.1 嵌入式系统开发概述........................................................................................ 121 4.3.2 嵌入式软件开发概述........................................................................................ 122 4.4 实验内容——使用JTAG 烧写NAND Flash............................................................... 128 本章小结................................................................................................................................ 131 思考与练习............................................................................................................................. 132 第5章嵌入式Linux开发环境的搭建....................................................................................... 133 5.1 嵌入式开发环境的搭建................................................................................................ 133 5.1.1 嵌入式交叉编译环境的搭建............................................................................ 133 5.1.2 超级终端和Minicom配置及使用................................................................... 135 5.1.3 下载映像到开发板............................................................................................ 142 5.1.4 编译嵌入式Linux 内核.................................................................................... 145 5.1.5 Linux 内核目录结构......................................................................................... 149 5.1.6 制作文件系统.................................................................................................... 149 5.2 U-Boot移植................................................................................................................... 153 5.2.1 Bootloader 介绍................................................................................................. 153 5.2.2 U-Boot概述....................................................................................................... 155 5.2.3 U-Boot源码导读............................................................................................... 156 ║4 嵌入式应用程序开发详解 5.2.4 U-Boot移植主要步骤....................................................................................... 163 5.2.5 U-Boot常见命令............................................................................................... 164 5.3 实验内容——移植Linux 内核..................................................................................... 164 本章小结................................................................................................................................ 165 思考与练习............................................................................................................................. 165 第6 章文件 I/O 编程................................................................................................................ 166 6.1 Linux 系统调用及用户编程接口(API)................................................................... 166 6.1.1 系统调用............................................................................................................ 166 6.1.2 用户编程接口(API)..................................................................................... 167 6.1.3 系统命令............................................................................................................ 167 6.2 Linux 中文件及文件描述符概述.................................................................................. 168 6.3 不带缓存的文件I/O 操作............................................................................................. 168 6.3.1 open和close...................................................................................................... 168 6.3.2 read、write和lseek .......................................................................................... 170 6.3.3 fcntl .................................................................................................................... 173 6.3.4 select................................................................................................................... 178 6.4 嵌入式 Linux串口应用开发......................................................................................... 183 6.4.1 串口概述............................................................................................................ 183 6.4.2 串口设置详解.................................................................................................... 184 6.4.3 串口使用详解.................................................................................................... 191 6.5 标准 I/O 开发................................................................................................................. 194 6.5.1 打开和关闭文件................................................................................................ 194 6.5.2 文件读写............................................................................................................ 197 6.5.3 输入输出............................................................................................................ 198 6.6 实验内容........................................................................................................................ 201 6.6.1 文件读写及上锁................................................................................................ 201 6.6.2 多路复用式串口读写........................................................................................ 204 本章小结................................................................................................................................ 207 思考与练习............................................................................................................................. 207 第7 章进程控制开发................................................................................................................ 208 7.1 Linux 下进程概述........................................................................................................ 208 7.1.1 进程相关基本概念............................................................................................ 208 7.1.2 Linux 下的进程结构......................................................................................... 210 7.1.3 Linux 下进程的模式和类型............................................................................. 210 7.1.4 Linux 下的进程管理..........................................................................................211 7.2 Linux 进程控制编程.................................................................................................... 212 7.3 Linux 守护进程............................................................................................................ 224 第1 章目录 5║ 7.3.1 守护进程概述.................................................................................................... 224 7.3.2 编写守护进程.................................................................................................... 224 7.3.3 守护进程的出错处理........................................................................................ 229 7.4 实验内容....................................................................................................................... 232 7.4.1 编写多进程程序................................................................................................ 232 7.4.2 编写守护进程.................................................................................................... 235 本章小结............................................................................................................................... 238 思考与练习............................................................................................................................ 239 第8章进程间通信.................................................................................................................... 240 8.1 Linux 下进程间通信概述............................................................................................ 240 8.2 管道通信....................................................................................................................... 241 8.2.1 管道概述............................................................................................................ 241 8.2.2 管道创建与关闭................................................................................................ 242 8.2.3 管道读写............................................................................................................ 244 8.2.4 标准流管道........................................................................................................ 246 8.2.5 FIFO................................................................................................................... 249 8.3 信号通信....................................................................................................................... 253 8.3.1 信号概述............................................................................................................ 253 8.3.2 信号发送与捕捉................................................................................................ 255 8.3.3 信号的处理........................................................................................................ 258 8.4 共享内存....................................................................................................................... 264 8.4.1 共享内存概述.................................................................................................... 264 8.4.2 共享内存实现.................................................................................................... 265 8.5 消息队列....................................................................................................................... 267 8.5.1 消息队列概述.................................................................................................... 267 8.5.2 消息队列实现.................................................................................................... 268 8.6 实验内容....................................................................................................................... 272 8.6.1 管道通信实验.................................................................................................... 272 8.6.2 共享内存实验.................................................................................................... 275 本章小结............................................................................................................................... 277 思考与练习............................................................................................................................ 278 第9章多线程编程.................................................................................................................... 279 9.1 Linux 下线程概述........................................................................................................ 279 9.1.1 线程概述............................................................................................................ 279 9.1.2 线程分类............................................................................................................ 280 9.1.3 Linux 线程技术的发展..................................................................................... 280 9.2 Linux 线程实现............................................................................................................ 281 ║6 嵌入式应用程序开发详解 9.2.1 线程基本操作.................................................................................................... 281 9.2.2 线程访问控制.................................................................................................... 288 9.3 实验内容——“生产者消费者”实验....................................................................... 298 本章小结............................................................................................................................... 302 思考与练习............................................................................................................................ 303 第10 章嵌入式Linux 网络编程............................................................................................... 304 10.1 TCP/IP协议概述........................................................................................................ 304 10.1.1 OSI参考模型及TCP/IP参考模型................................................................. 304 10.1.2 TCP/IP协议族................................................................................................. 305 10.1.3 TCP和UDP .................................................................................................... 306 10.2 网络基础编程............................................................................................................. 308 10.2.1 socket概述....................................................................................................... 308 10.2.2 地址及顺序处理.............................................................................................. 309 10.2.3 socket基础编程............................................................................................... 314 10.3 网络高级编程............................................................................................................. 322 10.4 ping源码分析............................................................................................................. 326 10.4.1 ping简介.......................................................................................................... 326 10.4.2 ping源码分析.................................................................................................. 327 10.5 实验内容——NTP协议实现.................................................................................... 345 本章小结............................................................................................................................... 352 思考与练习............................................................................................................................ 352 第11 章嵌入式Linux设备驱动开发.......................................................................................... 353 11.1 设备驱动概述............................................................................................................. 353 11.1.1 设备驱动简介及驱动模块.............................................................................. 353 11.1.2 设备文件分类.................................................................................................. 354 11.1.3 设备号.............................................................................................................. 355 11.1.4 驱动层次结构.................................................................................................. 355 11.1.5 设备驱动程序与外界的接口.......................................................................... 355 11.1.6 设备驱动程序的特点...................................................................................... 356 11.2 字符设备驱动编写..................................................................................................... 356 11.3 LCD 驱动编写实例.................................................................................................... 363 11.3.1 LCD 工作原理................................................................................................. 363 11.3.2 LCD 驱动实例................................................................................................. 365 11.4 块设备驱动编写......................................................................................................... 374 11.4.1 块设备驱动程序描述符.................................................................................. 374 11.4.2 块设备驱动编写流程...................................................................................... 375 11.5 中断编程..................................................................................................................... 381 第1 章目录 7║ 11.6 键盘驱动实现............................................................................................................. 382 11.6.1 键盘工作原理.................................................................................................. 382 11.6.2 键盘驱动综述.................................................................................................. 383 11.6.3 键盘驱动流程.................................................................................................. 384 11.7 实验内容——skull驱动............................................................................................ 394 本章小结............................................................................................................................... 398 思考与练习............................................................................................................................ 399 第12 章Qt图形编程................................................................................................................ 400 12.1 嵌入式GUI简介........................................................................................................ 400 12.1.1 Qt/Embedded.................................................................................................... 401 12.1.2 MiniGUI........................................................................................................... 401 12.1.3 Microwindows、Tiny X 等............................................................................. 402 12.2 Qt/Embedded开发入门.............................................................................................. 402 12.2.1 Qt/Embedded介绍........................................................................................... 402 12.2.2 Qt/Embedded信号和插槽机制....................................................................... 405 12.2.3 搭建Qt/Embedded开发环境.......................................................................... 409 12.2.4 Qt/Embedded窗口部件................................................................................... 410 12.2.5 Qt/Embedded图形界面编程........................................................................... 414 12.2.6 Qt/Embedded对话框设计............................................................................... 416 12.3 实验内容——使用Qt 编写“Hello,World”程序................................................ 420 本章小结...............................................................................................................................