《DSP指令和編程指南》是2005年清華大學出版社出版的圖書,作者是TI公司 。
基本介紹
- 書名:DSP指令和編程指南
- ISBN:9787302104384
- 定價:46元
- 出版時間:2005年3月16日
- 裝幀:平裝
圖書簡介,目錄,
圖書簡介
本書由TI公司的兩埋臘擊個文獻編譯而成,編號為SPRU513的文獻介紹了如何使用彙編鑽探民懂語言工具:彙編器、歸檔器、目標代碼連結器、交叉引用列表程式、絕對地址列表程式、十六進制轉換應用程式。編號為SPRU430B的文獻中的一部分介紹了C28x彙編語言指令集。由於這兩部分內容緊密相關,故將其放在一起,以便讀者查閱遙希元。
目錄
第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.6COFF檔案中的符號 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.15TMS320C28x彙編器的模式 40
3.15.1C27x目標模式 40
3.15.2C28x目標模式 41
3.15.3C28x目標——兼容C27x的語法模式 41
3.15.4C28x目標——兼容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.3C語言程式選項(–c和–cr選項) 125
7.4.4定義入口(–e選項) 125
7.4.5設定默認的填充值(–ffill_value選項) 126
7.4.6全局化符號(–gsymbol選項) 126
7.4.7靜態化所有的全局符號(–h選項) 126
7.4.8定義堆的大小(–heapsize選項) 126
7.4.9改變庫的搜尋路徑(–l選項、–i選項和C_DIR環境變數) 127
7.4.10取消條件連結 128
7.4.11忽略分配(–k選項) 129
7.4.12創建映像檔案(–mfilename選項) 129
7.4.13命名輸出檔案(–ofilename選項) 130
7.4.14隱藏運行信息(–q選項) 130
7.4.15刪除符號信息(–s選項) 130
7.4.16定義堆疊的大小(–stacksize選項) 130
7.4.17引入未定義的符號(–usymbol選項) 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.7MEMORY偽指令 135
7.7.1默認的存儲器模式 135
7.7.2MEMORY偽指令格式 135
7.8SECTIONS偽指令 138
7.8.1SECTIONS偽指令的格式 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.10UNION和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.4ROMS偽指令 184
10.4.1何時使用ROMS偽指令 186
10.4.2ROMS偽指令舉例 186
10.5SECTIONS偽指令 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.1ASCII-Hex目標格式(–a選項) 192
10.9.2IntelMCS-86目標格式(–i選項) 193
10.9.3Motorola-S目標格式(–m選項) 194
10.9.4TI-TaggedSDSMAC目標格式(–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
3.15TMS320C28x彙編器的模式 40
3.15.1C27x目標模式 40
3.15.2C28x目標模式 41
3.15.3C28x目標——兼容C27x的語法模式 41
3.15.4C28x目標——兼容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.3C語言程式選項(–c和–cr選項) 125
7.4.4定義入口(–e選項) 125
7.4.5設定默認的填充值(–ffill_value選項) 126
7.4.6全局化符號(–gsymbol選項) 126
7.4.7靜態化所有的全局符號(–h選項) 126
7.4.8定義堆的大小(–heapsize選項) 126
7.4.9改變庫的搜尋路徑(–l選項、–i選項和C_DIR環境變數) 127
7.4.10取消條件連結 128
7.4.11忽略分配(–k選項) 129
7.4.12創建映像檔案(–mfilename選項) 129
7.4.13命名輸出檔案(–ofilename選項) 130
7.4.14隱藏運行信息(–q選項) 130
7.4.15刪除符號信息(–s選項) 130
7.4.16定義堆疊的大小(–stacksize選項) 130
7.4.17引入未定義的符號(–usymbol選項) 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.7MEMORY偽指令 135
7.7.1默認的存儲器模式 135
7.7.2MEMORY偽指令格式 135
7.8SECTIONS偽指令 138
7.8.1SECTIONS偽指令的格式 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.10UNION和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.4ROMS偽指令 184
10.4.1何時使用ROMS偽指令 186
10.4.2ROMS偽指令舉例 186
10.5SECTIONS偽指令 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.1ASCII-Hex目標格式(–a選項) 192
10.9.2IntelMCS-86目標格式(–i選項) 193
10.9.3Motorola-S目標格式(–m選項) 194
10.9.4TI-TaggedSDSMAC目標格式(–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