注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)硬件、外部設(shè)備與維護手把手教你RISC-V CPU 工程與實踐(下)

手把手教你RISC-V CPU 工程與實踐(下)

手把手教你RISC-V CPU 工程與實踐(下)

定 價:¥89.00

作 者: 芯來科技生態(tài)組 著,胡振波 編
出版社: 人民郵電出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787115569493 出版時間: 2021-09-01 包裝: 平裝
開本: 16開 頁數(shù): 267 字?jǐn)?shù):  

內(nèi)容簡介

  本書通過開源蜂鳥E203處理器系統(tǒng)地介紹了RISC-V處理器的嵌入式軟件開發(fā)方法。全書共3個部分18章,不但給出嵌入式軟件開發(fā)的全流程,而且介紹了蜂鳥E203處理器的具體使用方法,通過提供大量的實戰(zhàn)項目,幫助讀者做到理論與實踐相結(jié)合。本書主要面向嵌入式軟件開發(fā)工程師,以及對RISC-V感興趣的初學(xué)者和技術(shù)愛好者。

作者簡介

  胡振波,擁有上海交通大學(xué)電子工程系學(xué)士學(xué)位和微電子學(xué)碩士學(xué)位。國內(nèi)RISC-V社區(qū)活躍的貢獻者,具有超過10處理器研發(fā)經(jīng)驗,在Marvell和Synopsys等企業(yè)負(fù)責(zé)過多款高性能和低能耗處理器研發(fā)工作。2018年,創(chuàng)辦了RISC-V處理器IP和芯片解決方案公司:-芯來科技。

圖書目錄

第 1章 開源蜂鳥E203 MCU總體介紹 1
1.1 蜂鳥E203 MCU的系統(tǒng)結(jié)構(gòu)和特性 1
1.2 蜂鳥E203 MCU的存儲資源 2
1.2.1 片上存儲資源 2
1.2.2 片外Flash存儲資源 2
1.3 蜂鳥E203 MCU的外設(shè)資源 3
1.4 蜂鳥E203 MCU的地址分配 3
1.5 蜂鳥E203 MCU的時鐘域劃分 4
1.6 蜂鳥E203 MCU的電源域劃分 5
1.7 蜂鳥E203 MCU的低功耗模式 5
1.8 蜂鳥E203 MCU的全局復(fù)位 6
1.9 蜂鳥E203 MCU的上電流程控制 7
1.10 蜂鳥E203 MCU的頂層引腳 7
1.11 蜂鳥E203 MCU的GPIO復(fù)用功能 8
1.12 蜂鳥E203 MCU的中斷處理 9
1.12.1 蜂鳥E203處理器核的異常和中斷處理 9
1.12.2 蜂鳥E203處理器核的中斷接口 11
1.12.3 CLINT模塊生成計時器中斷和軟件中斷 12
1.12.4 PLIC管理多個外部中斷 13
第 2章 開源蜂鳥E203 MCU的外設(shè) 17
2.1 蜂鳥E203 MCU的外設(shè)概述 17
2.2 PLIC 17
2.3 CLINT 18
2.4 LCLKGEN 18
2.4.1 LCLKGEN簡介 18
2.4.2 LCLKGEN的寄存器 18
2.5 HCLKGEN 18
2.5.1 HCLKGEN簡介 18
2.5.2 HCLKGEN的寄存器 19
2.6 GPIO 19
2.6.1 GPIO的功能 19
2.6.2 GPIO的寄存器 19
2.6.3 I/O結(jié)構(gòu)和IOF模式 20
2.6.4 MCU各外設(shè)復(fù)用GPIO引腳 20
2.6.5 GPIO中斷 21
2.6.6 GPIO_PADDIR寄存器 21
2.6.7 GPIO_PADIN寄存器 21
2.6.8 GPIO_PADOUT寄存器 21
2.6.9 GPIO_INTTEN寄存器 22
2.6.10 GPIO_INTTYPE0和GPIO_INTTYPE1寄存器 22
2.6.11 GPIO_INTSTATUS寄存器 22
2.6.12 GPIO_IOFCFG寄存器 22
2.7 SPI 22
2.7.1 SPI的背景知識 22
2.7.2 SPI的特性 25
2.7.3 SPI的寄存器 25
2.7.4 SPI數(shù)據(jù)線 26
2.7.5 QSPI0的寄存器配置 26
2.7.6 QSPI1和QSPI2的寄存器配置 38
2.8 I2C 41
2.8.1 I2C的背景知識 41
2.8.2 I2C的功能 42
2.8.3 I2C的寄存器 43
2.8.4 I2C的接口數(shù)據(jù)線 43
2.8.5 I2C_PRE寄存器 43
2.8.6 I2C_CTR寄存器 44
2.8.7 I2C_TX寄存器和I2C_RX寄存器 44
2.8.8 I2C_CMD寄存器 45
2.8.9 I2C_STATUS寄存器 45
2.8.10 I2C的常用操作序列 46
2.9 UART 48
2.9.1 UART的背景知識 48
2.9.2 UART的特性和功能 49
2.9.3 UART的寄存器 49
2.9.4 UART的接口數(shù)據(jù)線 50
2.9.5 UART_DLL寄存器和UART_DLM寄存器 50
2.9.6 UART_RBR寄存器 51
2.9.7 UART_THR寄存器 51
2.9.8 UART_FCR寄存器 52
2.9.9 UART_LCR寄存器 52
2.9.10 UART_LSR寄存器 53
2.9.11 UART_IER寄存器 53
2.9.12 UART_IIR寄存器 54
2.10 PWM 54
2.10.1 PWM的背景知識 54
2.10.2 PWM的功能和特性 54
2.10.3 PWM的寄存器 55
2.10.4 PWM模塊的輸出信號 55
2.10.5 TIMx_CMD(x=0,1,2,3)寄存器 55
2.10.6 TIMx_CFG(x=0,1,2,3)寄存器 56
2.10.7 TIMx_TH(x=0,1,2,3)寄存器 57
2.10.8 TIMx_CH0_TH(x=0,1,2,3)寄存器 57
2.10.9 TIMx_CH1_TH(x=0,1,2,3)寄存器 58
2.10.10 TIMx_CH2_TH(x=0,1,2,3)寄存器 58
2.10.11 TIMx_CH3_TH(x=0,1,2,3)寄存器 59
2.10.12 TIMx_CNT(x=0,1,2,3)寄存器 60
2.10.13 PWM_ENT_CFG寄存器 60
2.10.14 PWM_TIMER_EN寄存器 61
2.11 WDT 62
2.11.1 WDT的背景知識 62
2.11.2 WDT的特性、功能和結(jié)構(gòu) 62
2.11.3 WDT的寄存器 63
2.11.4 通過WDOGCFG寄存器對WDT進行配置 63
2.11.5 WDT的計數(shù)器計數(shù)值寄存器—WDOGCOUNT 64
2.11.6 通過WDOGKEY寄存器解鎖 65
2.11.7 通過WDOGFEED寄存器“喂狗” 65
2.11.8 WDT的計數(shù)器比較值寄存器—WDOGS 66
2.11.9 通過WDOGCMP寄存器配置閾值 66
2.11.10 WDT產(chǎn)生全局復(fù)位 66
2.11.11 WDT產(chǎn)生中斷 67
2.12 RTC 67
2.12.1 RTC的背景知識 67
2.12.2 RTC的特性、功能和結(jié)構(gòu) 67
2.12.3 RTC的寄存器 68
2.12.4 通過RTCCFG寄存器進行配置 68
2.12.5 RTC的計數(shù)器計數(shù)值寄存器—RTCHI/RTCLO 69
2.12.6 RTC的計數(shù)器比較值寄存器—RTCS 70
2.12.7 通過RTCCMP寄存器配置閾值 70
2.12.8 RTC產(chǎn)生中斷 70
2.13 PMU 70
2.13.1 PMU的背景知識 70
2.13.2 PMU的特性、功能和結(jié)構(gòu) 71
2.13.3 PMU的寄存器 72
2.13.4 通過PMUKEY寄存器解鎖 72
2.13.5 通過PMUSLEEP寄存器進入休眠模式 73
2.13.6 通過PMUSLEEPI0~PMUSLEEPI7寄存器配置休眠指令序列 73
2.13.7 通過PMUBACKUP系列寄存器保存關(guān)鍵信息 75
2.13.8 通過PMUIE寄存器設(shè)置喚醒條件 75
2.13.9 通過PMUWAKEUPI0~PMUWAKEUPI7寄存器配置喚醒指令序列 76
2.13.10 通過PMUCAUSE寄存器查看喚醒原因 77
第3章 開源蜂鳥E203 MCU硬件開發(fā)平臺 78
3.1 Nuclei FPGA開發(fā)板 78
3.1.1 Nuclei DDR200T開發(fā)板簡介 79
3.1.2 Nuclei DDR200T開發(fā)板的硬件功能模塊 80
3.1.3 蜂鳥E203 MCU的功能引腳分配 88
3.2 蜂鳥JTAG調(diào)試器 89
3.3 總結(jié) 90
第4章 軟件編譯過程 91
4.1 GCC工具鏈 91
4.1.1 GCC工具鏈簡介 91
4.1.2 binutils 92
4.1.3 C運行庫 93
4.1.4 GCC命令行選項 94
4.2 準(zhǔn)備工作 94
4.2.1 安裝Linux 94
4.2.2 準(zhǔn)備HelloWorld程序 94
4.3 編譯過程 95
4.3.1 預(yù)處理 95
4.3.2 編譯 96
4.3.3 匯編 96
4.3.4 鏈接 97
4.3.5 一步到位的編譯 99
4.4 ELF文件 99
4.4.1 ELF文件的種類 99
4.4.2 ELF文件的段 100
4.4.3 查看ELF文件 100
4.4.4 反匯編 101
4.5 嵌入式系統(tǒng)編譯的特殊性 102
4.6 總結(jié) 103
第5章 嵌入式開發(fā)的特點與RISC-V GCC工具鏈 104
5.1 嵌入式系統(tǒng)開發(fā)的特點 104
5.1.1 交叉編譯和遠程調(diào)試 104
5.1.2 移植newlib或newlib-nano作為C運行庫 105
5.1.3 引導(dǎo)程序以及中斷和異常處理 106
5.1.4 嵌入式系統(tǒng)的鏈接腳本 106
5.1.5 減小代碼規(guī)?!?06
5.1.6 支持printf()函數(shù) 107
5.1.7 提供板級支持包 107
5.2 RISC-V GNU工具鏈 108
5.2.1 RISC-V GNU工具鏈的獲取 108
5.2.2 RISC-V GCC工具鏈的“-march”和“-mabi”選項 109
5.2.3 RISC-V GCC工具鏈的“-mcmodel”選項 113
5.2.4 RISC-V GCC工具鏈的預(yù)定義的宏 114
5.2.5 RISC-V GNU工具鏈的使用實例 115
第6章 RISC-V匯編語言程序設(shè)計 116
6.1 匯編語言概述 116
6.2 RISC-V匯編程序概述 117
6.3 RISC-V匯編偽指令 118
6.4 RISC-V匯編程序偽操作 118
6.5 RISC-V匯編程序示例 122
6.5.1 標(biāo)簽 122
6.5.2 宏 122
6.5.3 定義常數(shù)及其別名 122
6.5.4 立即數(shù)賦值 123
6.5.5 標(biāo)簽地址賦值 123
6.5.6 設(shè)置浮點數(shù)舍入模式 124
6.5.7 完整實例 124
6.6 在C/C++程序中嵌入?yún)R編程序 125
6.6.1 GCC內(nèi)聯(lián)匯編簡介 126
6.6.2 GCC內(nèi)聯(lián)匯編的“輸出操作數(shù)”和“輸入操作數(shù)”部分 127
6.6.3 GCC內(nèi)聯(lián)匯編的“可能影響的寄存器或存儲器”部分 128
6.6.4 GCC內(nèi)聯(lián)匯編實例1 128
6.6.5 GCC內(nèi)聯(lián)匯編實例2 129
6.6.6 小結(jié) 130
6.7 在匯編程序中調(diào)用C/C++語言中的函數(shù) 130
6.8 總結(jié) 131
第7章 開源蜂鳥E203 MCU的軟件開發(fā)平臺 132
7.1 HBird SDK概述 132
7.2 HBird SDK的目錄結(jié)構(gòu) 133
7.3 HBird SDK的底層實現(xiàn)解析 134
7.3.1 移植了newlib的樁函數(shù) 134
7.3.2 支持了printf()函數(shù) 135
7.3.3 提供系統(tǒng)鏈接腳本 136
7.3.4 系統(tǒng)啟動引導(dǎo)程序 140
7.3.5 系統(tǒng)中斷和異常處理 145
7.3.6 使用newlib-nano減小代碼規(guī)模 149
7.4 HBird SDK的使用 150
7.4.1 HBird SDK的環(huán)境配置與工具鏈安裝 150
7.4.2 HBird SDK的運行 154
第8章 集成開發(fā)環(huán)境——Nuclei Studio 158
8.1 Nuclei Studio的簡介、下載與啟動 158
8.1.1 Nuclei Studio簡介 158
8.1.2 Nuclei Studio的下載與啟動 158
8.2 使用Nuclei Studio進行蜂鳥E203MCU的開發(fā) 160
第9章 初試蜂鳥E203 MCU開發(fā) 168
9.1 蜂鳥E203 MCU在Nuclei DDR200T開發(fā)板中的實現(xiàn) 168
9.2 蜂鳥調(diào)試器的驅(qū)動程序的安裝和蜂鳥調(diào)試器的設(shè)置 175
9.3 基于HBird SDK運行HelloWorld程序 177
9.3.1 將程序下載至DDR200T開發(fā)板 177
9.3.2 將程序在DDR200T開發(fā)板上運行 178
9.3.3 將程序在DDR200T開發(fā)板上調(diào)試 180
9.4 基于Nuclei Studio運行HelloWorld程序 183
9.4.1 將程序下載至DDR200T開發(fā)板 183
9.4.2 將程序在DDR200T開發(fā)板上運行 186
9.4.3 將程序在DDR200T開發(fā)板上調(diào)試 187
第 10章 Benchmark實驗 190
10.1 實驗?zāi)康摹?90
10.2 實驗準(zhǔn)備 190
10.3 實驗原理 190
10.3.1 Dhrystone簡介 191
10.3.2 Dhrystone示例程序 193
10.3.3 CoreMark簡介 194
10.3.4 CoreMark示例程序 195
10.4 實驗步驟 196
10.4.1 在HBird SDK中運行Dhrystone示例程序 196
10.4.2 在Nuclei Studio中運行Dhrystone示例程序 198
10.4.3 在HBird SDK中運行CoreMark示例程序 200
10.4.4 在Nuclei Studio中運行CoreMark示例程序 202
第 11章 內(nèi)聯(lián)匯編實驗 205
11.1 實驗?zāi)康摹?05
11.2 實驗準(zhǔn)備 205
11.3 實驗原理 205
11.3.1 在C/C++程序中嵌入?yún)R編程序 205
11.3.2 內(nèi)聯(lián)匯編示例程序 206
11.4 實驗步驟 206
11.4.1 在HBird SDK中運行內(nèi)聯(lián)匯編示例程序 206
11.4.2 在Nuclei Studio中運行內(nèi)聯(lián)匯編示例程序 208
第 12章 GPIO實驗 213
12.1 實驗?zāi)康摹?13
12.2 實驗準(zhǔn)備 213
12.3 實驗原理 213
12.3.1 GPIO簡介 213
12.3.2 GPIO示例程序 214
12.4 實驗步驟 215
12.4.1 在HBird SDK中運行GPIO示例程序 215
12.4.2 在Nuclei Studio中運行GPIO示例程序 216
第 13章 PWM實驗 220
13.1 實驗?zāi)康摹?20
13.2 實驗準(zhǔn)備 220
13.3 實驗原理 220
13.3.1 PWM簡介 220
13.3.2 PWM示例程序 221
13.4 實驗步驟 222
13.4.1 在HBird SDK中運行PWM示例程序 222
13.4.2 在Nuclei Studio中運行PWM示例程序 224
第 14章 SPI實驗 227
14.1 實驗?zāi)康摹?27
14.2 實驗準(zhǔn)備 227
14.3 實驗原理 227
14.3.1 SPI簡介 227
14.3.2 SPI示例程序 228
14.4 實驗步驟 229
14.4.1 在HBird SDK中運行SPI示例程序 229
14.4.2 在Nuclei Studio中運行SPI示例程序 231
第 15章 I2C實驗 235
15.1 實驗?zāi)康摹?35
15.2 實驗準(zhǔn)備 235
15.3 實驗原理 235
15.3.1 I2C簡介 235
15.3.2 I2C示例程序 236
15.4 實驗步驟 237
15.4.1 在HBird SDK中運行I2C示例程序 237
15.4.2 在Nuclei Studio中運行I2C示例程序 238
第 16章 中斷相關(guān)實驗 243
16.1 實驗?zāi)康摹?43
16.2 實驗準(zhǔn)備 243
16.3 實驗原理 243
16.3.1 計時器中斷和軟件中斷 243
16.3.2 計時器中斷和軟件中斷示例程序 244
16.3.3 外部中斷 244
16.3.4 外部中斷示例程序 245
16.4 實驗步驟 246
16.4.1 在HBird SDK中運行計時器中斷與軟件中斷示例程序 246
16.4.2 在Nuclei Studio中運行計時器中斷與軟件中斷示例程序 247
16.4.3 在HBird SDK中運行外部中斷示例程序 249
16.4.4 在Nuclei Studio中運行外部中斷示例程序 251
第 17章 FreeRTOS的移植與示例程序運行 253
17.1 RTOS概述 253
17.1.1 RTOS的定義 253
17.1.2 基于RTOS的開發(fā)與裸機開發(fā) 254
17.2 常用的實時操作系統(tǒng) 254
17.3 FreeRTOS概述 255
17.4 FreeRTOS在蜂鳥E203 MCU中的移植 257
17.5 FreeRTOS示例程序的運行 261
17.5.1 FreeRTOS示例程序 261
17.5.2 在HBird SDK中運行FreeRTOS示例程序 261
17.5.3 在Nuclei Studio中運行FreeRTOS示例程序 262
第 18章 獲取更多資源 265
18.1 開源蜂鳥E203 MCU文檔資源 265
18.2 開源蜂鳥E203 MCU嵌入式開發(fā)實驗 265
18.3 開源蜂鳥E203處理器教學(xué)資源 266
18.4 開源蜂鳥E203論壇 266

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號