嵌入式软件开发及C语言实现 MiniGUI剖析PDF电子书下载
- 电子书积分:13 积分如何计算积分?
- 作 者:魏永明著
- 出 版 社:北京:电子工业出版社
- 出版年份:2008
- ISBN:7121063093
- 页数:400 页
第一篇 使用嵌入式开发工具 2
第1章 综述 2
1.1 常用嵌入式操作系统 2
1.1.1 实时嵌入式操作系统的一般结构 2
1.1.2 常用(实时)嵌入式操作系统 2
1.2 嵌入式Linux/uClinux 4
1.3 eCos操作系统 5
1.4 MiniGUI简介 6
1.4.1 嵌入式产品开发中常用的图形解决方案 6
1.4.2 MiniGUI的起源和发展 7
1.4.3 基于MiniGUI的嵌入式系统软件结构 8
1.4.4 MiniGUI的运行模式 8
1.5 嵌入式软件的开发过程及相关概念 10
1.5.1 一般开发过程 10
1.5.2 交叉编译 10
1.5.3 内核移植 12
1.5.4 驱动程序开发 12
1.5.5 应用软件开发及调试 12
1.6 小结 13
第2章 运行嵌入式操作系统 14
2.1 嵌入式Linux的体系结构 14
2.1.1 Linux系统的构成 14
2.1.2 内核 15
2.1.3 根文件系统 17
2.1.4 函数库和应用程序 18
2.2 嵌入式Linux的开发流程、方法和开发环境 18
2.2.1 基本的开发流程和方法 18
2.2.2 建立开发环境 19
2.2.3 GNU交叉开发工具链 21
2.2.4 终端模拟程序 22
2.3 系统引导 23
2.3.1 嵌入式Linux的启动过程 23
2.3.2 引导装载器 24
2.3.3 系统引导方式 25
2.4 内核的选择、编译与安装 25
2.4.1 选择内核 25
2.4.2 配置和编译内核 26
2.5 准备根文件系统 28
2.5.1 根文件系统的基本结构 29
2.5.2 函数库 29
2.5.3 内核映像和内核模块 30
2.5.4 设备文件 31
2.5.5 安装系统程序 32
2.5.6 系统初始化 32
2.6 选择和安装文件系统 35
2.6.1 存储设备和文件系统 35
2.6.2 各种类型文件系统的特性 36
2.6.3 使用NFS 37
2.6.4 CRAMFS 38
2.6.5 JFFS2 39
2.6.6 ROMFS 39
2.6.7 使用RAM disk 40
2.7 在SkyEye上运行ARM Linux 44
2.7.1 安装SkyEye 45
2.7.2 安装交叉编译工具链 46
2.7.3 配置、编译和运行内核 47
2.7.4 构建根文件系统 51
2.8 在Xcopilot上运行uClinux 59
2.8.1 安装Xcopilot 60
2.8.2 安装交叉编译工具链 60
2.8.3 配置、编译和运行uClinux 60
2.9 运行eCos的Linux Synthetic目标 64
2.9.1 获取并安装eCos及其开发工具 65
2.9.2 配置并编译eCos 65
2.9.3 编译eCos Linux Synthetic应用程序 68
2.10 小结 69
第3章 编译并运行嵌入式应用程序 71
3.1 交叉编译及相关工具 71
3.2 利用Makefile维护嵌入式应用工程 78
3.2.1 make和makefile的简单回顾 78
3.2.2 编写针对交叉编译的Makefile文件 80
3.2.3 将应用程序放到uClinux-dist中编译 83
3.3 利用Automake/Autoconf维护嵌入式软件工程 84
3.3.1 准备源代码树 85
3.3.2 准备configure.in文件 86
3.3.3 准备Makefile.am文件 87
3.3.4 生成configure文件及makefile文件 88
3.3.5 增强configure.in文件使之支持交叉编译 89
3.4 交叉编译开源软件 90
3.4.1 交叉编译zlib函数库 90
3.4.2 交叉编译JPEG函数库 91
3.5 Cygwin环境简介 92
3.6 小结 93
第4章 在PC上运行MiniGUI 94
4.1 了解MiniGUI 94
4.2 在Linux PC上运行MiniGUI 96
4.2.1 安装MiniGUI的Linux PC开发包 96
4.2.2 建立MiniGUI的PC运行环境 96
4.2.3 运行MiniGUI示例程序 101
4.3 维护MiniGUI应用软件工程 103
4.3.1 MiniGUI应用程序的链接选项 103
4.3.2 利用Automake/Autoconf脚本维护MiniGUI工程 103
4.4 快速掌握MiniGUI应用软件开发 108
4.4.1 “Hello,world”程序版本一:直接输出屏幕 108
4.4.2 “Hello,world”程序版本二:主窗口版本 110
4.4.3 “Hello,world”程序版本三:使用控件 114
4.4.4 “Hello,world”程序版本四:使用对话框模板 115
4.5 定制编译MiniGUI GPL版本 118
4.5.1 MiniGUI-GPL源代码包的组成 118
4.5.2 定制MiniGUI-GPL版本 118
4.6 小结 121
第5章 在嵌入式操作系统上运行MiniGUI 122
5.1 在嵌入式操作系统中访问设备 122
5.1.1 再论“Hello,world”程序 122
5.1.2 访问图形设备 122
5.1.3 访问输入设备 128
5.2 在SkyEye的EP7312模拟器上运行MiniGUI 131
5.2.1 确认内核配置 131
5.2.2 SkyEye EP7312模拟器的MiniGUI输入引擎 133
5.2.3 为SkyEye的EP7312模拟器交叉编译MiniGUI 134
5.2.4 在SkyEye的EP7312模拟器上运行MiniGUI示例程序 136
5.3 在Xcopilot模拟器上运行MiniGUI 140
5.3.1 确认内核及uClibc配置 140
5.3.2 Xcopilot模拟器的MiniGUI输入引擎 142
5.3.3 为Xcopilot模拟器交叉编译MiniGUI 143
5.3.4 在Xcopilot模拟器上运行MiniGUI示例程序 146
5.4 小结 149
第二篇 嵌入式应用软件开发的特殊性 152
第6章 嵌入式软件和桌面软件的主要不同 152
6.1 嵌入式软件的特殊性 152
6.2 嵌入式软件开发中的常见问题 153
6.2.1 程序入口 153
6.2.2 避免命名污染 155
6.2.3 编译器的兼容性问题 157
6.2.4 采用宏实现的标准库函数 159
6.2.5 在嵌入式系统中应慎用的标准C函数 161
6.3 嵌入式软件开发中的其他重要问题 162
6.4 小结 162
第7章 嵌入式处理器的特殊性 164
7.1 处理器和字节序 164
7.2 识别目标系统的字节序 166
7.3 编写字节序无关程序 168
7.4 字节对齐 171
7.5 小结 173
第8章 嵌入式系统中的内存管理 174
8.1 虚拟内存技术介绍 174
8.1.1 虚拟内存模型 174
8.1.2 内存映射和需求分页 176
8.13 写时复制 176
8.2 Linux中的虚拟内存技术 177
8.2.1 Linux的进程地址空间 177
8.2.2 Linux进程虚拟地址空间的使用 178
8.2.3 Linux提供的内存相关系统调用 180
8.2.4 基于虚拟内存技术的共享内存 180
8.3 嵌入式操作系统中的内存管理 181
8.3.1 堆的概念 181
8.3.2 嵌入式操作系统的堆 181
8.3.3 C程序的栈 184
8.4 uClibc提供的三种堆实现算法 185
8.4.1 基于“匿名映射”的堆实现算法 185
8.4.2 标准堆实现算法 186
8.4.3 其他堆实现算法 187
8.5 栈的管理 187
8.5.1 多任务环境下的栈 187
8.5.2 uClinux进程的栈 188
8.5.3 POSIX线程的栈 188
8.6 小结 189
第9章 浮点运算和定点运算 190
9.1 浮点支持的软件实现 190
9.1.1 浮点仿真器 191
9.1.2 浮点运算的纯软件实现 192
9.1.3 浮点数的类型及存储格式 192
9.1.4 浮点数的字节序 194
9.2 将浮点运算转化成整数运算 194
9.2.1 触摸屏校正 195
9.2.2 计算机图形学中的插补算法 202
9.3 定点数 207
9.3.1 定点数的概念 207
9.3.2 MiniGUI中的定点数实现 207
9.4 小结 210
第10章 外部数据的处理 211
10.1 嵌入式操作系统中的文件系统 211
10.1.1 Linux的文件系统组织方式 211
10.1.2 其他嵌入式操作系统中的文件系统组织 215
10.1.3 嵌入式系统中常用的文件系统 215
10.2 嵌入式操作系统提供的文件系统及文件操作 221
10.2.1 ISO C定义的标准I/O接口 221
10.2.2 POSIX标准定义的文件系统及文件操作 225
10.2.3 uC/OS-II提供的文件系统及文件操作 228
10.3 外部文件的特殊处理方法 229
10.3.1 Linux中的内存映射 229
10.3.2 将文件数据内嵌到程序中 231
10.3.3 压缩数据 231
10.4 小结 232
第11章 在C程序中内嵌汇编 233
11.1 内嵌汇编的概念 233
11.2 GCC的内嵌汇编语法 233
11.2.1 内嵌汇编的基本规则 233
11.2.2 内嵌汇编语法 234
11.2.3 操作数约束 236
11.2.4 约束的修饰词 237
11.3 常见内嵌汇编例程 237
11.3.1 strcpy的内嵌汇编版本 237
11.3.2 memcpy的特殊版本 238
11.3.3 memset的两个特殊版本 238
11.3.4 反向复制 239
11.4 小结 240
第三篇 MiniGUI剖析 242
第12章 MiniGUI的体系结构 242
12.1 MiniGUI体系概览 242
12.2 MiniGUI-Threads运行模式 244
12.2.1 线程的概念和POSIX线程接口 244
12.2.2 基于POSIX线程的微客户-服务器结构 250
12.2.3 多线程通信的关键数据结构——消息队列 251
12.3 MiniGUI-Processes运行模式 254
12.3.1 MiniGUI-Processes的多进程模型 255
12.3.2 UNIX域套接字简介 256
12.3.3 简单请求/应答处理 257
12.3.4 UNIX域套接字封装 259
12.4 MiniGUI窗口管理 262
12.4.1 窗口Z序 262
12.4.2 窗口剪切算法 262
12.5 小结 267
第13章 灵活运用设计模式 268
13.1 什么是设计模式 268
13.2 有效隔离数据和代码 270
13.2.1 对话框模板 270
13.2.2 界面封装接口 276
13.2.3 组合框的整数输出格式 285
13.3 回调函数 285
13.3.1 窗口过程函数 285
13.3.2 通知回调函数 287
13.3.3 曲线生成器 288
13.4 使用句柄隐藏内部实现 292
13.5 面向对象技术 292
13.6 小结 292
第14章 面向对象技术的运用 293
14.1 控件和控件类 293
14.1.1 控件和控件类的概念 293
14.1.2 MiniGUI控件类的实现 296
14.1.3 MiniGUI中控件数据结构 297
14.2 逻辑字体及对多种字体和字符集的支持 299
14.2.1 逻辑字体、设备字体及字符集之间的关系 300
14.2.2 MiniGUI中的字符集支持 302
14.2.3 字符集的实现举例 305
14.2.4 MiniGUI中的字体支持 309
14.2.5 MiniGUI的设备字体支持 310
14.2.6 设备字体的实现举例 313
14.3 其他使用面向对象技术的模块 317
14.4 小结 317
第15章 可移植性及其实现 318
15.1 图形抽象层和输入抽象层 318
15.2 旧的图形抽象层 319
15.3 Native图形引擎的实现 325
15.3.1 Native引擎的子驱动程序 328
15.3.2 Native引擎的fbcon子引擎 330
15.3.3 Native引擎的qvfb子引擎 331
15.4 新的图形抽象层(NEWGAL) 333
15.5 输入抽象层 335
15.6 典型的输入引擎实现 340
15.6.1 Linux控制台输入引擎 340
15.6.2 针对iPAQ的输入引擎实现 344
15.7 编写可移植代码的其他考虑 349
15.7.1 MiniGUI的字节序相关读写函数 349
15.7.2 利用条件编译编写可移植代码 350
15.8 小结 352
第16章 降低程序的资源占用 353
16.1 两种位图装载的实现方法 353
16.1.1 位图相关的基本概念 353
16.1.2 设备相关位图和设备无关位图 355
16.1.3 MiniGUI-GPL版本位图装载接口的实现 359
16.1.4 MiniGUI V2.0.4版本位图装载接口的实现 365
16.2 巧用mmap 368
16.3 小结 372
第17章 抽象数据源接口 373
17.1 MiniGUI的抽象数据源接口 373
17.2 利用抽象数据源实现灵活的数据处理接口 376
17.3 MiniGUI的抽象数据源实现 382
17.4 自定义抽象数据源 384
17.5 小结 386
附录A 安装开发用Linux PC 387
A.1 安装Ubuntu Linux 7.04 387
A.2 安装常用软件包 388
附录B MiniGUI-GPL版本的配置选项 390
B.1 MiniGUI-GPL的编译配置选项 390
B.1.1 通用配置选项 391
B.1.2 MiniGUI-GPL配置选项 392
B.1.3 支持中文显示的最小MiniGUI-GPL函数库配置选项 394
B.2 MiniGUI-GPL的运行时配置文件——MiniGUI.cfg 395
B.2.1 system段 396
B.2.2 fbcon和qvfb段 396
B.2.3 systemfont段 396
B.2.4 rawbitmapfonts和varbitmapfonts段 397
B.2.5 mouse和event段 398
B.2.6 cursorinfo、iconinfo和bitmapinfo段 398
B.2.7 bgpicture段 398
B.2.8 mainwinmetrics和windowelementcolors段 398
B.2.9 只支持英文显示的最小配置文件 398
- 《英汉翻译理论的多维阐释及应用剖析》常瑞娟著 2019
- 《区块链DAPP开发入门、代码实现、场景应用》李万胜著 2019
- 《软件工程》齐治昌,谭庆平,宁洪编著 2019
- 《高含硫气藏开发腐蚀控制技术与实践》唐永帆,张强 2018
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《主题公园开发与管理》梁增贤编著 2019
- 《中南高校档案文化资源开发综合研究》涂上飙 2019
- 《普通高等职业教育计算机系列规划教材 Android Studio移动应用开发基础》(中国)吴绍根 2019
- 《高中压配电网规划 实用模型、方法、软件和应用 上》王主丁著 2020
- 《Cocos Creator微信小游戏开发实战》王绍明编著 2020
- 《中风偏瘫 脑萎缩 痴呆 最新治疗原则与方法》孙作东著 2004
- 《水面舰艇编队作战运筹分析》谭安胜著 2009
- 《王蒙文集 新版 35 评点《红楼梦》 上》王蒙著 2020
- 《TED说话的力量 世界优秀演讲者的口才秘诀》(坦桑)阿卡什·P.卡里亚著 2019
- 《燕堂夜话》蒋忠和著 2019
- 《经久》静水边著 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《微表情密码》(波)卡西亚·韦佐夫斯基,(波)帕特里克·韦佐夫斯基著 2019
- 《看书琐记与作文秘诀》鲁迅著 2019
- 《酒国》莫言著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017