本書(shū)以實(shí)際的嵌入系統(tǒng)產(chǎn)品應(yīng)用與開(kāi)發(fā)為主線,力求透徹講解開(kāi)發(fā)中所涉及的龐大而復(fù)雜的相關(guān)知識(shí)。內(nèi)容包括:ARC嵌入式系統(tǒng)概述;ARC EM處理器介紹;ARC EM編程模型;中斷及異常處理等。
嵌入式系統(tǒng)(Embedded System)是一種“完全嵌入受控器件內(nèi)部,為特定應(yīng)用而設(shè)計(jì)的專用計(jì)算機(jī)系統(tǒng)”,根據(jù)英國(guó)電氣工程師協(xié)會(huì)(U. K. Institution of Electrical Engineer)的定義,嵌入式系統(tǒng)為控制、監(jiān)視或輔助設(shè)備、機(jī)器,或用于工廠運(yùn)作的設(shè)備。而國(guó)內(nèi)普遍認(rèn)同的嵌入式系統(tǒng)的定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。與個(gè)人計(jì)算機(jī)這樣的通用計(jì)算機(jī)系統(tǒng)不同,嵌入式系統(tǒng)通常執(zhí)行的是帶有特定要求的預(yù)先定義的任務(wù)。
本書(shū)以實(shí)際的嵌入式系統(tǒng)產(chǎn)品應(yīng)用與開(kāi)發(fā)為主線,力求透徹講解開(kāi)發(fā)中所涉及的龐大而復(fù)雜的相關(guān)知識(shí)。
本書(shū)第1~5章為基礎(chǔ)篇,介紹了ARC 嵌入式系統(tǒng)的基礎(chǔ)知識(shí)和開(kāi)發(fā)過(guò)程中需要的一些理論知識(shí),具體包括ARC嵌入式系統(tǒng)概述、ARC EM處理器介紹、ARC EM編程模型、中斷及異常處理、匯編語(yǔ)言程序設(shè)計(jì)等內(nèi)容。第6~9章為實(shí)踐篇,介紹了如何建立嵌入式開(kāi)發(fā)環(huán)境、搭建嵌入式硬件開(kāi)發(fā)平臺(tái)等,具體包括ARC EM處理器的開(kāi)發(fā)及調(diào)試環(huán)境、MQX實(shí)時(shí)操作系統(tǒng)、ARC EM Starter Kit FPGA開(kāi)發(fā)板以及嵌入式系統(tǒng)應(yīng)用開(kāi)發(fā)實(shí)例等內(nèi)容。第10~11章介紹了ARC EM處理器特有的可配置及可擴(kuò)展APEX屬性,以及如何在處理器設(shè)計(jì)中利用這種可配置及可擴(kuò)展性實(shí)現(xiàn)優(yōu)化設(shè)計(jì)。
本書(shū)不僅詳細(xì)講解基礎(chǔ)理論知識(shí),還提供了大量的開(kāi)發(fā)案例供讀者參考,學(xué)習(xí)性和實(shí)用性強(qiáng),既可供從事嵌入式系統(tǒng)設(shè)計(jì)、開(kāi)發(fā)的廣大科技人員閱讀,也可以作為大專院校電子科學(xué)與技術(shù)、集成電路與集成系統(tǒng)、微電子科學(xué)與工程、物聯(lián)網(wǎng)工程、電子信息、自動(dòng)控制專業(yè)及其他相關(guān)專業(yè)的教材或參考書(shū)。
本書(shū)是華中科技大學(xué)-Synopsys ARC處理器聯(lián)合培訓(xùn)中心的力作,系統(tǒng)介紹應(yīng)用Synopsys ARC處理器進(jìn)行嵌入式系統(tǒng)開(kāi)發(fā)與編程。為了使廣大學(xué)生和研發(fā)工程師盡快掌握ARC EM處理器的使用,更好地推廣Synopsys ARC 處理器技術(shù)與產(chǎn)品,在Synopsys全球總部、Synopsys武漢公司、Synopsys ARC研發(fā)團(tuán)隊(duì)、華中科技大學(xué)光學(xué)與電子信息學(xué)院微電子工程系、武漢微電子學(xué)院及機(jī)械工業(yè)出版社華章公司的支持下,我們編著了此書(shū),目的是為廣大讀者提供一本較為完整、系統(tǒng)的ARC EM嵌入式系統(tǒng)開(kāi)發(fā)與編程參考書(shū)。本書(shū)主要以ARC EM原版數(shù)據(jù)手冊(cè)的內(nèi)容為基礎(chǔ),增加了ARC EM處理器特有的可配置及可擴(kuò)展APEX屬性等內(nèi)容。為了方便學(xué)習(xí)和實(shí)踐,我們還開(kāi)發(fā)了較為完整的配套實(shí)驗(yàn)案例,以及一個(gè)嵌入式系統(tǒng)應(yīng)用實(shí)例—溫度自動(dòng)監(jiān)測(cè)模塊。
本書(shū)由華中科技大學(xué)武漢國(guó)際微電子學(xué)院及華中科技大學(xué)光學(xué)與電子信息學(xué)院雷鑑銘老師負(fù)責(zé)組織并完成全書(shū)的編著工作,華中科技大學(xué)鄭朝霞副教授、鄒雪城教授對(duì)本書(shū)進(jìn)行了審校。參與本書(shū)編寫(xiě)和整理、軟硬件設(shè)計(jì)和案例開(kāi)發(fā)驗(yàn)證等工作的有Synopsys公司的吳丹、程松波、程文、涂申俊、饒金理、沈金陽(yáng)、陳鵬、胡振波、彭劍英以及華中科技大學(xué)武漢微電子學(xué)院的彭自強(qiáng)、向燈、黃之、許晟、安志浩、顧云帆、高文、鐘媛、高弘揚(yáng)、鄭賢、符章等。在本書(shū)完成過(guò)程中,還得到了Synopsys武漢公司王喆及機(jī)械工業(yè)出版社華章公司的大力支持,在此向他們表示衷心的感謝。特別感謝文華學(xué)院外國(guó)語(yǔ)學(xué)院英語(yǔ)系肖艷梅老師的審校工作。
由于時(shí)間倉(cāng)促和水平有限,同時(shí)在成書(shū)過(guò)程中Synopsys公司的官方資料還在不斷更新,所以本書(shū)有些內(nèi)容不盡完善,錯(cuò)誤之處也在所難免,懇請(qǐng)讀者批評(píng)指正,以便我們及時(shí)修正。
序
前言
第1章 ARC嵌入式系統(tǒng)概述1
1.1 嵌入式系統(tǒng)簡(jiǎn)介1
1.2 ARC處理器簡(jiǎn)介2
1.3 ARC EM處理器系列4
1.4 ARC EM處理器開(kāi)發(fā)環(huán)境9
1.4.1 ARChitect9
1.4.2 MetaWare開(kāi)發(fā)套件9
1.4.3 embARC軟件平臺(tái)10
1.4.4 操作系統(tǒng)支持10
1.4.5 ARC EM Starter Kit開(kāi)發(fā)板10
1.5 小結(jié)11
第2章 ARC EM處理器介紹12
2.1 ARC EM處理器特點(diǎn)12
2.2 可配置性及可擴(kuò)展性14
2.2.1 可配置性14
2.2.2 用戶可擴(kuò)展性15
2.3 ARC EM處理器結(jié)構(gòu)16
2.3.1 接口信號(hào)16
2.3.2 內(nèi)核結(jié)構(gòu)18
2.3.3 存儲(chǔ)系統(tǒng)20
2.3.4 存儲(chǔ)保護(hù)機(jī)制24
2.3.5 調(diào)試25
2.4 小結(jié)27
第3章 ARC EM編程模型28
3.1 概述28
3.2 尋址空間劃分30
3.3 數(shù)據(jù)類型30
3.3.1 32位數(shù)據(jù)31
3.3.2 16位數(shù)據(jù)31
3.3.3 8位數(shù)據(jù)32
3.3.4 1位數(shù)據(jù)32
3.4 尋址方式32
3.5 寄存器組32
3.5.1 核心寄存器組33
3.5.2 輔助寄存器組38
3.6 工作模式46
3.7 指令類型46
3.7.1 算術(shù)邏輯運(yùn)算指令46
3.7.2 數(shù)據(jù)傳輸指令47
3.7.3 控制流指令47
3.7.4 特殊指令47
3.7.5 擴(kuò)展指令集48
3.8 指令格式48
3.8.1 32位指令格式48
3.8.2 16位指令格式48
3.8.3 指令存儲(chǔ)方式49
3.8.4 條件執(zhí)行50
3.9 指令集應(yīng)用實(shí)例51
3.9.1 數(shù)據(jù)傳輸指令52
3.9.2 算術(shù)運(yùn)算指令52
3.9.3 比較指令54
3.9.4 邏輯運(yùn)算指令54
3.9.5 跳轉(zhuǎn)指令54
3.9.6 加載/存儲(chǔ)指令55
3.9.7 其他指令56
3.10 小結(jié)57
第4章 中斷及異常處理58
4.1 概述58
4.2 工作模式和權(quán)限58
4.3 中斷60
4.3.1 中斷單元特性61
4.3.2 配置中斷單元61
4.3.3 中斷單元編程62
4.3.4 中斷處理66
4.4 異常69
4.4.1 異常精確性69
4.4.2 異常向量及異常原因寄存器70
4.4.3 異常類型與優(yōu)先級(jí)72
4.4.4 異常檢測(cè)74
4.4.5 異常進(jìn)入75
4.4.6 異常退出75
4.4.7 異常與延遲槽指令75
4.5 中斷或異常服務(wù)程序返回指令RTIE75
4.6 小結(jié)77
第5章 匯編語(yǔ)言程序設(shè)計(jì)78
5.1 ARC匯編語(yǔ)言78
5.2 ARC匯編語(yǔ)言偽指令78
5.2.1 匯編語(yǔ)言偽指令簡(jiǎn)介78
5.2.2 匯編語(yǔ)言偽指令79
5.3 ARC匯編語(yǔ)言語(yǔ)句格式82
5.3.1 匯編語(yǔ)言格式與例子82
5.3.2 匯編語(yǔ)言的字符集與標(biāo)識(shí)符85
5.3.3 匯編語(yǔ)言符號(hào)86
5.3.4 匯編語(yǔ)言標(biāo)號(hào)88
5.3.5 匯編語(yǔ)言的常量90
5.3.6 表達(dá)式91
5.3.7 宏92
5.4 ARC匯編語(yǔ)言程序設(shè)計(jì)93
5.4.1 匯編語(yǔ)言編程步驟93
5.4.2 程序設(shè)計(jì)類型94
5.5 ARC匯編語(yǔ)言程序?qū)嵗?7
5.6 ARC匯編語(yǔ)言與C/C++的混合編程98
5.6.1 ARC C/C++ 調(diào)用匯編程序98
5.6.2 ARC匯編調(diào)用C/C++101
5.6.3 ARC C/C++和匯編交叉調(diào)用實(shí)例101
5.7 小結(jié)103
第6章 ARC EM處理器的開(kāi)發(fā)及調(diào)試環(huán)境104
6.1 MetaWare開(kāi)發(fā)套件104
6.1.1 MetaWare mcc編譯器和ccac編譯器105
6.1.2 MetaWare ELF匯編器106
6.1.3 MetaWare ELF鏈接器106
6.1.4 MetaWare 運(yùn)行時(shí)庫(kù)107
6.1.5 MetaWare調(diào)試器110
6.1.6 MetaWare仿真器110
6.1.7 MetaWare IDE111
6.2 MetaWare IDE開(kāi)發(fā)指南112
6.2.1 創(chuàng)建與管理工程112
6.2.2 配置工程116
6.2.3 編譯工程118
6.2.4 調(diào)試工程118
6.3 使用MetaWare調(diào)試器進(jìn)行性能分析122
6.4 MetaWare命令行模式126
6.4.1 MetaWare C/C++編譯命令126
6.4.2 MetaWare調(diào)試器調(diào)試命令127
6.5 ARC GNU介紹128
6.6 小結(jié)128
第7章MQX實(shí)時(shí)操作系統(tǒng)129
7.1 實(shí)時(shí)操作系統(tǒng)介紹129
7.2MQX內(nèi)核組件130
7.3MQX任務(wù)管理132
7.3.1任務(wù)調(diào)度133
7.3.2任務(wù)同步與通信135
7.4 MQX存儲(chǔ)管理139
7.4.1 可變大小存儲(chǔ)塊管理139
7.4.2 固定大小存儲(chǔ)塊管理140
7.4.3 高速緩存控制142
7.5 中斷處理142
7.5.1 中斷處理初始化143
7.5.2 裝載應(yīng)用程序定義的ISR143
7.5.3 針對(duì)ISR的限制144
7.5.4 修改默認(rèn)ISR146
7.5.5 異常處理146
7.5.6 ISR異常處理146
7.5.7 任務(wù)異常處理147
7.5.8 ISR裝載實(shí)例147
7.6 MQX配置148
7.6.1 配置選項(xiàng)149
7.6.2 MQX創(chuàng)建任務(wù)實(shí)例150
7.7 小結(jié)153
第8章ARC EM Starter Kit FPGA開(kāi)發(fā)板154
8.1 概述154
8.2 ARC EM FPGA系統(tǒng)設(shè)計(jì)155
8.2.1 FPGA系統(tǒng)概述155
8.2.2 EM內(nèi)核配置156
8.2.3 外圍設(shè)備控制160
8.2.4 FPGA系統(tǒng)時(shí)鐘164
8.2.5 FPGA系統(tǒng)中斷分配164
8.3 開(kāi)發(fā)板的使用165
8.3.1 開(kāi)發(fā)板上接口介紹165
8.3.2 Pmod的使用166
8.3.3 操作模式173
8.3.4軟件包介紹175
8.4 實(shí)例178
8.5 小結(jié)181
第9章開(kāi)發(fā)實(shí)例:溫度監(jiān)測(cè)與顯示182
9.1 系統(tǒng)簡(jiǎn)介182
9.2 系統(tǒng)硬件設(shè)計(jì)183
9.2.1 EM 內(nèi)核設(shè)置183
9.2.2 Pmod外設(shè)介紹184
9.2.3 Pmod與開(kāi)發(fā)板的硬件連接185
9.3 系統(tǒng)軟件實(shí)現(xiàn)186
9.3.1 軟件設(shè)計(jì)186
9.3.2 代碼實(shí)現(xiàn)187
9.3.3 系統(tǒng)代碼詳解191
9.4 調(diào)試與運(yùn)行194
9.4.1 選擇FPGA映像194
9.4.2 編譯和運(yùn)行代碼195
9.4.3 運(yùn)行結(jié)果195
9.5 小結(jié)197
第10章ARC EM 可配置性198
10.1 可配置性優(yōu)點(diǎn)198
10.2 基準(zhǔn)模板199
10.3 配置模塊201
10.3.1 添加/刪除模塊201
10.3.2 配置模塊屬性203
10.3.3 與固定配置處理器比較203
10.4 可選模塊205
10.4.1 可選模塊簡(jiǎn)介205
10.4.2 Cache實(shí)例206
10.5 軟硬件一致性208
10.5.1 什么是軟硬件一致性208
10.5.2 乘法器使用實(shí)例209
10.6 小結(jié)211
第11章APEX擴(kuò)展212
11.1 APEX 綜述212
11.2 為何添加APEX擴(kuò)展214
11.3 識(shí)別定制指令214
11.4 創(chuàng)建APEX擴(kuò)展216
11.4.1APEX擴(kuò)展命名216
11.4.2 配置擴(kuò)展內(nèi)容217
11.4.3 編輯選項(xiàng)219
11.4.4 編寫(xiě)邏輯222
11.4.5 編寫(xiě)測(cè)試代碼224
11.5 驗(yàn)證APEX擴(kuò)展226
11.6 使用APEX擴(kuò)展228
11.7 小結(jié)230
附錄A常用輔助寄存器快速參考231
附錄BARC指令速查表258
附錄C術(shù)語(yǔ)及縮略語(yǔ)262
參考文獻(xiàn)264