注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络硬件、外部设备与维护SiFive 经典RISC-V FE310微控制器原理与实践

SiFive 经典RISC-V FE310微控制器原理与实践

SiFive 经典RISC-V FE310微控制器原理与实践

定 价:¥128.00

作 者: 暂缺
出版社: 电子工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787121402036 出版时间: 2020-12-01 包装: 平装
开本: 16开 页数: 336 字数:  

内容简介

  本书以让读者快速掌握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-Ⅴ微控制器系统开发与应用的参考书。

作者简介

  陈宏铭博士拥有超过二十年的半导体相关行业经验,目前担任上海赛昉科技的技术市场资深总监。特别专注于物联网、人工智能、超算与RISC-V处理器等领域的技术趋势,负责协助中国大陆与港澳台的客户。在加入上海赛昉科技之前,陈博士曾担任创意电子的华东区业务总监以及智原科技的技术与市场总监,负责评估客户设计与市场规划。更早前还担任过明导国际亚太区产品专家,益华电脑应用工程师与联阳半导体数字设计工程师。__eol__陈博士于台湾清华大学获得了电机工学学士与微电子专业工学硕士学位,在北京大学获得了微电子专业理学博士学位。同时也担任武汉大学电子信息学院兼职教授,江南大学物联网工程学院企业讲师,教授本科生有关芯片设计、制造、封测与RISC-V处理器相关的入门知识。

图书目录

第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 为什么使用操作系统 17

本目录推荐