-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
4/6 新書到! 3/30 新書到! 3/23 新書到! 3/17 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

SiFive 經典RISC-V FE310微控制器原理與實踐

( 簡體 字)
作者:陳宏銘類別:1. -> 電腦組織與體系結構 -> 嵌入式系統
譯者:
出版社:電子工業出版社SiFive 經典RISC-V FE310微控制器原理與實踐 3dWoo書號: 53875
詢問書籍請說出此書號!

有庫存
NT定價: 640
折扣價: 512

出版日:12/1/2020
頁數:336
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121402036
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
作者序:

譯者序:

前言:

從PC時代的x86到智能手機時代的ARM,指令集架構(ISA)始終處于核心地位,所有的處理器設計、軟硬件生態圍繞ISA層層展開。那么接下來AIoT時代的主角又是誰呢?或許RISC-Ⅴ準備好了。
從一個ISA的角度來說,RISC-Ⅴ在技術上是先進的。因為RISC-Ⅴ站在前人的肩膀上,汲取了幾十年來計算機體系結構發展的精華,相當于從一張白紙開始輕裝上陣而又沒有諸如向前兼容的負擔。除此之外,RISC-Ⅴ的發展潛力,更是源于它兼有通用和開放的特點,誰以開放的心態擁抱新時代,誰就能夠站在時代舞臺的中心而稱霸。研發周期短、成本低、個性化是AIoT時代處理器的特點,RISC-Ⅴ架構憑借其模塊化的ISA和可擴展的指令集特性很好地滿足了AIoT時代的需求,同時開源的RISC-Ⅴ讓眾多特色小型初創公司能以更低的成本進入AIoT領域。
目前,RISC-Ⅴ基金會已發展了300多個會員,除了Google和高通等大公司外,還有不少圍繞RISC-Ⅴ生態而生存的初創公司,SiFive等公司都是十分活躍的RISC-Ⅴ推動者。西部數據已經將RISC-Ⅴ應用于自家存儲設備之中,Microsemi發布了嵌入RISC-Ⅴ處理器的FPGA開發板,SEGGER、勞特巴赫、IAR等著名嵌入式軟件和工具公司都開始支持RISC-Ⅴ。種種跡象表明,RISC-Ⅴ是一顆正在冉冉升起的新星。
隨著RISC-Ⅴ的發展,越來越多的業界工程師、教師、學者、愛好者前赴后繼,RISC-Ⅴ的芯片、開發板、調試器、OS、培訓、教材和社區等一系列生態環境都是不可缺少的。在目前國內RISC-Ⅴ的熱潮之下,賽昉科技及陳宏銘博士一直致力于RISC-Ⅴ架構和RISC-Ⅴ知識的普及,陳博士的《SiFive經典RISC-Ⅴ FE310微控制器原理與實踐》一書詳細闡述了RISC-Ⅴ指令集的發展歷程、FE310-G003微控制器、FreeRTOS與RT-Thread RTOS設計及SiFive Learn Inventor應用開發實例等方面的知識,為系統軟硬件設計人員提供了豐富的資料。本書為讀者提供了RISC-Ⅴ嵌入式開發的相關內容,書中以FE310 MCU為基礎,從構件化的軟件設計思想到嵌入式操作系統的應用,定能成為RISC-Ⅴ軟件開發人員的“紅寶書”。
我相信RISC-Ⅴ這個年輕而又充滿朝氣的新興架構能在國內枝繁葉茂,感謝陳博士為RISC-Ⅴ的普及所做出的貢獻,希望本書能夠為廣大RISC-Ⅴ愛好者帶去知識的源泉,為推動國內RISC-Ⅴ領域的發展和中國集成電路行業的發展貢獻一分力量。

—復旦大學微電子學院院長
張衛
內容簡介:

本書以讓讀者快速掌握FE310嵌入式微控制器為目的,由淺入深地帶領讀者進入RISC-Ⅴ的世界。本書共分為7章,系統地介紹了SiFive E系列32位RISC-Ⅴ微控制器的體系結構、SiFive E31內核、片內存儲系統、系統控制模塊、外圍設備接口的特點與性能;還介紹了SiFive Freedom Studio集成開發環境,Freedom E-SDK驅動庫開發及SiFive Learn Inventor開發系統,開發系統連接外部紅外與超聲波模塊的拓展應用開發實例,有初步C語言基礎的讀者可輕松上手;還利用最后兩章輔以大量的例程,講解了FreeRTOS與RT-Thread等實時多任務操作系統的原理與應用。本書以最常見的UART接口驅動結構進行分析、移植及代碼解說,對于想要初步學習RTOS系統原理的人來說是一個不錯的選擇。附錄C給出了自制競賽用智能車實例,達到軟件開發結合硬件系統設計的效果。 本書內容豐富實用、層次清晰、敘述詳盡,書中穿插的實例程序全部使用C語言編寫,且在Freedom Studio集成開發環境上編譯通過,方便讀者教學與自學,非常適合RISC-Ⅴ嵌入式微控制器的初學者;還可以作為高等院校計算機科學與技術、電子信息工程、通信工程、自動控制、電氣自動化、嵌入式、物聯網等相關專業本科生或研究生,進行RISC-Ⅴ微控制器系統與RTOS教學的嵌入式相關課程輔助教材;本書著重培養學生實踐應用能力,因此還可以作為全國大學生電子設計競賽RISC-Ⅴ子賽題的培訓教材,尤其適合參加智能車競賽的同學參考;同時,還可以作為具有一定C語言知識和硬件基礎的嵌入式系統開發工程師和研究人員進行RISC-Ⅴ微控制器系統開發與應用的參考書。
目錄:

第1章 RISC-Ⅴ的歷史和機遇 001
1.1 RISC-Ⅴ發明團隊與歷史 001
1.1.1 商業公司的指令集架構 004
1.1.2 RISC-Ⅴ指令集架構與其他指令集架構的不同點 006
1.1.3 RISC-Ⅴ發展史及其標志性事件 007
1.2 RISC-Ⅴ基金會成長的歷史 008
1.2.1 RISC-Ⅴ基金會的成員介紹 009
1.2.2 RISC-Ⅴ基金會推動20個重點領域的技術 011
1.2.3 RISC-Ⅴ基金會標準制定過程及工作群組機制 012
1.2.4 RISC-Ⅴ國際協會的誕生 013
1.3 RISC-Ⅴ的生態系統 013
1.3.1 RISC-Ⅴ的開發板和生態系統 014
1.3.2 部分RISC-Ⅴ社區生態的支持廠商 018
1.3.3 芯片設計界的RISC-Ⅴ產品進展 021
1.4 SiFive研發團隊技術沿革 023
1.4.1 Rocket Chip SoC生成器 024
1.4.2 使用Chisel語言編寫Rocket Chip SoC生成器 025
1.4.3 Rocket標量處理器 026
1.4.4 SiFive強力推動RISC-Ⅴ生態發展 028
第2章 RISC-Ⅴ指令集架構介紹 031
2.1 引言 031
2.2 RISC-Ⅴ指令集架構特性 031
2.2.1 簡潔性 032
2.2.2 模塊化 032
2.3 指令長度編碼和指令格式 034
2.3.1 指令長度編碼 034
2.3.2 指令格式 035
2.4 寄存器列表 036
2.4.1 通用寄存器 036
2.4.2 控制與狀態寄存器 037
2.4.3 程序計數器 038
2.5 地址空間與尋址模式 038
2.5.1 地址空間 038
2.5.2 小端格式 039
2.5.3 尋址模式 039
2.6 內存模型 039
2.7 特權模式 040
2.8 中斷和異常 041
2.8.1 中斷和異常概述 041
2.8.2 RISC-Ⅴ機器模式下的中斷架構 041
2.8.3 機器模式下中斷和異常的處理過程 042
2.9 調試規范 043
2.10 RISC-Ⅴ未來的擴展子集 044
2.10.1 B標準擴展:位操作 044
2.10.2 H特權架構擴展:支持管理程序(Hypervisor) 044
2.10.3 J標準擴展:動態翻譯語言 044
2.10.4 L標準擴展:十進制浮點 045
2.10.5 N標準擴展:用戶態中斷 045
2.10.6 P標準擴展:封裝的單指令多數據(Packed-SIMD)指令 045
2.10.7 Q標準擴展:四精度浮點 045
2.10.8 V標準擴展:基本矢量擴展 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-Ⅴ內核 061
3.1.2 中斷 061
3.1.3 片內存儲系統 061
3.1.4 始終上電(AON)模塊 062
3.1.5 通用輸入與輸出 062
3.1.6 通用異步接收器/發送器 062
3.1.7 硬件串行外設接口 062
3.1.8 脈沖寬度調制 062
3.1.9 I2C 062
3.1.10 調試支持 063
3.2 E31內核介紹 063
3.2.1 E31內核概述 063
3.2.2 中斷架構 068
3.2.3 內核本地中斷器(CLINT) 073
3.2.4 調試支持 074
3.3 E31 FE310-G003內存映射 079
3.4 啟動程序 081
3.4.1 復位向量 081
3.4.2 BootLoader 082
3.5 時鐘生成 083
3.5.1 時鐘生成概述 083
3.5.2 PRCI地址空間的使用 084
3.5.3 可校準可編程72MHz振蕩器(HFROSC) 085
3.5.4 外接16MHz晶體振蕩器(HFXOSC) 086
3.5.5 內置高頻PLL(HFPLL) 086
3.5.6 PLL輸出分頻器 088
3.5.7 內置可編程低頻環形振蕩器(LFROSC) 089
3.5.8 備用低頻時鐘(LFALTCLK) 089
3.5.9 時鐘總結 090
3.6 電源模式 090
3.6.1 運行模式 090
3.6.2 等待模式 090
3.6.3 睡眠模式 091
3.7 平臺級中斷控制器(PLIC) 091
3.7.1 內存映射 091
3.7.2 中斷源 092
3.7.3 中斷優先級 093
3.7.4 中斷未決位 093
3.7.5 中斷使能 094
3.7.6 優先級閾值 095
3.7.7 中斷聲明流程 095
3.7.8 中斷完成 096
3.8 一次性可編程存儲器(OTP)外設 096
3.8.1 內存映射 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編程過程 098
3.9 始終上電(AON)電源域 099
3.9.1 AON電源 100
3.9.2 AON時鐘 100
3.9.3 AON復位單元 100
3.9.4 上電復位電路 100
3.9.5 外部復位電路 100
3.9.6 復位原因 101
3.9.7 看門狗定時器(WDT) 101
3.9.8 實時時鐘(RTC) 101
3.9.9 備份寄存器 101
3.9.10 電源管理單元(PMU) 101
3.9.11 AON內存映射 101
3.10 看門狗定時器(WDT) 103
3.10.1 看門狗計數器(wdogcount) 104
3.10.2 看門狗時鐘選擇 104
3.10.3 看門狗配置寄存器(wdogcfg) 104
3.10.4 看門狗比較器0(wdogcmp0) 105
3.10.5 看門狗鍵值寄存器(wdogkey) 105
3.10.6 喂狗寄存器(wdogfeed) 105
3.10.7 看門狗配置 106
3.10.8 看門狗復位 106
3.10.9 看門狗中斷(wdogip0) 106
3.11 電源管理單元(PMU) 106
3.11.1 PMU概述 106
3.11.2 內存映射 107
3.11.3 PMU鍵值寄存器(pmukey) 108
3.11.4 PMU編程 108
3.11.5 初始化睡眠序列寄存器(pmusleep) 109
3.11.6 喚醒信號調理 109
3.11.7 PMU中斷使能寄存器(pmuie)和喚醒原因寄存器(pmucause) 110
3.12 實時時鐘(RTC) 111
3.12.1 RTC計數器(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實例 114
3.13.2 內存映射 114
3.13.3 輸入/輸出值 114
3.13.4 中斷 115
3.13.5 內部上拉 115
3.13.6 驅動強度 115
3.13.7 輸出反轉 115
3.13.8 硬件I/O功能(IOF) 115
3.14 通用異步收發機(UART) 116
3.14.1 UART概述 117
3.14.2 FE310-G003微控制器中的UART實例 117
3.14.3 內存映射 117
3.14.4 發送數據寄存器(txdata) 118
3.14.5 接收數據寄存器(rxdata) 118
3.14.6 發送控制寄存器(txctrl) 118
3.14.7 接收控制寄存器(rxctrl) 119
3.14.8 中斷寄存器(ip和ie) 120
3.14.9 波特率除數寄存器(div) 120
3.15 串行外圍接口(SPI) 121
3.15.1 SPI概述 122
3.15.2 FE310-G003微控制器中的SPI實例 122
3.15.3 SPI內存映射 123
3.15.4 串行時鐘除數寄存器(sckdiv) 124
3.15.5 串行時鐘模式寄存器(sckmode) 124
3.15.6 芯片選擇ID寄存器(csid) 125
3.15.7 芯片選擇默認寄存器(csdef) 125
3.15.8 芯片選擇模式寄存器(csmode) 125
3.15.9 延遲控制寄存器(delay0和delay1) 126
3.15.10 幀格式寄存器(fmt) 127
3.15.11 發送數據寄存器(txdata) 128
3.15.12 接收數據寄存器(rxdata) 128
3.15.13 發送水印寄存器(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 脈寬調制器(PWM) 131
3.16.1 PWM概述 131
3.16.2 FE310-G003微控制器中的PWM實例 132
3.16.3 PWM內存映射 132
3.16.4 PWM計數器(pwmcount) 133
3.16.5 PWM配置寄存器(pwmcfg) 133
3.16.6 刻度化PWM計數器(pwms) 135
3.16.7 PWM比較器(pwmcmp0∼pwmcmp3) 135
3.16.8 去毛刺和黏性電路 136
3.16.9 產生左向或右向的PWM波形 137
3.16.10 產生中心對齊(相位校正)PWM波形 137
3.16.11 使用組合生成任意的PWM波形 138
3.16.12 生成單次波形 138
3.16.13 PWM中斷 139
3.17 集成電路(I2C)主設備接口 139
3.18 調試接口 139
3.18.1 JTAG TAPC狀態機 139
3.18.2 復位JTAG邏輯 139
3.18.3 JTAG計時器 140
3.18.4 JTAG標準說明 140
3.18.5 JTAG調試命令 140
第4章 使用Freedom E-SDK進行軟件開發 141
4.1 SiFive Freedom Studio集成開發環境安裝與介紹 141
4.1.1 Freedom Studio簡介與安裝 141
4.1.2 啟動Freedom Studio 144
4.1.3 創建sifive-welcome項目 145
4.1.4 配置sifive-welcome項目 146
4.1.5 編譯sifive-welcome項目 148
4.1.6 運行sifive-welcome項目 149
4.1.7 調試程序 154
4.2 Hello World實例 156
4.2.1 新建Freedom工程 156
4.2.2 編譯生成可執行文件 157
4.2.3 連接SiFive Learn Inventor開發系統 158
4.2.4 修改J-LINK配置 158
4.2.5 程序下載及調試 158
4.2.6 使用Freedom Studio在線調試程序 160
4.3 Dhrystone基準程序介紹 160
4.3.1 Dhrystone基準程序功能介紹 161
4.3.2 Dhrystone基準程序代碼結構 163
4.3.3 Dhrystone基準程序存在的問題 164
4.3.4 在SiFive Learn Inventor開發系統上運行Dhrystone基準程序 164
4.4 CoreMark基準程序介紹 166
4.4.1 CoreMark基準程序功能介紹 166
4.4.2 CoreMark基準程序代碼結構 168
4.4.3 在SiFive Learn Inventor開發系統上運行CoreMark基準程序 168
4.4.4 CoreMark與Dhrystone兩種基準程序的比較 169
第5章 FreeRTOS實時多任務操作系統原理與應用 171
5.1 嵌入式操作系統 171
5.1.1 為什么使用操作系統 172
5.1.2 RTOS 172
5.2 FreeRTOS—小型實時操作系統內核 173
5.2.1 為什么選擇FreeRTOS 174
5.2.2 FreeRTOS內核基礎知識介紹 175
5.2.3 關于FreeRTOS的軟件授權 177
5.3 FreeRTOS的RISC-Ⅴ平臺移植 178
5.3.1 FreeRTOS的移植 178
5.3.2 FreeRTOS內核源碼結構 179
5.3.3 FreeRTOSConfig.h內核配置頭文件 180
5.3.4 portmacro.h宏定義文件 182
5.3.5 port.c文件 183
5.3.6 portASM.s匯編實現文件 184
5.4 FreeRTOS的UART驅動結構分析、移植及應用 186
5.4.1 UART簡介 186
5.4.2 UART驅動結構分析 186
5.4.3 FreeRTOS下的UART發送與接收 187
5.4.4 基于FreeRTOS的UART其他功能 189
5.4.5 FreeRTOS下的UART移植與應用 189
第6章 RT-Thread實時操作系統原理與應用 190
6.1 RT-Thread Nano介紹 190
6.1.1 RT-Thread簡介 190
6.1.2 RT-Thread Nano軟件結構 191
6.1.3 RT-Thread Nano特性 192
6.2 RT-Thread內核移植原理 193
6.2.1 RT-Thread目錄結構 193
6.2.2 RT-Thread CPU架構移植 193
6.2.3 RT-Thread板級支持移植 195
6.3 移植RT-Thread到FE310微控制器 195
6.3.1 構建rtthread-metal包 196
6.3.2 構建板級支持文件 198
6.3.3 裁剪RT-Thread 201
6.4 使用Freedom Studio開發RT-Thread 202
6.4.1 rtthread-metal包 203
6.4.2 example-rtthread例程 203
6.4.3 在Freedom Studio中導入example-rtthread 205
6.5 移植FinSH組件 206
6.5.1 添加串口控制臺 206
6.5.2 移植FinSH組件 208
6.5.3 修改LD連接文件 208
6.6 RT-Tread的UART驅動結構分析、移植及應用 209
6.6.1 RT-Tread外設驅動 210
6.6.2 UART驅動結構分析 210
6.6.3 UART的移植與應用 217
第7章 SiFive Learn Inventor開發系統應用開發實例 219
7.1 SiFive Learn Inventor開發系統組成 219
7.1.1 SPI閃存 219
7.1.2 I/O擴展連接器 220
7.1.3 無線連接 221
7.1.4 連接USB接口 222
7.2 在SiFive Learn Inventor開發系統點亮LED燈 223
7.2.1 構件化的設計思想 223
7.2.2 點亮LED燈 224
7.3 在SiFive Learn Inventor開發系統使用按鍵 228
7.3.1 中斷的基本概念 228
7.3.2 中斷服務程序設計 229
7.3.3 讓按鍵控制LED燈 230
7.4 紅外循跡小車 231
7.4.1 紅外傳感器 231
7.4.2 其他參考實例 235
7.4.3 應用實例 236
7.4.4 PID控制算法介紹 238
7.5 超聲波避障小車 242
7.5.1 超聲波測距原理 242
7.5.2 溫度對測距的影響 242
7.5.3 超聲波傳感器介紹及使用 242
7.5.4 軟件程序設計 243
附錄A Amazon FreeRTOS認證 253
A.1 搭建測試項目 253
A.1.1 下載測試代碼 253
A.1.2 測試項目設置 254
A.1.3 移植功能庫準備 257
A.2 串口輸出 258
A.2.1 準備內容 258
A.2.2 操作步驟 258
A.3 FreeRTOS內核移植 259
A.3.1 準備內容 259
A.3.2 操作步驟 259
A.4 藍牙低功耗功能 260
A.4.1 準備內容 261
A.4.2 操作步驟 261
附錄B Amazon FreeRTOS移植 265
B.1 系統要求 265
B.1.1 硬件要求 265
B.1.2 網絡連接要求 265
B.2 下載Amazon FreeRTOS進行移植 266
B.2.1 下載Amazon FreeRTOS 266
B.2.2 從GitHub克隆Amazon FreeRTOS倉庫 266
B.3 設置用于移植的Amazon FreeRTOS源代碼 266
B.3.1 配置已下載的Amazon FreeRTOS數據資料 267
B.3.2 設置用于測試的Amazon FreeRTOS源代碼 267
B.4 移植Amazon FreeRTOS庫 270
B.4.1 執行宏configPRINT_STRING() 272
B.4.2 配置FreeRTOS內核端口 272
B.4.3 移植WiFi庫 273
B.4.4 移植安全套接字庫 274
B.4.5 移植PKCS #11庫 276
B.4.6 移植TLS庫 277
B.4.7 配置用于測試的MQTT庫 279
B.4.8 配置用于測試的HTTPS客戶端庫 279
B.4.9 移植OTA庫 280
B.4.10 移植藍牙低功耗庫 281
附錄C 自制競賽用智能車 283
C.1 機械結構設計 283
C.1.1 底盤設計 284
C.1.2 驅動設計 284
C.1.3 電源布局 284
C.1.4 SiFive Learn Inventor開發系統立式插槽布局 285
C.2 電子電路設計 285
C.2.1 電源穩壓電路 285
C.2.2 電動機驅動電路 287
C.2.3 感光電路 287
C.2.4 外圍接口電路 288
C.3 控制程序設計 291
C.3.1 驅動程序設計 291
C.3.2 控制算法設計 294
附錄D SiFive Learn Inventor開發系統常見問題解答 297
D.1 在Ubuntu上的例程 297
D.2 SEGGER J-Link OB調試器未接入 299
D.2.1 SEGGER J-Link OB調試器配置 299
D.2.2 控制臺配置 300
D.3 恢復SiFive Learn Inventor開發系統出廠設置 300
D.4 無法刻錄程序 301
D.5 恢復開發系統出廠設置后仍無法刻錄程序 301
D.6 調試參考信息 303
D.7 一般信息 303
參考文獻 304
序: