內容簡介
當前,DSP晶片技術飛速發展,舊型號不斷被淘汰,新產品功能越來越強大,而硬體結構和彙編指令也越來越複雜。面對這種形勢,DSP程式開發人員必須轉變傳統的編程思想,採用開發流程簡化的系統級集成環境,以縮短軟體開發周期,加快產品的上市時間。
本書針對程式開發人員和DSP初學者,介紹了當前最為流行的幾種高性能通用DSP,包括TI公司的TMS320C5000/C6000 DSP和AD公司的SHARC DSP;詳細介紹了當前最新的開發環境及最新的編程思路;介紹了在MATLAB及開發工具提供的系統級集成環境下,完成設計、仿真、目標代碼產生、調試和運行的過程。
本書面向通信、雷達和電子工程領域的DSP算法研究和程式開發人員以及相關專業的研究生和高年級本科生,亦可作為DSP愛好者的自學教程。
目錄
第1章 MATLAB與DSP軟體設計方法綜述 1
1.1 DSP程式開發過程的演變 1
1.1.1 DSP技術綜述 1
1.1.2 DSP設計過程 2
1.1.3 DSP軟體設計方法的變革 3
1.1.4 MATLAB–DSP集成設計環境下的工具包 6
1.2 MATLAB輔助下的DSP軟體設計 7
1.2.1 MATLAB模擬浮點DSP 8
1.2.2 了解定點DSP數據格式 10
1.2.3 MATLAB精確模擬定點DSP運算 12
1.2.4 MATLAB功能模擬定點DSP運算 17
1.2.5 常用的MATLAB工具及函式 18
1.3 MATLAB下的DSP集成設計環境 25
思考題 25
第2章 高性能通用DSP內部功能結構及原始碼開發 26
2.1 TMS320C5000 DSP的內部功能結構及原始碼開發 27
2.1.1 TMS320C5000 DSP的功能和結構特點 27
2.1.2 CPU核 30
2.1.3 存儲器組織 35
2.1.4 中斷 36
2.1.5 片內外設資源 39
2.1.6 TMS320C5000 DSP的彙編指令 49
2.1.7 TMS320C5000 DSP的C/C++語言編程 68
2.2 TMS320C6000 DSP的內部功能結構及原始碼開發 72
2.2.1 TMS320C6000 DSP的功能和結構特點 72
2.2.2 CPU核 74
2.2.3 存儲器組織 80
2.2.4 中斷 86
2.2.5 片內外設資源 93
2.2.6 TMS320C6000 DSP的彙編指令 110
2.2.7 TMS320C6000 DSP的C/C++語言編程 124
2.3 ADSP2106x DSP的內部功能結構及原始碼開發 127
2.3.1 ADSP2106x DSP的功能和結構特點 127
2.3.2 CPU核 128
2.3.3 存儲器組織 134
2.3.4 中斷 136
2.3.5 片內外設資源 138
2.3.6 ADSP2106x DSP的彙編指令 148
2.3.7 ADSP21x6x DSP的C/C++語言編程 164
2.4 ADSP2116x DSP的內部功能結構及原始碼開發 170
2.4.1 ADSP2116x DSP的功能和結構特點 170
2.4.2 CPU核 172
2.4.3 存儲器組織 182
2.4.4 中斷 184
2.4.5 片內外設資源 185
2.4.6 ADSP2116x DSP的彙編指令 194
思考題 201
第3章 TMS320C5000/C6000 DSP集成開發環境CCS IDE 203
3.1 TI CCS概述 203
3.1.1 CCS的特點及功能概述 203
3.1.2 CCS支持的調試器 205
3.1.3 CCS的配置與啟動 208
3.2 代碼產生工具 209
3.2.1 代碼產生過程及工具 210
3.2.2 編譯、連結(Build)選項設定 212
3.2.3 代碼產生過程演示例子 215
3.3 代碼調試工具 218
3.3.1 CCS 提供的調試工具 218
3.3.2 代碼調試演示例子 241
3.4 代碼實時性分析調試工具 252
3.4.1 DSP/BIOS實時作業系統 252
3.4.2 RTDX實時數據交換 257
3.4.3 套用DSP/BIOS調試代碼實時性演示例子 259
思考題 268
第4章 SHARC DSP集成開發環境VisualDSP++ 270
4.1 VisualDSP ++開發工具概述 270
4.2 VisualDSP ++的代碼產生工具 272
4.3 VisualDSP++的調試工具 278
4.4 VisualDSP++演示例子 289
思考題 292
第5章 MATLAB與TI CCS的接口 294
5.1 CCSLink概述 294
5.1.1 CCSLink的功能及特點 294
5.1.2 CCSLink的配置 295
5.1.3 CCSLink的內容 296
5.2 CCSLink連線對象 297
5.2.1 創建連線對象 297
5.2.2 修改和獲取連線對象的屬性值 298
5.2.3 連線對象屬性 299
5.3 CCSLink嵌入式對象 301
5.4 CCSLink函式 305
5.5 CCSLink演示例子 327
5.5.1 CCS IDE連線對象套用演示 327
5.5.2 嵌入式對象套用演示 330
5.5.3 RTDX連線對象套用演示 333
思考題 337
第6章 由Simulink模型生成TI C6000 DSP的目標代碼 338
6.1 ETTIC6000概述 339
6.1.1 ETTIC6000的功能和特點 339
6.1.2 ETTIC6000的配置 340
6.1.3 ETTIC6000的模組庫 341
6.1.4 套用 ETTIC6000開發實時DSP處理的過程 343
6.2 設定Real–Time Workshop編譯連結選項 343
6.2.1 Target configuration選項 344
6.2.2 Target language compiler(TLC)debugging選項 346
6.2.3 General code generation選項 346
6.2.4 General code appearance選項 347
6.2.5 TI C6000 target selection選項 347
6.2.6 TI C6000 code generation選項 348
6.2.7 TI C6000 compiler選項 348
6.2.8 TI C6000 Linker選項 349
6.2.9 TI C6000 runtime選項 349
6.3 在生成的目標可執行代碼中集成DSP/BIOS功能塊 350
6.3.1 在生成的可執行代碼中集成DSP/BIOS功能模組 351
6.3.2 統計代碼的執行性能 352
6.4 利用FDATool工具設計濾波器 353
6.4.1 從FDATool向CCS輸出濾波器係數 353
6.4.2 從FDATool向CCS輸出濾波器係數的操作步驟 356
6.5 C6000lib模組庫 357
6.5.1 C6711 DSK Board Support模組庫 357
6.5.2 C6701 EVM Board Support模組庫 360
6.5.3 RTDX Instrumentation模組庫 362
6.5.4 TI C62 DSPLIB模組庫 364
6.6 由Simulink模型生成實時代碼過程 364
6.7 TI C6701 EVM目標板的套用 365
6.7.1 TI C6701 EVM板的配置、驗證和測試 366
6.7.2 套用TI C6701 EVM板的演示例子 368
6.8 TI C6711 DSK目標板的套用 370
6.8.1 TI C6711 DSK板的配置、驗證和測試 370
6.8.2 套用TI C6711 DSK板的演示例子 371
思考題 373
第7章 直接由Simulink模型生成SHARC DSP的目標代碼 375
7.1 DSPdeveloper概述 375
7.2 DSPdeveloper提供的模組 376
7.3 套用DSPdeveloper進行實時代碼開發的步驟 377
7.4 套用DSPdeveloper進行實時代碼開發的演示例子 382
思考題 384
參考文獻 385