第1章Linux操作系统基础知识 1
1.1引言 1
1.2 Linux文件和文件系统 2
1.2.1 Linux文件概念 2
1.2.2 Linux文件系统结构 2
1.2.3简单文件操作 3
1.2.4简单目录操作 5
1.3基于用户权限的文件保护 5
1.3.1用户分类 6
1.3.2文件操作/访问权限的分类 6
1.3.3改变文件或目录的访问权限的命令 8
1.4文本编辑工具Vi 11
1.4.1 Vi的三种工作模式 11
1.4.2 Vi常用操作命令 13
第2章 基于Linux操作系统的C语言程序开发工具 14
2.1引言 14
2.2 GCC编译器 14
2.2.1 GCC的基本用法 15
2.2.2交叉编译 15
2.3工程管理工具make 17
2.3.1 Makefile文件介绍 17
2.3.2 make命令的使用 17
2.4 GDB调试 18
2.4.1 GDB的使用 18
2.4.2 GDB中运行程序 19
2.4.3暂停/恢复程序运行 20
2.5 Linux系统中的C语言库函数 25
2.5.1标准1/O函数 25
2.5.2格式化输入、输出函数 26
2.5.3字符串函数 28
第3章 视频、音频编/解码标准 30
3.1引言 30
3.2视频压缩编码的基本原理 30
3.2.1视频压缩原理 30
3.2.2视频压缩算法的研究进展 31
3.2.3现有的图像压缩标准概述 32
3.3 JPEG 2000压缩标准 34
3.3.1 JPEG 2000核心编码系统结构 35
3.3.2小波变换在JPEG 2000标准中的应用 37
3.3.3优化截断块编码 44
3.3.4 JPEG 2000标准算法压缩性能分析 51
3.4 H.264压缩标准 53
3.4.1 H.264标准的结构框架 54
3.4.2 H.264标准的档次 55
3.4.3 H.264标准的编/解码器结构 56
3.4.4 H.264标准编/解码新技术 57
3.4.5 H.264标准的主要技术特点 62
3.4.6 H.264标准的网络与容错技术 63
3.4.7 H.264标准的应用前景 64
3.5音频编码算法和标准 65
3.5.1音频信号冗余度 65
3.5.2音频压缩的关键技术 66
3.5.3音频编码标准概述 67
第4章 达芬奇技术软/硬件原理及开发流程 69
4.1引言 69
4.2达芬奇技术概述 69
4.2.1达芬奇处理器 70
4.2.2达芬奇开发工具 71
4.2.3达芬奇软件 72
4.2.4达芬奇第三方系统专业技术支持 72
4.3达芬奇处理器TMS320DM365芯片 72
4.3.1 TMS320DM365概述 72
4.3.2 TMS320DM365系统级参数配置 74
4.3.3 ARM子系统 79
4.3.4 DSP协处理器 80
4.3.5视频处理前端 82
4.3.6视频处理后端 88
4.3.7异步外部存储器接口 94
4.3.8 IIC总线 99
4.4达芬奇处理器软件 105
4.4.1达芬奇软件算法遵循规则——xDAIS和xDM 105
4.4.2达芬奇软件架构和算法开发步骤 107
4.4.3编/解码引擎和服务器 109
4.4.4 CMEM和DSPLINK 117
4.5基于达芬奇平台的应用程序的启动过程和开发流程 119
4.5.1达芬奇芯片中各种程序的启动过程 119
4.5.2达芬奇芯片开发流程 120
第5章 构建达芬奇技术开发的Linux系统环境 122
5.1引言 122
5.2 Linux操作系统的安装及配置 122
5.2.1 Fedora 10的安装 122
5.2.2根用户登录方法 123
5.2.3分辨率的修改 124
5.2.4系统时间的修改 124
5.3服务器配置 125
5.3.1 TFTP服务器的安装和配置 125
5.3.2 DHCP服务器的安装和配置 128
5.3.3 NFS服务器的安装 129
5.3.4其他服务的安装 130
5.4 minicom的安装及使用 130
5.4.1 minicom的设置和使用 130
5.4.2故障现象解决方法 132
5.5达芬奇开发软件的安装 133
5.5.1目标Linux软件的安装 133
5.5.2 DVSDK的安装 133
5.5.3安装A/V demo文件 140
5.5.4网络文件系统的设置 141
5.5.5交叉编译环境的测试 143
第6章BOOTLOAD及其在达芬奇芯片中的应用 145
6.1引言 145
6.2 BOOTLOAD概述 145
6.2.1 BOOTLOAD的作用和启动模式 145
6.2.2 BOOTLOAD的分类 146
6.2.3 BOOTLOAD的启动过程 146
6.3 U-BOOT介绍 148
6.4 U-BOOT的常用命令和变量 149
6.4.1 U-BOOT的常用命令 149
6.4.2 U-BOOT的常用变量 149
6.5 U-BOOT在达芬奇芯片中的应用 151
6.5.1更新或升级U-BOOT 151
6.5.2采用仿真器和CCStudio烧写UBL和U-BOOT 152
6.6 U-BOOT的编译与烧写 153
6.6.1交叉编译器的安装与配置 153
6.6.2 U-BOOT的编译 154
6.6.3 U-BOOT的烧写 154
第7章 达芬奇技术的嵌入式Linux内核 160
7.1引言 160
7.2嵌入式系统内核概述 160
7.2.1 UNIX简介 160
7.2.2 Linux简介 161
7.2.3操作系统和内核简介 161
7.2.4 Linux内核版本 162
7.2.5 Linux发行版 163
7.2.6嵌入式Linux的发行版 164
7.3嵌入式Linux内核组成 165
7.3.1信号 165
7.3.2系统调用 166
7.3.3进程和进程调度 167
7.3.4内存管理 169
7.3.5虚拟文件系统 170
7.3.6进程通信 172
7.3.7设备驱动 172
7.4内核编译及移植 174
7.4.1内核源码结构 174
7.4.2 Makefile在内核编译时的作用 175
7.4.3 Kconfig的作用 175
7.4.4 Linux内核配置选项 176
7.4.5 Linux内核编译的过程 178
7.4.6 Linux内核的编译 179
第8章 达芬奇芯片的文件系统 184
8.1引言 184
8.2 Linux文件系统的概念 184
8.3 Linux的文件系统 185
8.3.1 Ext2文件系统 185
8.3.2 Ext3文件系统 186
8.3.3 Ext4文件系统 186
8.3.4 JFFS2文件系统 187
8.3.5 YAFFS文件系统 187
8.4移植Busybox 187
8.5构建根文件系统 192
8.5.1建立根文件系统目录 192
8.5.2构建etc目录下的配置文件 193
8.6制作根文件系统映像文件 195
8.6.1制作YAFFS映像文件 195
8.6.2制作JFFS2映像文件 196
第9章 嵌入式Linux下的驱动程序设计 197
9.1引言 197
9.2设备驱动程序的基本知识 197
9.2.1嵌入式Linux设备 197
9.2.2用户空间和内核空间 198
9.2.3 1/O端口操作 199
9.3字符设备驱动程序 200
9.3.1数据结构 200
9.3.2 dchar字符设备的设计 206
9.3.3设备注册、打开和释放 209
9.3.4设备的读和写 212
9.4块设备驱动 215
9.4.1注册 215
9.4.2块设备操作 218
9.4.3请求处理 220
第10章 基于H.264的图像传输系统设计与实现 222
10.1引言 222
10.2图像传输系统设计 222
10.3 H.264图像压缩板硬件方案设计 223
10.3.1压缩端硬件方案设计 223
10.3.2电源管理 223
10.3.3时钟管理 228
10.3.4模数转换模块 228
10.3.5存储器模块 229
10.3.6调试接口部分 231
10.4发送部分基带板设计 233
10.4.1发射机信道编码芯片 233
10.4.2扩频和调制 234
10.5 发射机射频前端 235
10.6接收机射频前端 235
10.7接收机基带处理 235
10.7.1解扩解调 235
10.7.2信道解码 238
10.8图像解压缩方案设计 239
第11章H.264压缩解压缩软件方案设计与实现 240
11.1引言 240
11.2 TMS320DM365的H.264编/解码Buffer机制和参数设置 240
11.2.1 H.264编/解码Buffer机制 240
11.2.2 H.264编/解码参数含义和设置 242
11.3 H.264压缩程序设计与实现 244
11.3.1主线程 245
11.3.2控制线程 246
11.3.3视频线程 247
11.4 EMIF驱动程序设计与实现 250
11.5 FPGA压缩端程序设计与实现 251
11.5.1锁相环altp110子模块 252
11.5.2压缩feq_division子模块 252
11.5.3 image_process子模块 252
11.6 FPGA解压缩端程序设计与实现 253
11.6.1锁相环altp110子模块 253
11.6.2解压缩feq_division子模块 253
11.6.3 write to EMIF子模块 253
11.7解压缩读驱动程序设计与实现 254
11.8解压缩软件方案设计 256
11.8.1主线程 257
11.8.2数据接收线程 259
11.8.3视频解码线程 259
11.8.4视频显示线程 261
11.8.5解压缩线程的交互 262
11.8.6控制线程 263
11.9自启动流程设置 264
附录 A FPGA程序 266
A-1压缩feq_division子模块 266
A-2 image_process子模块 268
A-3解压缩feq_division子模块 272
A-4 write to EMIF子模块 274
附录B EMIF驱动程序 284
参考文献 294