热搜关键词: 电磁兼容Altium DesignerDC/DC自动驾驶

pdf

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

  • 1星
  • 2022-03-19
  • 20.26MB
  • 需要1积分
  • 39次下载
  • favicon收藏
  • rep举报
  • free评论
标签: 嵌入式

嵌入式

riscv

嵌入式

本书以让读者快速掌握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

书名:SiFive 经典RISC-V FE310微控制器原理与实践
½者:陈宏铭
出版社:电子工业出版社
出版时间:2020年12月
ISBN:9787121402036
字数:510.7千字
版权方:电子工业出版社有限公司
版权所有·侵权必究
THGIRYPOC
息信权版
本书以让读者快速掌握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-Ⅴ微控制器系统开发与应用的参考书。
介简容内
微控制器广泛运用在玩具、工业控制、医疗设备和家用电器等嵌
入式系统中,通过处理器、存储器和I/O器件完成智½硬件。联华电子
通过工艺和研发技术的不断优化,将嵌入式芯片的尺寸、功耗、成本
各方面做到极致,为系统级的产品提供了丰富和稳定的功½。我观察
到½内很多知名的设计公司已经研发并生产基于RISC-Ⅴ处理器的微控
制器,依托联华电子的支持开发出一系列具有高可靠性、高性价比的
工业级通用和专用内½闪存的产品。我的学弟陈宏铭博士在此时出版
基于RISC-Ⅴ处理器的微控制器应用书籍,可与设计微控制器芯片的同
业互相借鉴,截长补短,让中½的芯片业做大做强,这也是联华电子
立足中½的初心。
以RISC-Ⅴ为代表的开源指令集处理器及其相应的开源SoC芯片½
系结构设计已经成为公认的热点。在过去的一年,我们看到学术界和
工业界½推出了多款基于RISC-Ⅴ指令集的AIoT MCU、高性½CPU等解
决方案,给CPU½系结构设计带来了勃勃生机,而且更重要的是进一步
推动了开源芯片设计、开源EDA等新生态的茁壮成长。SiFive是RISC-
Ⅴ的典型代表,也是RISC-Ⅴ IP的领先供应商,½用SiFive MCU来搭
建嵌入式硬件和移植操½系统将进一步普及RISC-Ⅴ在教育界和工业界
的应用。在本书中,陈宏铭教授深入浅出地介绍了RISC-Ⅴ的历史和
SiFive MCU的½系结构,并且充分利用了SiFive开发板的特点和优
势,展示了蓝牙、WiFi、小½、FreeRTOS与RT-Thread移植等案例,学
生通过这些生动的案例可以逐步熟悉RISC-Ⅴ处理器,最终熟练掌握
RISC-Ⅴ处理器的开发。本书是初学者了解和熟悉RISC-Ⅴ处理器开发
的½教材,期待基于RISC-Ⅴ处理器的嵌入式设计在高校课程½系中生
根发½。
圣伟林 理经总副片芯舰和/子电华联——
授教雄志
邸 任主系副系程工子电院学术技与学科息信学大通交南西——
)序排间时馈反按(语荐推
荐推的界学与界业自来
展开预览

猜您喜欢

推荐帖子 最新更新时间:2023-11-28 18:28

CCS编译出错:缺少头文件的解决办法
问题: "../Source/DSP2833x_SysCtrl.c", line 16: fatal error #5: could not open source file "DSP2833x_Device.h"      ,在工程目录下已经在include下包括所有头文件了,编译仍然找不到头文件。   解决办法: 1:将头文件拷贝到该工程文件夹目录下面。 2:#i
fish001 微控制器 MCU
信号发生器
信号发生器       信号发生器又称信号源或振荡器,在生产实践和科技领域中有着广泛的应用。各种波形曲线均可以用三角函数方程式来表示。能够产生多种波形,如三角波、锯齿波、矩形波(含方波)、正弦波的电路被称为函数信号发生器。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中,都需要射频(高频)发射,这里的射频波就是载波,把音频(低频)、视频信号或脉冲信号运载出去,
ld056k 模拟电子
跟大家分享一个示波器,麦科X
本帖最后由 fsyicheng 于 2018-7-31 23:12 编辑        近来在淘宝上准备添置一个示波器,发现了一个示波器品牌,刚好遇上搞活动,所以入手了一个试试,关键是这个活动是团购,真第一次在淘宝上团购,通过组团还认识了一个省外的电子爱好者,双得。       一直在犹豫买什么型号,什么品牌,但这个麦科的产品基本需求的型号性价比都很高,所以想给大家推荐一下。在继续之前,先用
fsyicheng 综合技术交流
开关电源八大处损耗,讲的太详细了!
       能量转换系统必定存在能耗,虽然实际应用中无法获得100%的转换效率,但是,一个高质量的电源效率可以达到非常高的水平,效率接近95%。绝大多数电源IC 的工作效率可以在特定的工作条件下测得,数据资料中给出了这些参数。一般厂商会给出实际测量的结果,但我们只能对我们自己的数据担保。图1 给出了一个SMPS 降压转换器的电路实例,转换效率可以达到97%,即使在轻载时也能保持较高效率。采用什么
Jacktang 模拟与混合信号
关于AD芯片ADS1251的时序问题以及采集问题
ADS1251的时序以及各个部分所对应的时间如下图所示,请问我写的读取代码是否有问题? double GET_DOUT(void) { unsigned int temp = 0x00000000; int i; SCLK(0); CLK(0); while(1) { CLK_Toggle(); if(DOUT() == 1) b
Mengmei TI技术论坛
功率分析仪直连CAN网络
介绍一款可以把功率分析仪接入到CAN总线网络里的神器,WT-CAN通信适配器:iDAQ-WTCAN。就是下图这个小盒子。有了它,就可以直接将横河的WT5000或WT1800E系列功率分析仪接入到您的CAN系统中,轻松获取需要的功率参数。   为什么需要CAN通信适配器?   CAN总线因其优异的稳定性和可扩展性,不但在汽车电子领域应用非常广泛,在风电、光伏等领域也有一定的应用。所以很多相关的集
Aguilera RF/无线
分享调试TMS320C2000系列的常见问题解决方法?
1)单步可以运行,连续运行时总回0地址: Watchdog没有关,连续运行复位DSP回到0地址。 2)OUT文件不能load到片内flash中: Flash不是RAM,不能用简单的写指令写入,需要专门的程序写入。CCS和C Source Debugger中的load命令,不能对flash写入。 OUT文件只能load到片内RAM,或片外RAM中。 3)在flash中如何加入断点: 在fla
Aguilera DSP 与 ARM 处理器
RISCV的linux模拟环境搭建整理和总结
一,有关RISC V的开源代码,可以从改网站的连接进入,该网站归纳整理了有关RISC V的多方面资料: https://cnrv.io/resource 二,自己的虚拟机或linux系统事先安装好 三,装好git工具,因为riscv很多开源的东西需要从git上checkout,这样会方便不少 四, 1. 首先安装开源程序版本管理工具: (linux)Fedora系统上用 yum 安装,
木犯001号 FPGA/CPLD

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved
×