SiFive 經(jīng)典RISC-V FE310微控制器原理與實(shí)踐
定 價(jià):128 元
叢書(shū)名:RISC-V芯片系列
- 作者:陳宏銘
- 出版時(shí)間:2020/12/1
- ISBN:9787121402036
- 出 版 社:電子工業(yè)出版社
- 中圖法分類(lèi):TP368.1
- 頁(yè)碼:336
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)以讓讀者快速掌握FE310嵌入式微控制器為目的,由淺入深地帶領(lǐng)讀者進(jìn)入RISC-Ⅴ的世界。本書(shū)共分為7章,系統(tǒng)地介紹了SiFive E系列32位RISC-Ⅴ微控制器的體系結(jié)構(gòu)、SiFive E31內(nèi)核、片內(nèi)存儲(chǔ)系統(tǒng)、系統(tǒng)控制模塊、外圍設(shè)備接口的特點(diǎn)與性能;還介紹了SiFive Freedom Studio集成開(kāi)發(fā)環(huán)境,F(xiàn)reedom E-SDK驅(qū)動(dòng)庫(kù)開(kāi)發(fā)及SiFive Learn Inventor開(kāi)發(fā)系統(tǒng),開(kāi)發(fā)系統(tǒng)連接外部紅外與超聲波模塊的拓展應(yīng)用開(kāi)發(fā)實(shí)例,有初步C語(yǔ)言基礎(chǔ)的讀者可輕松上手;還利用最后兩章輔以大量的例程,講解了FreeRTOS與RT-Thread等實(shí)時(shí)多任務(wù)操作系統(tǒng)的原理與應(yīng)用。本書(shū)以最常見(jiàn)的UART接口驅(qū)動(dòng)結(jié)構(gòu)進(jìn)行分析、移植及代碼解說(shuō),對(duì)于想要初步學(xué)習(xí)RTOS系統(tǒng)原理的人來(lái)說(shuō)是一個(gè)不錯(cuò)的選擇。附錄C給出了自制競(jìng)賽用智能車(chē)實(shí)例,達(dá)到軟件開(kāi)發(fā)結(jié)合硬件系統(tǒng)設(shè)計(jì)的效果。 本書(shū)內(nèi)容豐富實(shí)用、層次清晰、敘述詳盡,書(shū)中穿插的實(shí)例程序全部使用C語(yǔ)言編寫(xiě),且在Freedom Studio集成開(kāi)發(fā)環(huán)境上編譯通過(guò),方便讀者教學(xué)與自學(xué),非常適合RISC-Ⅴ嵌入式微控制器的初學(xué)者;還可以作為高等院校計(jì)算機(jī)科學(xué)與技術(shù)、電子信息工程、通信工程、自動(dòng)控制、電氣自動(dòng)化、嵌入式、物聯(lián)網(wǎng)等相關(guān)專(zhuān)業(yè)本科生或研究生,進(jìn)行RISC-Ⅴ微控制器系統(tǒng)與RTOS教學(xué)的嵌入式相關(guān)課程輔助教材;本書(shū)著重培養(yǎng)學(xué)生實(shí)踐應(yīng)用能力,因此還可以作為全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽RISC-Ⅴ子賽題的培訓(xùn)教材,尤其適合參加智能車(chē)競(jìng)賽的同學(xué)參考;同時(shí),還可以作為具有一定C語(yǔ)言知識(shí)和硬件基礎(chǔ)的嵌入式系統(tǒng)開(kāi)發(fā)工程師和研究人員進(jìn)行RISC-Ⅴ微控制器系統(tǒng)開(kāi)發(fā)與應(yīng)用的參考書(shū)。
陳宏銘博士擁有超過(guò)二十年的半導(dǎo)體相關(guān)行業(yè)經(jīng)驗(yàn),目前擔(dān)任上海賽昉科技的技術(shù)市場(chǎng)資深總監(jiān)。特別專(zhuān)注于物聯(lián)網(wǎng)、人工智能、超算與RISC-V處理器等領(lǐng)域的技術(shù)趨勢(shì),負(fù)責(zé)協(xié)助中國(guó)大陸與港澳臺(tái)的客戶(hù)。在加入上海賽昉科技之前,陳博士曾擔(dān)任創(chuàng)意電子的華東區(qū)業(yè)務(wù)總監(jiān)以及智原科技的技術(shù)與市場(chǎng)總監(jiān),負(fù)責(zé)評(píng)估客戶(hù)設(shè)計(jì)與市場(chǎng)規(guī)劃。更早前還擔(dān)任過(guò)明導(dǎo)國(guó)際亞太區(qū)產(chǎn)品專(zhuān)家,益華電腦應(yīng)用工程師與聯(lián)陽(yáng)半導(dǎo)體數(shù)字設(shè)計(jì)工程師。陳博士于臺(tái)灣清華大學(xué)獲得了電機(jī)工學(xué)學(xué)士與微電子專(zhuān)業(yè)工學(xué)碩士學(xué)位,在北京大學(xué)獲得了微電子專(zhuān)業(yè)理學(xué)博士學(xué)位。同時(shí)也擔(dān)任武漢大學(xué)電子信息學(xué)院兼職教授,江南大學(xué)物聯(lián)網(wǎng)工程學(xué)院企業(yè)講師,教授本科生有關(guān)芯片設(shè)計(jì)、制造、封測(cè)與RISC-V處理器相關(guān)的入門(mén)知識(shí)。
第1章 RISC-Ⅴ的歷史和機(jī)遇 001
1.1 RISC-Ⅴ發(fā)明團(tuán)隊(duì)與歷史 001
1.1.1 商業(yè)公司的指令集架構(gòu) 004
1.1.2 RISC-Ⅴ指令集架構(gòu)與其他指令集架構(gòu)的不同點(diǎn) 006
1.1.3 RISC-Ⅴ發(fā)展史及其標(biāo)志性事件 007
1.2 RISC-Ⅴ基金會(huì)成長(zhǎng)的歷史 008
1.2.1 RISC-Ⅴ基金會(huì)的成員介紹 009
1.2.2 RISC-Ⅴ基金會(huì)推動(dòng)20個(gè)重點(diǎn)領(lǐng)域的技術(shù) 011
1.2.3 RISC-Ⅴ基金會(huì)標(biāo)準(zhǔn)制定過(guò)程及工作群組機(jī)制 012
1.2.4 RISC-Ⅴ國(guó)際協(xié)會(huì)的誕生 013
1.3 RISC-Ⅴ的生態(tài)系統(tǒng) 013
1.3.1 RISC-Ⅴ的開(kāi)發(fā)板和生態(tài)系統(tǒng) 014
1.3.2 部分RISC-Ⅴ社區(qū)生態(tài)的支持廠商 018
1.3.3 芯片設(shè)計(jì)界的RISC-Ⅴ產(chǎn)品進(jìn)展 021
1.4 SiFive研發(fā)團(tuán)隊(duì)技術(shù)沿革 023
1.4.1 Rocket Chip SoC生成器 024
1.4.2 使用Chisel語(yǔ)言編寫(xiě)Rocket Chip SoC生成器 025
1.4.3 Rocket標(biāo)量處理器 026
1.4.4 SiFive強(qiáng)力推動(dòng)RISC-Ⅴ生態(tài)發(fā)展 028
第2章 RISC-Ⅴ指令集架構(gòu)介紹 031
2.1 引言 031
2.2 RISC-Ⅴ指令集架構(gòu)特性 031
2.2.1 簡(jiǎn)潔性 032
2.2.2 模塊化 032
2.3 指令長(zhǎng)度編碼和指令格式 034
2.3.1 指令長(zhǎng)度編碼 034
2.3.2 指令格式 035
2.4 寄存器列表 036
2.4.1 通用寄存器 036
2.4.2 控制與狀態(tài)寄存器 037
2.4.3 程序計(jì)數(shù)器 038
2.5 地址空間與尋址模式 038
2.5.1 地址空間 038
2.5.2 小端格式 039
2.5.3 尋址模式 039
2.6 內(nèi)存模型 039
2.7 特權(quán)模式 040
2.8 中斷和異常 041
2.8.1 中斷和異常概述 041
2.8.2 RISC-Ⅴ機(jī)器模式下的中斷架構(gòu) 041
2.8.3 機(jī)器模式下中斷和異常的處理過(guò)程 042
2.9 調(diào)試規(guī)范 043
2.10 RISC-Ⅴ未來(lái)的擴(kuò)展子集 044
2.10.1 B標(biāo)準(zhǔn)擴(kuò)展:位操作 044
2.10.2 H特權(quán)架構(gòu)擴(kuò)展:支持管理程序(Hypervisor) 044
2.10.3 J標(biāo)準(zhǔn)擴(kuò)展:動(dòng)態(tài)翻譯語(yǔ)言 044
2.10.4 L標(biāo)準(zhǔn)擴(kuò)展:十進(jìn)制浮點(diǎn) 045
2.10.5 N標(biāo)準(zhǔn)擴(kuò)展:用戶(hù)態(tài)中斷 045
2.10.6 P標(biāo)準(zhǔn)擴(kuò)展:封裝的單指令多數(shù)據(jù)(Packed-SIMD)指令 045
2.10.7 Q標(biāo)準(zhǔn)擴(kuò)展:四精度浮點(diǎn) 045
2.10.8 V標(biāo)準(zhǔn)擴(kuò)展:基本矢量擴(kuò)展 045
2.11 RISC-Ⅴ指令列表 045
2.11.1 I指令子集 046
2.11.2 M指令子集 051
2.11.3 A指令子集 052
2.11.4 F指令子集 054
2.11.5 D指令子集 055
2.11.6 C指令子集 056
第3章 SiFive FE310-G003微控制器 059
3.1 FE310-G003微控制器概述 060
3.1.1 E31 RISC-Ⅴ內(nèi)核 061
3.1.2 中斷 061
3.1.3 片內(nèi)存儲(chǔ)系統(tǒng) 061
3.1.4 始終上電(AON)模塊 062
3.1.5 通用輸入與輸出 062
3.1.6 通用異步接收器/發(fā)送器 062
3.1.7 硬件串行外設(shè)接口 062
3.1.8 脈沖寬度調(diào)制 062
3.1.9 I2C 062
3.1.10 調(diào)試支持 063
3.2 E31內(nèi)核介紹 063
3.2.1 E31內(nèi)核概述 063
3.2.2 中斷架構(gòu) 068
3.2.3 內(nèi)核本地中斷器(CLINT) 073
3.2.4 調(diào)試支持 074
3.3 E31 FE310-G003內(nèi)存映射 079
3.4 啟動(dòng)程序 081
3.4.1 復(fù)位向量 081
3.4.2 BootLoader 082
3.5 時(shí)鐘生成 083
3.5.1 時(shí)鐘生成概述 083
3.5.2 PRCI地址空間的使用 084
3.5.3 可校準(zhǔn)可編程72MHz振蕩器(HFROSC) 085
3.5.4 外接16MHz晶體振蕩器(HFXOSC) 086
3.5.5 內(nèi)置高頻PLL(HFPLL) 086
3.5.6 PLL輸出分頻器 088
3.5.7 內(nèi)置可編程低頻環(huán)形振蕩器(LFROSC) 089
3.5.8 備用低頻時(shí)鐘(LFALTCLK) 089
3.5.9 時(shí)鐘總結(jié) 090
3.6 電源模式 090
3.6.1 運(yùn)行模式 090
3.6.2 等待模式 090
3.6.3 睡眠模式 091
3.7 平臺(tái)級(jí)中斷控制器(PLIC) 091
3.7.1 內(nèi)存映射 091
3.7.2 中斷源 092
3.7.3 中斷優(yōu)先級(jí) 093
3.7.4 中斷未決位 093
3.7.5 中斷使能 094
3.7.6 優(yōu)先級(jí)閾值 095
3.7.7 中斷聲明流程 095
3.7.8 中斷完成 096
3.8 一次性可編程存儲(chǔ)器(OTP)外設(shè) 096
3.8.1 內(nèi)存映射 096
3.8.2 可編程I/O鎖定寄存器(otp_lock) 097
3.8.3 可編程I/O序列 097
3.8.4 讀序列控制寄存器(otp_rsctrl) 097
3.8.5 OTP編程警告 098
3.8.6 OTP編程過(guò)程 098
3.9 始終上電(AON)電源域 099
3.9.1 AON電源 100
3.9.2 AON時(shí)鐘 100
3.9.3 AON復(fù)位單元 100
3.9.4 上電復(fù)位電路 100
3.9.5 外部復(fù)位電路 100
3.9.6 復(fù)位原因 101
3.9.7 看門(mén)狗定時(shí)器(WDT) 101
3.9.8 實(shí)時(shí)時(shí)鐘(RTC) 101
3.9.9 備份寄存器 101
3.9.10 電源管理單元(PMU) 101
3.9.11 AON內(nèi)存映射 101
3.10 看門(mén)狗定時(shí)器(WDT) 103
3.10.1 看門(mén)狗計(jì)數(shù)器(wdogcount) 104
3.10.2 看門(mén)狗時(shí)鐘選擇 104
3.10.3 看門(mén)狗配置寄存器(wdogcfg) 104
3.10.4 看門(mén)狗比較器0(wdogcmp0) 105
3.10.5 看門(mén)狗鍵值寄存器(wdogkey) 105
3.10.6 喂狗寄存器(wdogfeed) 105
3.10.7 看門(mén)狗配置 106
3.10.8 看門(mén)狗復(fù)位 106
3.10.9 看門(mén)狗中斷(wdogip0) 106
3.11 電源管理單元(PMU) 106
3.11.1 PMU概述 106
3.11.2 內(nèi)存映射 107
3.11.3 PMU鍵值寄存器(pmukey) 108
3.11.4 PMU編程 108
3.11.5 初始化睡眠序列寄存器(pmusleep) 109
3.11.6 喚醒信號(hào)調(diào)理 109
3.11.7 PMU中斷使能寄存器(pmuie)和喚醒原因寄存器(pmucause) 110
3.12 實(shí)時(shí)時(shí)鐘(RTC) 111
3.12.1 RTC計(jì)數(shù)器(rtccounthi/rtccountlo) 111
3.12.2 RTC配置寄存器(rtccfg) 112
3.12.3 RTC比較器(rtccmp) 112
3.13 通用輸入輸出控制器(GPIO) 112
3.13.1 FE310-G003微控制器中的GPIO實(shí)例 114
3.13.2 內(nèi)存映射 114
3.13.3 輸入/輸出值 114
3.13.4 中斷 115
3.13.5 內(nèi)部上拉 115
3.13.6 驅(qū)動(dòng)強(qiáng)度 115
3.13.7 輸出反轉(zhuǎn) 115
3.13.8 硬件I/O功能(IOF) 115
3.14 通用異步收發(fā)機(jī)(UART) 116
3.14.1 UART概述 117
3.14.2 FE310-G003微控制器中的UART實(shí)例 117
3.14.3 內(nèi)存映射 117
3.14.4 發(fā)送數(shù)據(jù)寄存器(txdata) 118
3.14.5 接收數(shù)據(jù)寄存器(rxdata) 118
3.14.6 發(fā)送控制寄存器(txctrl) 118
3.14.7 接收控制寄存器(rxctrl) 119
3.14.8 中斷寄存器(ip和ie) 120
3.14.9 波特率除數(shù)寄存器(div) 120
3.15 串行外圍接口(SPI) 121
3.15.1 SPI概述 122
3.15.2 FE310-G003微控制器中的SPI實(shí)例 122
3.15.3 SPI內(nèi)存映射 123
3.15.4 串行時(shí)鐘除數(shù)寄存器(sckdiv) 124
3.15.5 串行時(shí)鐘模式寄存器(sckmode) 124
3.15.6 芯片選擇ID寄存器(csid) 125
3.15.7 芯片選擇默認(rèn)寄存器(csdef) 125
3.15.8 芯片選擇模式寄存器(csmode) 125
3.15.9 延遲控制寄存器(delay0和delay1) 126
3.15.10 幀格式寄存器(fmt) 127
3.15.11 發(fā)送數(shù)據(jù)寄存器(txdata) 128
3.15.12 接收數(shù)據(jù)寄存器(rxdata) 128
3.15.13 發(fā)送水印寄存器(txmark) 129
3.15.14 接收水印寄存器(rxmark) 129
3.15.15 SPI中斷寄存器(ie和ip) 129
3.15.16 SPI閃存接口控制寄存器(fctrl) 130
3.15.17 SPI閃存指令格式寄存器(ffmt) 131
3.16 脈寬調(diào)制器(PWM) 131
3.16.1 PWM概述 131
3.16.2 FE310-G003微控制器中的PWM實(shí)例 132
3.16.3 PWM內(nèi)存映射 132
3.16.4 PWM計(jì)數(shù)器(pwmcount) 133
3.16.5 PWM配置寄存器(pwmcfg) 133
3.16.6 刻度化PWM計(jì)數(shù)器(pwms) 135
3.16.7 PWM比較器(pwmcmp0~pwmcmp3) 135
3.16.8 去毛刺和黏性電路 136
3.16.9 產(chǎn)生左向或右向的PWM波形 137
3.16.10 產(chǎn)生中心對(duì)齊(相位校正)PWM波形 137
3.16.11 使用組合生成任意的PWM波形 138
3.16.12 生成單次波形 138
3.16.13 PWM中斷 139
3.17 集成電路(I2C)主設(shè)備接口 139
3.18 調(diào)試接口 139
3.18.1 JTAG TAPC狀態(tài)機(jī) 139
3.18.2 復(fù)位JTAG邏輯 139
3.18.3 JTAG計(jì)時(shí)器 140
3.18.4 JTAG標(biāo)準(zhǔn)說(shuō)明 140
3.18.5 JTAG調(diào)試命令 140
第4章 使用Freedom E-SDK進(jìn)行軟件開(kāi)發(fā) 141
4.1 SiFive Freedom Studio集成開(kāi)發(fā)環(huán)境安裝與介紹 141
4.1.1 Freedom Studio簡(jiǎn)介與安裝 141
4.1.2 啟動(dòng)Freedom Studio 144
4.1.3 創(chuàng)建sifive-welcome項(xiàng)目 145
4.1.4 配置sifive-welcome項(xiàng)目 146
4.1.5 編譯sifive-welcome項(xiàng)目 148
4.1.6 運(yùn)行sifive-welcome項(xiàng)目 149
4.1.7 調(diào)試程序 154
4.2 Hello World實(shí)例 156
4.2.1 新建Freedom工程 156
4.2.2 編譯生成可執(zhí)行文件 157
4.2.3 連接SiFive Learn Inventor開(kāi)發(fā)系統(tǒng) 158
4.2.4 修改J-LINK配置 158
4.2.5 程序下載及調(diào)試 158
4.2.6 使用Freedom Studio在線調(diào)試程序 160
4.3 Dhrystone基準(zhǔn)程序介紹 160
4.3.1 Dhrystone基準(zhǔn)程序功能介紹 161
4.3.2 Dhrystone基準(zhǔn)程序代碼結(jié)構(gòu) 163
4.3.3 Dhrystone基準(zhǔn)程序存在的問(wèn)題 164
4.3.4 在SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)上運(yùn)行Dhrystone基準(zhǔn)程序 164
4.4 CoreMark基準(zhǔn)程序介紹 166
4.4.1 CoreMark基準(zhǔn)程序功能介紹 166
4.4.2 CoreMark基準(zhǔn)程序代碼結(jié)構(gòu) 168
4.4.3 在SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)上運(yùn)行CoreMark基準(zhǔn)程序 168
4.4.4 CoreMark與Dhrystone兩種基準(zhǔn)程序的比較 169
第5章 FreeRTOS實(shí)時(shí)多任務(wù)操作系統(tǒng)原理與應(yīng)用 171
5.1 嵌入式操作系統(tǒng) 171
5.1.1 為什么使用操作系統(tǒng) 172
5.1.2 RTOS 172
5.2 FreeRTOS—小型實(shí)時(shí)操作系統(tǒng)內(nèi)核 173
5.2.1 為什么選擇FreeRTOS 174
5.2.2 FreeRTOS內(nèi)核基礎(chǔ)知識(shí)介紹 175
5.2.3 關(guān)于FreeRTOS的軟件授權(quán) 177
5.3 FreeRTOS的RISC-Ⅴ平臺(tái)移植 178
5.3.1 FreeRTOS的移植 178
5.3.2 FreeRTOS內(nèi)核源碼結(jié)構(gòu) 179
5.3.3 FreeRTOSConfig.h內(nèi)核配置頭文件 180
5.3.4 portmacro.h宏定義文件 182
5.3.5 port.c文件 183
5.3.6 portASM.s匯編實(shí)現(xiàn)文件 184
5.4 FreeRTOS的UART驅(qū)動(dòng)結(jié)構(gòu)分析、移植及應(yīng)用 186
5.4.1 UART簡(jiǎn)介 186
5.4.2 UART驅(qū)動(dòng)結(jié)構(gòu)分析 186
5.4.3 FreeRTOS下的UART發(fā)送與接收 187
5.4.4 基于FreeRTOS的UART其他功能 189
5.4.5 FreeRTOS下的UART移植與應(yīng)用 189
第6章 RT-Thread實(shí)時(shí)操作系統(tǒng)原理與應(yīng)用 190
6.1 RT-Thread Nano介紹 190
6.1.1 RT-Thread簡(jiǎn)介 190
6.1.2 RT-Thread Nano軟件結(jié)構(gòu) 191
6.1.3 RT-Thread Nano特性 192
6.2 RT-Thread內(nèi)核移植原理 193
6.2.1 RT-Thread目錄結(jié)構(gòu) 193
6.2.2 RT-Thread CPU架構(gòu)移植 193
6.2.3 RT-Thread板級(jí)支持移植 195
6.3 移植RT-Thread到FE310微控制器 195
6.3.1 構(gòu)建rtthread-metal包 196
6.3.2 構(gòu)建板級(jí)支持文件 198
6.3.3 裁剪RT-Thread 201
6.4 使用Freedom Studio開(kāi)發(fā)RT-Thread 202
6.4.1 rtthread-metal包 203
6.4.2 example-rtthread例程 203
6.4.3 在Freedom Studio中導(dǎo)入example-rtthread 205
6.5 移植FinSH組件 206
6.5.1 添加串口控制臺(tái) 206
6.5.2 移植FinSH組件 208
6.5.3 修改LD連接文件 208
6.6 RT-Tread的UART驅(qū)動(dòng)結(jié)構(gòu)分析、移植及應(yīng)用 209
6.6.1 RT-Tread外設(shè)驅(qū)動(dòng) 210
6.6.2 UART驅(qū)動(dòng)結(jié)構(gòu)分析 210
6.6.3 UART的移植與應(yīng)用 217
第7章 SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)應(yīng)用開(kāi)發(fā)實(shí)例 219
7.1 SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)組成 219
7.1.1 SPI閃存 219
7.1.2 I/O擴(kuò)展連接器 220
7.1.3 無(wú)線連接 221
7.1.4 連接USB接口 222
7.2 在SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)點(diǎn)亮LED燈 223
7.2.1 構(gòu)件化的設(shè)計(jì)思想 223
7.2.2 點(diǎn)亮LED燈 224
7.3 在SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)使用按鍵 228
7.3.1 中斷的基本概念 228
7.3.2 中斷服務(wù)程序設(shè)計(jì) 229
7.3.3 讓按鍵控制LED燈 230
7.4 紅外循跡小車(chē) 231
7.4.1 紅外傳感器 231
7.4.2 其他參考實(shí)例 235
7.4.3 應(yīng)用實(shí)例 236
7.4.4 PID控制算法介紹 238
7.5 超聲波避障小車(chē) 242
7.5.1 超聲波測(cè)距原理 242
7.5.2 溫度對(duì)測(cè)距的影響 242
7.5.3 超聲波傳感器介紹及使用 242
7.5.4 軟件程序設(shè)計(jì) 243
附錄A Amazon FreeRTOS認(rèn)證 253
A.1 搭建測(cè)試項(xiàng)目 253
A.1.1 下載測(cè)試代碼 253
A.1.2 測(cè)試項(xiàng)目設(shè)置 254
A.1.3 移植功能庫(kù)準(zhǔn)備 257
A.2 串口輸出 258
A.2.1 準(zhǔn)備內(nèi)容 258
A.2.2 操作步驟 258
A.3 FreeRTOS內(nèi)核移植 259
A.3.1 準(zhǔn)備內(nèi)容 259
A.3.2 操作步驟 259
A.4 藍(lán)牙低功耗功能 260
A.4.1 準(zhǔn)備內(nèi)容 261
A.4.2 操作步驟 261
附錄B Amazon FreeRTOS移植 265
B.1 系統(tǒng)要求 265
B.1.1 硬件要求 265
B.1.2 網(wǎng)絡(luò)連接要求 265
B.2 下載Amazon FreeRTOS進(jìn)行移植 266
B.2.1 下載Amazon FreeRTOS 266
B.2.2 從GitHub克隆Amazon FreeRTOS倉(cāng)庫(kù) 266
B.3 設(shè)置用于移植的Amazon FreeRTOS源代碼 266
B.3.1 配置已下載的Amazon FreeRTOS數(shù)據(jù)資料 267
B.3.2 設(shè)置用于測(cè)試的Amazon FreeRTOS源代碼 267
B.4 移植Amazon FreeRTOS庫(kù) 270
B.4.1 執(zhí)行宏configPRINT_STRING() 272
B.4.2 配置FreeRTOS內(nèi)核端口 272
B.4.3 移植WiFi庫(kù) 273
B.4.4 移植安全套接字庫(kù) 274
B.4.5 移植PKCS #11庫(kù) 276
B.4.6 移植TLS庫(kù) 277
B.4.7 配置用于測(cè)試的MQTT庫(kù) 279
B.4.8 配置用于測(cè)試的HTTPS客戶(hù)端庫(kù) 279
B.4.9 移植OTA庫(kù) 280
B.4.10 移植藍(lán)牙低功耗庫(kù) 281
附錄C 自制競(jìng)賽用智能車(chē) 283
C.1 機(jī)械結(jié)構(gòu)設(shè)計(jì) 283
C.1.1 底盤(pán)設(shè)計(jì) 284
C.1.2 驅(qū)動(dòng)設(shè)計(jì) 284
C.1.3 電源布局 284
C.1.4 SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)立式插槽布局 285
C.2 電子電路設(shè)計(jì) 285
C.2.1 電源穩(wěn)壓電路 285
C.2.2 電動(dòng)機(jī)驅(qū)動(dòng)電路 287
C.2.3 感光電路 287
C.2.4 外圍接口電路 288
C.3 控制程序設(shè)計(jì) 291
C.3.1 驅(qū)動(dòng)程序設(shè)計(jì) 291
C.3.2 控制算法設(shè)計(jì) 294
附錄D SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)常見(jiàn)問(wèn)題解答 297
D.1 在Ubuntu上的例程 297
D.2 SEGGER J-Link OB調(diào)試器未接入 299
D.2.1 SEGGER J-Link OB調(diào)試器配置 299
D.2.2 控制臺(tái)配置 300
D.3 恢復(fù)SiFive Learn Inventor開(kāi)發(fā)系統(tǒng)出廠設(shè)置 300
D.4 無(wú)法刻錄程序 301
D.5 恢復(fù)開(kāi)發(fā)系統(tǒng)出廠設(shè)置后仍無(wú)法刻錄程序 301
D.6 調(diào)試參考信息 303
D.7 一般信息 303
參考文獻(xiàn) 304