热搜关键词: 电磁兼容Altium DesignerDC/DC自动驾驶
本书以让读者快速掌握FE310嵌入式微控制器为目的,由浅入深地带领读者进入RISC-Ⅴ的世界。本书共分为7章,系统地介绍了SiFive E系列32位RISC-Ⅴ微控制器的体系结构、SiFive E31内核、片内存储系统、系统控制模块、外围设备接口的特点与性能;还介绍了SiFive Freedom Studio集成开发环境,Freedom E-SDK驱动库开发及SiFive Learn Inventor开发系统,开发系统连接外部红外与超声波模块的拓展应用开发实例,有初步C语言基础的读者可轻松上手;还利用最后两章辅以大量的例程,讲解了FreeRTOS与RT-Thread等实时多任务操作系统的原理与应用。
第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 [1]
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 [1]
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
猜您喜欢
推荐帖子 最新更新时间:2023-11-28 18:28
推荐内容
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
热门标签
评论