內容簡介
本書從介紹雙核單片機的背景知識開始,講述雙核單片機基本硬體系統的設計方法;主處理器初始化協處理器並將部分工作交給協處理器完成的過程;主、協兩個處理器的通信機制與克服競爭的方法;用C語言編寫雙核單片機的應用程式;建立雙核單片機應用程式調試的環境;利用商用軟體CodeWarrior的教學版本,將嵌入式實時多任務作業系統μC/OSⅡ移植到雙核單片機上,建立基於RTOS的開發環境;同時給出了幾個實現雙核系統套用的範例和原始碼,包括利用協處理器提升RTOS性能的方法;還簡要介紹了單片機片內容錯與糾錯技術、雙時鐘技術和FlexRay通信技術等伴隨單片機雙核技術發展起來的一些新技術,這些技術的發展與套用將進一步提高嵌入式控制系統的可靠性。
本書可作為相關專業研究生課程教材,也可供理工科大專院校電類本科生和嵌入式控制系統開發套用工程師參考。
目錄
第1章單片機技術發展新趨勢及雙核單片機1
1.1片上系統以及套用系統單片化趨勢2
1.2以存儲器為核心制訂解決方案3
1.3使用實時作業系統6
1.4MISRA標準C7
1.5協處理器在單片機中的套用8
1.6單片機世界中的雙核單片機9
1.6.1雙核單片機系列的由來10
1.6.2雙核單片機的基礎——單核單片機系列11
1.7MC9S12系列單片機14
1.7.1MC9S12A系列和B系列16位單片機14
1.7.2帶CAN匯流排的MC9S12D系列16位單片機15
1.7.3MC9S12DP512單片機16
1.7.4低供電電壓的16位單片機18
1.7.5帶USB接口的16位單片機18
1.7.6帶乙太網接口的16位單片機19
1.8使用CPUV1的雙核單片機系列19
1.8.1S12XA系列單片機19
1.8.2S12XB系列單片機21
1.8.3S12XD系列單片機21
1.8.4帶液晶、步進電機驅動模組的雙核S12XHZ系列單片機23
1.8.5帶液晶驅動的單核單片機25
1.9使用CPUV2核心的S12X系列單片機26
1.9.1S12XCPUV2核心26
1.9.2S12XE系列單片機26
1.10支持FlexRay通信協定的S12XF系列單片機27
1.10.1FlaxRay通信協定27
1.10.2S12XF系列單片機29
1.10.3S12XS系列單片機30
1.11雙核單片機的開發工具31
1.11.1軟體開發工具31
1.11.2動態調試方法32
1.12雙核單片機中的其他新技術32
1.12.1片內容錯與糾錯技術32
1.12.2片記憶體儲器資源管理技術33
1.12.3編譯、調試技術的新發展34
第2章單片機基本系統的硬體設計36
2.116位單片機36
2.1.1帶協處理器的16位單片機37
2.1.2MC9S12XDP512單片機38
2.2單片機基本硬體系統43
2.2.1MC9S12XD的基本硬體系統44
2.2.2監控程式45
2.2.3體驗機器碼48
2.3利用異步串列口實現人機通信50
2.3.1串列通信協定RS232標準50
2.3.2ASCII碼52
2.3.3串列數據格式53
2.3.4RS232C電纜的連線方法54
2.3.5通信速率54
2.4MC9S12XD單片機系統的硬體設計55
2.5運行模式60
2.5.1單片運行模式60
2.5.2擴展運行模式61
2.6MC9S12XE單片機系統的硬體設計62
第3章主處理器及其指令集67
3.1主處理器的內部暫存器結構67
3.1.1S12XV1核心的CPU內部結構67
3.1.2S12XV2核心的CPU內部結構69
3.1.316位CPU與8位CPU的對比70
3.1.432位CPU與16位CPU的對比71
3.2記憶體空間分配72
3.3S12X的記憶體擴展與管理74
3.3.1S12XCPU定址空間的擴展74
3.3.2Flash頁面管理暫存器PPage75
3.3.3RAM頁面管理暫存器RPage75
3.3.4EEPROM頁面管理暫存器EPage76
3.3.5S12X用全程暫存器擴展定址空間77
3.3.6全程暫存器GPage77
3.4S12XCPUV2核心的記憶體管理81
3.5CPU12X彙編指令集83
3.6指令按功能分類83
3.6.1數據傳送指令84
3.6.2堆疊指針指令85
3.6.3算術與邏輯運算指令86
3.6.4程式控制指令90
3.6.5循環控制指令92
3.6.6測試與位操作指令93
3.7CPU12X的模糊邏輯指令93
3.8指令按尋址方式分類95
3.8.1隱含定址95
3.8.2立即數定址96
3.8.3直接定址96
3.8.4擴展定址96
3.8.5變址定址96
3.8.6帶自動加、減5位偏移量的間接定址97
3.8.7相對定址97
3.9彙編指令表98
3.10指令的機器碼組織99
3.11用彙編語言編寫程式100
3.11.1彙編程式的格式100
3.11.2彙編管理指令101
3.12彙編語言程式設計舉例102
3.13碼的轉換類子程式105
3.14彙編語言編程技巧108
第4章協處理器110
4.1協處理器的定址空間111
4.1.1I/O暫存器空間112
4.1.2Flash空間113
4.1.3RAM空間113
4.1.4RAM的分配與保護114
4.2協處理器CPU的核心結構115
4.3協處理器的定址方式118
4.4協處理器的彙編語言和CPU指令集120
4.5復位和中斷129
4.5.1中斷向量表129
4.5.2中斷向量基地址暫存器132
4.6與協處理器相關的暫存器133
4.7協處理器彙編程式的例子140
4.8CISC與RISC的比較141
第5章用C語言開發應用程式144
5.1C語言是開發單片機套用軟體的有力工具144
5.2開發嵌入式套用的C編譯器的特點146
5.2.1編譯過程與集成開發環境146
5.2.2不要使用初始化變數148
5.2.3注意函式的可重入性149
5.3建立C語言程式運行環境150
5.4應用程式模組化153
5.5合理使用全局變數和局部變數154
5.6函式的結構與函式間參數的傳遞155
5.7在C程式中直接操作硬體157
5.8程式模組的框架與組織158
5.9程式的連結與定位159
5.10用C語言寫XGate程式161
第6章使用嵌入式實時作業系統165
6.1嵌入式實時作業系統μC/OSⅡ165
6.2移植μC/OSⅡ167
6.2.1根據套用定義核心的大小和功能169
6.2.2修改OS_CPU.H檔案172
6.2.3編寫OS_CPU_C.C檔案174
6.2.4產生時鐘節拍中斷186
6.3製作用戶自己的項目189
6.3.1主程式main.c189
6.3.23個任務192
6.3.3連結與程式定位192
6.4精心分配RAM資源195
6.4.1RAM空間的分頁管理195
6.4.2估算μC/OSⅡ占用的RAM資源197
6.4.3估算核心占用RAM空間舉例203
第7章BDM後台調試模式205
7.1S12XBDM概述205
7.2進入BDM模式206
7.3BDM通信協定及底層軟體207
7.3.1BDM調試的相關暫存器207
7.3.2BDM指令基本結構209
7.3.3測量目標系統的時鐘頻率210
7.3.4BDM基本操作——讀/寫單位元組211
7.3.5BDM指令的組織215
7.4BDM簡單套用218
7.4.1用BDM對Flash編程218
7.4.2通過BDM顯示存儲器內容219
7.5TBDML工具221
第8章單片機軟體開發工具使用入門224
8.1商用軟體開發工具CodeWarriorforHCS12224
8.2安裝CodeWarrior225
8.3建立一個簡單的工程225
8.4自動生成的檔案系統229
8.5寫一個彙編程式231
8.6編寫一個最簡單的C程式233
8.7編寫一個能看到演示效果的C程式235
8.8增加新程式模組236
8.9建立雙核工程236
8.10定義裝載地址和復位向量241
第9章套用工程實例1——用協處理器管理SCI243
9.1定義主從CPU的共享變數和數據區243
9.2協處理器的中斷服務程式245
9.3主CPU回響來自協處理器的中斷247
9.4協處理器的初始化248
9.5程式清單main.c249
9.6程式清單xgate.h251
9.7程式清單xgate.cxgate252
9.8程式清單連結參數檔案.prm256
第10章套用工程實例2——用協處理器處理μC/OSⅡ時鐘節拍中斷260
10.1μC/OSⅡ的時鐘節拍260
10.1.1μC/OSⅡ的時鐘節拍函式260
10.1.2鍾節拍函式OSTimtick()的一個節拍服務261
10.2用XGate實現μC/OSⅡ的時鐘節拍262
10.3範例工程267
10.3.1main.c267
10.3.2xgate.cxgate271
10.4XGate的使用與程式調試276
10.4.1XGate的狀態276
10.4.2XGate程式的下載276
10.4.3XGate程式中的常見錯誤277
10.4.4XGate程式的調試278
10.5效果測試與分析279
附錄AMC9S12X系列單片機開發工具包281
A.1概述281
A.1.1HCS12X系列單片機281
A.1.2HCS12X開發工具包組件281
A.2MC9S12XEP100開發板及與PC通信282
A.2.1MC9S12XEP100開發板282
A.2.2開發板工作模式的選擇284
A.2.3開發板的硬體連線284
A.2.4PC的設定284
A.3監控程式及監控命令詳解287
A.3.1命令詳解287
A.3.2改變波特率290
A.3.3復位、中斷向量表292
A.3.4用戶可以使用的RAM空間292
附錄B協處理器XGate指令機器碼錶293
附錄CS12XCPU彙編指令表296
附錄DS12XCPU指令機器碼錶320
參考文獻324
……