0
100% Satisfaction Guarantee
Amazing Value
Fast Shipping
Expert Customer Service
SiFive 经典RISC-V FE310微控制器原理与实践
$64.05
本书内容丰富实用、层次清晰、叙述详尽,书中穿插的实例程序全部使用C语言编写,且在Freedom Studio集成开发环境上编译通过,方便读者教学与自学,非常适合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-Ⅴ微控制器系统开发与应用的参考书。
陈宏铭博士拥有超过二十年的半导体相关行业经验,目前担任上海赛?P科技的技术市场资深总监。特别专注于物联网、人工智能、超算与RISC-V处理器等领域的技术趋势,负责协助中国大陆与港澳台的客户。在加入上海赛?P科技之前,陈博士曾担任创意电子的华东区业务总监以及智原科技的技术与市场总监,负责评估客户设计与市场规划。更早前还担任过明导国际亚太区产品专家,益华电脑应用工程师与联阳半导体数字设计工程师。陈博士于台湾清华大学获得了电机工学学士与微电子专业工学硕士学位,在北京大学获得了微电子专业理学博士学位。同时也担任武汉大学电子信息学院兼职教授,江南大学物联网工程学院企业讲师,教授本科生有关芯片设计、制造、封测与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
从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-Ⅴ领域的发展和中国集成电路行业的发展贡献一分力量。
—复旦大学微电子学院院长 张卫
Shipping Overview:
• Shipping: Standard Domestic Shipping within the United States charges USD 4.99. Standard International Shipping from United Kingdom, Germany and Japan to the United States charges 14.99.
• Order Processing: Please allow 1-2 business days for order processing and preparation before shipment.
• Domestic Shipping: Orders within the U.S. are shipped via USPS or FedEx, depending on the origin of the product. The average transit time is 3-7 business days.
• International Shipping: Currently, we only ship within the USA.
• Tracking Information: Every order is trackable. You will receive a tracking number once your order has been shipped. Products may be shipped from various global fulfillment centers.
Shipping Delays:
Please note that shipping times may vary due to factors beyond our control, such as weather conditions, natural disasters, or peak holiday periods. While we strive to ensure timely delivery, the exact arrival time cannot be guaranteed and is managed by the shipping carrier.
Shipping Options:
Standard Delivery: Most orders are shipped within 3-7 business days. Larger items may utilize LTL shipping for safe handling.
Handling Time: We handle shipments on business days (Monday - Friday), with a preparation time of 1-2 days.
Additional Charges: Some items require additional shipping charges due to their size, weight, or special handling. These charges are specified on the product pages and are not eligible for shipping discounts.
Exclusions: Gift cards, packaging, taxes, and prior purchases do not count toward the minimum purchase requirement for free shipping. This offer is valid only for shipments to U.S. addresses, including Puerto Rico.
Delivery Details:
Estimates: Standard shipping within the US typically takes 3-7 business days. These are estimates and not guarantees.
Shipping Restrictions: We ship to all 50 states, Washington, DC, U.S. territories, and APO/FPO/DPO addresses. Shipping options vary based on the delivery address.
Remote Areas: Shipments to remote areas may incur additional charges or require pickup from a nearby shipping partner’s location.
Shipping Confirmation:
You will receive a shipping confirmation email with a tracking number as soon as your order is dispatched. If you do not receive this email immediately, please be assured that your items will arrive within the estimated delivery window provided at checkout.
Order Modifications:
If you need to cancel or modify your order, please contact our customer support immediately.
Issues with Delivery:
If your order shows as delivered but you have not received it, please contact the shipping carrier directly to resolve the issue. For persistent problems, contact our customer service at cs@everymarket.com.
Customer Support:
Our team is available 24/7 to assist you with any questions or concerns regarding your order. We are committed to ensuring a smooth shopping experience.
Return & Refund Policy Overview
Please review our return and refund policies below to ensure a smooth transaction process.
Return Policy
Duration: You have 30 days from receiving your item to initiate a return.
Condition: Items must be unworn, unwashed, with original tags and packaging intact.
Shipping Costs: Customers are responsible for return shipping costs.
Packaging: Ensure returned items are well-packaged to avoid damage during transit.
Tracking: Use a trackable and insured shipping method as we are not liable for items lost or damaged on return.
Initiating a Return: Contact us at cs@everymarket.com to start your return. We will provide a return shipping label and instructions upon approval. Returns without prior approval will not be accepted.
How to Return
Method: Returns must be sent back by mail to the address provided in the return instructions.
Return Label
Defective Products: Return labels are provided for defective items.
Non-Defective Returns: Customers are responsible for obtaining their return shipping label.
Product Conditions for Return
Eligible Products: Returns are only accepted for items in new condition.
Nonreturnable Items
Certain items are not eligible for return:
Electronic devices after 30 days (e.g., computers, laptops, Kindles)
Gift cards, prepaid game cards
Perishable goods, live insects, some jewelry, some health and personal care items
Customized or personalized products
Items with special shipping restrictions
Refund Policy
Window: Eligible products may be returned within 30 days of delivery for a refund.
Refund Method: Refunds are processed to the original payment method or as store credit for items purchased with gift cards.
Processing Time: Refunds are processed within 3-5 business days after we receive the return; please allow additional time for shipping and bank processing.
Claims
Inspect your order upon arrival and report any defects, damages, or incorrect items immediately to allow us to address the issue. For claims, contact our support team with details of the issue.
Exchange Policy
For the quickest service, return your original item and place a new order for the desired product once your return is accepted.
Return Address
EveryMarket Customer Service 2101 E Terra Ln, O'Fallon, MO 63366
Customer Support
Available 24/7 for any questions or assistance needed:
Phone: +1 636-312-5925
Email: cs@everymarket.com
Oops!
Sorry, it looks like some products are not available in selected quantity.
OK