图书目录

目    录

第1章  软件开发工具 1

1.1  软件开发工具概况 2

1.2  软件开发工具介绍 2

第2章  通用目标文件格式介绍 4

2.1  段 4

2.2  汇编器如何处理段 5

2.2.1  未初始化段 6

2.2.2  已初始化段 6

2.2.3  已命名段 7

2.2.4  子段 8

2.2.5  段程序计数器 8

2.2.6  使用段伪指令实例 8

2.3  链接器如何处理段 10

2.3.1  默认内存分配 11

2.3.2  在存储器映像中存放段 12

2.4  重定位 12

运行中的重定位 13

2.5  装载程序 14

2.6  COFF文件中的符号 14

2.6.1  外部符号 14

2.6.2  符号表 15

第3章  汇编器 16

3.1  汇编器功能 16

3.2  在软件开发过程中汇编器的作用 17

3.3  运行汇编器 17

3.4  为汇编器输入的替换目录命名 19

3.4.1  使用–i汇编器选项 20

3.4.2  使用C2000_A_DIR 或 A_DIR环境变量 20

3.5  源程序语句格式 20

3.5.1  标号域 21

3.5.2  助记符域 22

3.5.3  操作数域 22

3.5.4  注释域 22

3.6  常量 22

3.6.1  二进制整数 23

3.6.2  八进制整数 23

3.6.3  十进制整数 23

3.6.4  十六进制整数 24

3.6.5  字符常量 24

3.6.6  汇编编译过程使用的(Assembly-Time)常量 24

3.6.7  浮点型常量 25

3.7  字符串 25

3.8  符号 25

3.8.1  标号 26

3.8.2  局部标号 26

3.8.3  符号常量 28

3.8.4  定义符号常量(–d选项) 28

3.8.5  预定义符号常量 29

3.8.6  置换符号 30

3.9  表达式 31

3.9.1  运算符 31

3.9.2  表达式的上溢和下溢 32

3.9.3  定义明确的表达式 32

3.9.4  条件表达式 32

3.9.5  合法的表达式 33

3.10  内嵌函数 34

3.11  源程序列表 35

3.12  交叉引用列表 36

3.13  灵巧的编码 37

3.14  汇编变量的C类型符号调试 38

3.15  TMS320C28x 汇编器的模式 40

3.15.1  C27x目标模式 40

3.15.2  C28x目标模式 41

3.15.3  C28x目标——兼容C27x的语法模式 41

3.15.4  C28x目标——兼容C2xlp的语法模式 41

第4章  汇编伪指令 44

4.1  伪指令简介 44

4.2  与TMS320C1x/C2x/C2xx/C5x汇编伪指令的兼容性 47

4.3  定义段的伪指令 48

4.4  常数初始化伪指令 50

4.5  调准段程序计数器伪指令 52

4.6  输出列表格式伪指令 53

4.7  引用其他文件的伪指令 54

4.8  条件汇编伪指令 54

4. 9  汇编过程使用的符号的伪指令 55

4.10  汇编器模式伪指令 56

4.11  其他伪指令 56

4.12  伪指令索引表 57

第5章  宏语言 99

5.1  宏的使用 99

5.2  定义宏 100

5.3  宏参数/置换符号 101

5.3.1  定义置换符号的伪指令 102

5.3.2  内置置换符号函数 103

5.3.3  递归的置换符号 104

5.3.4  强制置换 104

5.3.5  访问下标置换符号的单个字符 105

5.3.6  在宏中作为局部变量的置换符号 106

5.4  宏库 107

5.5  在宏中使用条件汇编 107

5.6  在宏中使用标号 109

5.7  在宏中产生信息 110

5.8  用伪指令格式化输出列表 111

5.9  递归和嵌套宏的使用 111

5.10  宏伪指令汇总 113

第6章  归档器 115

6.1  归档器概述 115

6.2  软件开发流程中归档器的作用 116

6.3  调用归档器 116

6.4  归档器实例 117

第7章  链接器 120

7.1  链接器概述 120

7.2  在软件开发流程中链接器的作用 121

7.3  调用链接器 121

7.4  链接器选项 123

7.4.1  重定位(–a和–r选项) 124

7.4.2  禁止合并符号调试信息 125

7.4.3  C语言程序选项(–c和–cr选项) 125

7.4.4  定义入口(–e选项) 125

7.4.5  设置默认的填充值(–f fill_value 选项) 126

7.4.6  全局化符号(–g symbol选项) 126

7.4.7  静态化所有的全局符号(–h选项) 126

7.4.8  定义堆的大小(–heap size选项) 126

7.4.9  改变库的搜索路径(–l选项、–i选项和C_DIR环境变量) 127

7.4.10  取消条件链接 128

7.4.11  忽略分配(–k选项) 129

7.4.12  创建映像文件(–m filename选项) 129

7.4.13  命名输出文件(–o filename选项) 130

7.4.14  隐藏运行信息(–q选项) 130

7.4.15  删除符号信息(–s选项) 130

7.4.16  定义堆栈的大小(–stack size选项) 130

7.4.17  引入未定义的符号(–u symbol选项) 131

7.4.18  当创建未定义的段时显示信息(–w选项) 131

7.4.19  穷举读库(–x选项) 131

7.5  链接器命令文件 132

7.5.1  链接器命令文件中的保留名 133

7.5.2  链接器命令文件中的常量 134

7.6  目标库 134

7.7  MEMORY伪指令 135

7.7.1  默认的存储器模式 135

7.7.2  MEMORY 伪指令格式 135

7.8  SECTIONS伪指令 138

7.8.1  SECTIONS伪指令的格式 138

7.8.2  地址分配 140

7.8.3  规定输入段 143

7.9  指定一个段的运行地址 145

7.9.1  指定装载和运行地址 145

7.9.2  未初始化的段 146

7.9.3  用.label伪指令访问装载地址 146

7.10  UNION和GROUP语句的使用 147

7.10.1  用UNION语句重叠段 147

7.10.2  把输出段在一起分组 149

7.11  重叠页 149

7.11.1  用MEMORY伪指令定义重叠页 150

7.11.2  重叠页实例 150

7.11.3  在SECTIONS伪指令中使用重叠页 150

7.11.4  对重叠页的存储器分配 151

7.12  特殊段类型 152

7.13  默认分配 152

7.13.1  输出段的形成 153

7.13.2  默认分配算法 153

7.14  链接时给符号赋值 154

7.14.1  赋值语句的格式 154

7.14.2  将SPC赋值到一个符号 154

7.14.3  赋值表达式 155

7.14.4  链接器定义的符号 156

7.15  创建和填充空位 156

7.15.1  初始化段和未初始化段 156

7.15.2  创建空位 157

7.15.3  填充空位 158

7.15.4  未初始化段的显式初始化 159

7.16  部分(增量)链接 159

7.17  链接C代码 161

7.17.1  运行中的初始化 161

7.17.2  目标库和运行时的支持 161

7.17.3  设置堆栈和堆段的大小 162

7.17.4  运行中变量的自动初始化 162

7.17.5  装载时变量的自动初始化 162

7.17.6  –c和–cr链接器选项 163

7.18  链接器举例 163

第8章  绝对列表程序 167

8.1  生成绝对列表 167

8.2  调用绝对列表程序 168

8.3  绝对列表程序实例 169

第9章  交叉引用列表程序 173

9.1  生成交叉引用列表 173

9.2  调用交叉引用列表程序 174

9.3  交叉引用列表程序举例 175

第10章  十六进制转换应用程序 177

10.1  十六进制转换应用程序在软件开发 流程中的作用 178

10.2  调用十六进制转换应用程序 178

10.2.1  从命令行调用十六进制转换应用程序 179

10.2.2  用命令文件调用十六进制转换应用程序 180

10.3  存储器宽度 181

10.3.1  目标宽度 181

10.3.2  存储器宽度 181

10.3.3  数据划分到输出文件 182

10.3.4  规定输出字的字次序 184

10.4  ROMS伪指令 184

10.4.1  何时使用ROMS伪指令 186

10.4.2  ROMS伪指令举例 186

10.5  SECTIONS伪指令 188

10.6  分配输出文件名 189

10.7  映像模式和填充(–fill)选项 190

10.7.1  生成一个存储器映像 190

10.7.2  填充值 191

10.7.3  在映像模式下所遵循的步骤 191

10.8  控制ROM器件地址 191

10.9  目标格式 192

10.9.1  ASCII-Hex目标格式(–a选项) 192

10.9.2  Intel MCS-86目标格式(–i选项) 193

10.9.3  Motorola-S目标格式(–m选项) 194

10.9.4  TI-Tagged SDSMAC目标格式(–t选项) 194

10.9.5  扩展Tektronix目标格式(–x选项) 195

10.10  十六进制转换应用程序错误信息 196

第11章  C28x汇编语言指令集 197

11.1  指令概述(按功能分类) 197

11.2  寄存器操作 199

附录A  通用目标文件格式 428

附录B  符号调试伪指令 444

附录C  汇编器错误信息 453

附录D  链接器错误信息 465

附录E  术语表 477