原创 《RISC-V架构与嵌入式开发快速入门》-- 如何让RISC-V芯片跑起来

2019-10-30 22:13 10584 34 2 分类: MCU/ 嵌入式

有幸从面包板社区收到《RISC-V架构与嵌入式开发快速入门》这本书试读。


相比较于《手把手教你设计CPU——RISC-V处理器篇》侧重介绍芯片硬件,这本书主要介绍如何基于RISC-V架构的芯片进行软件开发。书中仍然包含了架构中的指令集和中断异常等基本硬件基础的介绍,并以开源蜂鸟E203 MCU Soc为例,讲解了常用外设的基础知识和驱动程序的开发逻辑。

 书中前四章仍然以介绍RISC-v架构为主,开始详细阐述了当前主流CPU的发展历程和主要应用市场,并由此引出RISC-V的诞生。对比了ARM / OPENRISCSPARC等架构,并暗示RISC-V会成为嵌入式领域的8051。书中第三章详细介绍了RISC-V的指令集架构,主要特点包括模块化的指令子集/规整的指令编码/高效的分支跳转指令/零硬件开销循环等。第四章包含中断和异常概述,讲解了RISC-V架构中的中断和异常处理机制。

 

什么是MCU?

微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。(摘自百度百科MCU詞條)

 

五六两章详细讲解了E203 MCU SoC所包含的系统硬件和外设资源。这颗MCU的RTL开源在github,感兴趣的同学可以下载了解一下设计芯片的代码长什么样子,熟悉verilog的IC designer也可以在FPGA上将代码跑起来,进一步调试程序。

E203 MCU包含的硬件资源主要包括RISC-V架构的E203 Core, 4k ROM, 片外Flash, clock和中断控制器,

分类其他外设包括GPIO/SPI/I2C/UART/PWM/WDT/PMU等

外设本质就是数字电路组成的功能模块,可以减少外围电路的复杂性。对于开发者一定要仔细分析产品需求进行MCU芯片选型并充分利用内置的外设资源。

UART WIKI: https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter

I2C协议最初由恩智浦公司定义并开发 官方spec: https://www.nxp.com/docs/en/user-guide/UM10204.pdf, 现在已经推出I3C

SPI也是一种短距离同步串行通信协议,由摩托罗拉公司最初开发,因为没有正式的国际标准,所以有很多变种。

 

8-10章介绍GCC编译器和代码的编译过程

CPU只认识二进制指令,并不能理解汇编或者C代码。需要用工具将为了方便程序员理解定义的C或者汇编code翻译成机器所能理解的二进制指令。这个过程就叫做编译。

编译本身是一个非常复杂的过程。涉及到词法分析/语法分析/语义分析等,但是对于软件工程师来说,有了编译器,这个工具,一切又变得简单了。编译器可以理解你的代码,并将它转换,还能进行优化。

常用的嵌入式MCU编译器还有IAR的icc, keil的armcc, 开源的gcc for arm等,对于嵌入式软件工程师来说,因为iar和keil提供非常友好的图形界面开发系统,所以对应的编译器市场占有率非常高。如果在对MCU进行软件开发的时候,如果需要写汇编代码,需要注意区分编译器,不同的编译器支持的汇编伪指令一般不同。

IAR最近已经开始提供支持RISC-V版本的IDE, https://www.iar.com/iar-embedded-workbench/#!?architecture=RISC-V

 

10-14章,介绍了更加丰富的软件开发生态,包括支持RISC-V架构的 MCU Eclipse IDE/Hbird-E-SDK.基于这两大利器,软件开发者可以更加高效便捷的进行应用开发和调试。书中还讲解了几个比较典型的程序实例如GPIO和Coremark,介绍了程序功能和代码结构,方便初学者照葫芦画瓢,快速入门。

https://github.com/SI-RISCV/e200_opensource/tree/master/prebuilt_tools

https://github.com/SI-RISCV/hbird-e-sdk


Eclipse是非常流行的开源IDE开发框架,最初的Android应用开发的IDE也是基于Eclipse开发的,现在已经被Android Studio取代。

在MCU领域,社区开发者也基于Eclipse搞了一个 MCU Eclipse的开源项目,这个项目也很受MCU厂商的欢迎,基于MCU Eclipse, 芯片原厂可以根据自家芯片特性定制自己的IDE, 比如NXP的MCUX IDE,支持恩智浦全系列的MCU开发(flash loader/register debug等功能),还包含clock tool/peripheral tool自动生成clock和外设配置代码,还有trust zone tool可以生成安全相关的配置,power analyzer可以分析芯片功耗等等。

https://gnu-mcu-eclipse.github.io/

https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE


 

对于MCU来说,因为相对有限的CPU计算资源和缺少MMU,并不能直接运行Linux,MCU本身也更适合应用在实时低功耗的采集和控制等应用。RTOS可以简化软件开发的任务逻辑,目前主流的RTOS主要有amazon的freertos/LF的zephyr/arm的mbed和国产的RT-thread/Huawei的lite os/ali的alios,以及ucos/mqx等。据说RTOS有三千多种。目前Freertos和rt-thread在社区已经有移植成功的代码可以使用,读者可以参阅Github上Hbird-E-SDK项目中software目录下的FreeRTOS或者RT-Thread目录下的代码和详细文档介绍,实现并运行实例程序。

 https://www.freertos.org/

https://www.rt-thread.org/

 

总的来说这本书介绍的很全面,从开源IDE和编译器的支持和使用介绍到作者自己封装的基于linux环境的HBird-E-SDK软件开发包,从外设原理到如何寄存器配置,从指令集介绍到如何进行汇编对芯片编程,还包含简短的ROTS简述和开源的移植后的示例代码。


此外,多家IC厂商也已经推出了基于RISC-V的MCU量产芯片,如恩智浦的Vega https://open-isa.org/

还有兆易创新的GD32VF103系列,官方旗舰店可以买到芯片,非常便宜10块钱不到好像。


作者: plyy, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3895810.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

curton 2019-10-31 19:10

学习了
相关推荐阅读
plyy 2021-11-14 17:33
【大联大品佳Infineon汽车照明单片机方案】+CY8CKIT-044评测报告 + Sensor Hub 方案
产品开箱打开包装盒,里面有两份纸质文档, - CY8CKIT-044 QUICK START GUIDE 和 uC/Probe软件的试用license code.USB Standard-A to M...
plyy 2020-02-02 18:15
【兆易创新RISC-V开发板评测】GD32V EVK开发板点灯项目
1. 下载安装IDEhttp://www.nucleisys.com/download.php2. 下载解压SDKGD32VF103 Demo Suites:GD32VF103_Demo_Suites...
plyy 2020-02-02 16:01
【兆易创新RISC-V开发板评测】GD32V EVK开发板硬件资源介绍
GD32VF103V-EVAL开发板开发板资源介绍主控芯片,GD32VF103VBT6,RISC-V 内核,基于Nuclei Bumblebee处理器,主频108MHz。板载GD_Link调试器,基于...
plyy 2019-12-04 10:31
【RT-Thread软件包+w601评测】物联网环境监测仪
实现功能: W601采集温度和湿度数据,通过WIFI传到阿里云,用户可以后台可视化界面进行数据分析和监控 该方案可以用于农业如大棚环境实时监测,工业工厂特殊操作环境检测等,类似的物联网方案也可以用...
plyy 2019-11-30 17:54
【RT-Thread软件包+w601评测】开发板上手点灯
正点原子W601 WIFI 物联网开发板是原子科技基于国产物联网无线通信芯片供应商北京联盛德微电子有限责任公司开发的WIFI MCU芯片W601,主打家电市场。 联盛德官网 http://www.w...
plyy 2019-11-30 16:41
《一砂一世界》书评 消费市场的MEMS应用
本书从MEMS结构原理介绍讲起,分别介绍了MEMS的设计/制造/封装和测试流程。 然后介绍了一些对于工程师进行产品或方案研发可能用到的MEMS传感器,详细介绍了各类MEMS传...
我要评论
1
34
关闭 站长推荐上一条 /3 下一条