由于最近ARM公司要求员工「停止所有与华为及其子公司正在生效的合约、支持及未决约定」,即暂停与华为的相关合作,大家纷纷把注意力投向了另一个的处理器架构RISC-V,它是基于精简指令集(RISC)的一个开源指令集架构。相比于其他指令集,"RISC-V 指令集可以自由地用于任何目的,允许任何人设计、制造和销售 RISC-V 晶元和软体",正是由于这种开放性,于2015年成立的RISC-V基金会,吸引了很多科技巨头加入RISC-V基金会,现在的RISC-V基金会成员已经超过了235个,包括国外的Google、三星、英伟达、微芯、高通、惠普、意法半导体、西数、NXP等,国内的阿里巴巴、华为、高云等公司。可能是由于智能推荐的演算法,我在知乎上的一篇关于RISC-V文章:国产处理器的逆袭机会——RISC-V,最近收到了很多网友的关注和评论。正好前一段时间申请到一块NXP恩智浦的一款真正的RISC-V开发板——织女星开发板,所以拿来玩玩,学习一下RISC-V架构处理器的开发。
RISC-V(发音同「risk-five」)是一种免费开源指令集架构(ISA),通过开放标准协作开创处理器创新的崭新纪元。RISC-V基金会创立 于2015年,由超过235家成员组织组成,建立了首个开放、协作的软硬体创新者社区,开创了处理器创新的新时代。RISC-V ISA发端于深厚的学术研究,将免费且可扩展的软硬体架构自由度提升至新的水平,为未来50年的计算设计与创新铺平了道路。——来自RISC-V_百度百科
现在的处理器指令集主要分为RISC和CISC,即精简指令集和复杂指令集,RISC的代表就是著名的ARM架构,专注于高性能,低功耗,小体积,主要应用于移动设备;而CISC的代表是x86架构,像常用的PC、伺服器的CPU等等,专注于桌面,高性能和民用市场。
而RISC-V是属于RISC阵营的,RISC-V,即第五代精简指令集。相比于ARM,RISC-V的历史很短,2010年诞生于加州大学伯克利分校,当时的Krste Asanovic教授希望寻找一个合适的CPU指令架构,但x86架构复杂臃肿、ARM架构需要授权费、开源的OpenRISC架构又太老旧了,所以他最终决定自己做个开源CPU架构,并在2015年成立了RISC-V基金会(RISC-V Foundation ),专门推动RISC-V发展,现在的RISC-V基金会成员也超过了235个,包括国外的Google、三星、英伟达、微芯、高通、惠普、意法半导体、西数、NXP,国内的阿里巴巴、华为、高云等公司。最新的RISC-V基金会成员:RISC-V基金会成员列表
本著大道至简的原则,《RISC-V架构文档(The RISC-V Instruction Set Manual)》仅有236页,熟悉体系结构的工程师仅需一至两天便可将其通读,虽然RISC-V的架构文档还在不断地丰富,但是相比x86的架构文档与ARM的架构文档,RISC-V的篇幅可以说是极其短小精悍。
ARM处理器按位数可分为32位和64位,按架构又可分为Cortex-A/Cortex-R/Cortex-M三大系列,分别针对不同的应用领域。而RISC-V也有很多内核,截止目前(2019-06-22),RISC-V社区显示的Core共有29个,SOC PLATFORM共有13个,SOC共有7个。
织女星开发板是OPEN-ISA社区为中国大陆地区定制的一款体积小、功耗超低和功能丰富的基于RV32M1 的 RISC-V评估开发板。利用该开发板,用户可以快速建立一个使用 RV32M1 的 RISC-V应用和演示系统。
RISC-V内核支持使用SEGGER公司的JLink调试器来进行程序的下载、调试,没错,就是那个经常用来调试ARM内核的调试器,要使用带有TMS(SWDIO)、TCLK(SWCLK)、TDI、TDO介面的调试器,不能使用那种只有SWDIO和SWCLK的调试器。当然,也可以使用板载的FreeLink调试器,不过在使用板载调试器调试RISC-V之前,需要使用LPCScrypt_installer_2.1.0_842.exe软体,把FreeLink的CMSIS-DAP固件升级为JLink固件,这样才可以调试RISC-V核。可以参考:织女星开发板调试器升级为Jlink固件
之所以说这是一块真正的RISC-V开发板,是因为它的主控晶元RV32M1是真正的RISC-V内核晶元,众所周知,市面上很多RISC-V开发板基本都是基于FPGA实现的RISC-V软核处理器。
VEGA织女星开发板分为两种,一种是国际版,一种是国内版
硬体上稍微有所不同,软体上完全兼容国际版VEGABoad 开发板,充分利用已有的 OPEN-ISA的生态环境,希望进一步带动中国大陆地区 RISC-V的软体生态链。
这块开发板从申请到收到,大概用了两周的时间,包装盒、开发板、跳线帽、MicroUSB数据线,一应俱全,全国包邮,不得不说大厂就是大气。
VEGA织女星开发板采用6层PCB设计,以满足 RM32M1 设备所需的射频电路。沉金PCB工艺,蓝色油墨,白色丝印,符合欧盟RoHS标准,无铅环保。晶元周围留有屏蔽罩的焊接位置,不过并没焊接。好了,我们来看一下板载的资源吧。
要重点介绍一下织女星开发板的主控晶元RV32M1,RV32M1是一颗真正的 RISC-V晶元,其目的是为了扩大和推动 RISC-V生态系统的发展,让广大的MCU 嵌入式开发工程师有真正的 RISC-V 晶元可用。目前该晶元只供应给OPEN-ISA 社区生产评估开发板使用,不单独销售。如果需要样片,可以到社区申请。下面来看一下RV32M1的片上资源。
uint32_t SysClk;
SystemCoreClockUpdate();
SysClk = SystemCoreClock;
PRINTF("系统时钟: %d ", SysClk);
和其他的ARM内核开发一样,织女星开发板的ARM内核开发,可以使用以下环境
注意:Keil环境要安装要安装openisa的器件支持包
关于织女星开发板开发环境的搭建及相关配置可以参考:
参考上述文章,搭建完成开发环境后,就可以导入Demo工程,点亮一个LED灯,如下效果。
欢迎关注我的个人博客:www.wangchaochao.top
www.wangchaochao.top
或微信扫码关注我的公众号
推荐阅读: