我终于得到了我的手SiFive的HiFive1 RISC-V董事会。需求如此之高,以至于在一段时间内获得一辆自行车是一项挑战。我报道SiFive首次发布平台时.的E310是SiFive的第一个32位微控制器它被托管在HiFive和arduino兼容的板上。
SiFive的HiFive1 RISC-V板与arduino兼容,但缺乏内置模拟支持。
RISC-V是一种开源的指令集体系结构(ISA),可在许多平台上使用,包括Microsemi的多个FPGA的家庭。我很快就会在这个平台上研究RISC-V。这里的许多关于开发工具的评论都适用于Microsemi的解决方案。
RISC-V类似于ARM的ARMv7架构定义,而ARM Cortex-M3是一个特定的实现架构。具有与Cortex-M3兼容的微控制器的供应商使用Cortex-M3架构,并具有通用的指令集。E310是SiFive的Freedom Everyware平台,E310是一个特殊的实现。SiFive真正的业务是授权其架构,但E310让开发人员无需诉诸于更复杂的Microsemi FPGA路由就可以使用该平台。
SiFive还拥有Freedom Unleashed平台,针对ARM 64位Cortex-A套件等高端解决方案。Freedom U500采用64位RV64GC架构,支持PCI Express Gen 3.0、USB3.0和千兆以太网等高速外设,可以使用DDR3和DDR4内存。它具有RV64IMACN架构,包括512 gb内存空间的虚拟内存支持。它可以使用台积电(TSMC)28纳米技术。
E310采用RV32IMAC架构。RV32IMAC是标准RISC-V特性的缩写,包括32位支持(RV32)、整数支持(I)、硬件整数乘法和除法(M)、原子实时指令(A),以及支持32位和紧凑(C) 16位指令集。该芯片有16个32位寄存器,没有硬件堆栈。
开始
E310在板上有一个USB控制器和调试器。事实上,这个芯片比E310还要大。它有芯片内RAM,但没有闪存。相反,它的代码和非易失性数据存储在一个128mbit串行闪存芯片上。16兆字节对于一个微控制器来说是很大的,但是SPI闪存芯片是便宜的。这也意味着开发人员可以在实现他们自己的化身时选择所需的flash数量。同样,使用的SPI串行存储器的类型也不同,包括像MRAM或FRAM这样的东西,与传统的闪存具有不同的存储特性和速度。
HiFive1板通过USB连接到电脑上,也可以提供电源。外置电源接口,输入电压为7v ~ 12v,支持单机供电。FTDI USB芯片提供JTAG接口,用于编程和调试。
发展有两个主要选择。我两个都看了看。第一个是Arduino IDE。第二个是基于eclipse的Freedom Studio。入门手册提供了关于下载和安装Arduino支持的详细信息,尽管它假设IDE已经设置好了。这种方法对于那些已经在使用Arduino IDE的用户来说效果很好,并且可以让IDE同时支持多个平台。
使用HiFive1和Arduino IDE是一个相对简单的练习。这只是在配置部分选择E310单板后,使用其中一个示例应用程序的问题。源代码级调试工作良好,Arduino IDE的简单性将吸引一些人。
我更喜欢更健壮的Freedom Studio IDE,但这带来了Eclipse的复杂性和高级功能。安装工具链比设置Arduino IDE稍微复杂一点,但也不多。好处是显著的,包括更好的调试环境(至少从我的角度来看),其中包括对大多数示例中使用的C代码进行反汇编。查看C编译器生成的汇编程序代码很有趣,除了通常的源代码级调试之外,Eclipse调试器还允许在这个级别上进行步进和断点调试。
开发人员可以选择可以在命令行模式或自由工作室使用的开发工具,包括gcc和CLANG/LLVM编译器。宁愿在虚拟平台上尝试代码的开发人员可以使用Spike ISA模拟器或QEMU模拟器。
总的来说,我发现使用Freedom Studio或HiFive1板并没有太大的惊喜。面板和工具套件与我看过的其他开发套件是一样的。缺少模拟支持对于一些开发者来说显然是个问题,但是带有9个PWM计时器的数字支持对于大多数用户来说已经足够了。
HiFive1比股票Arduinos的更高的性能是显著的,尽管有arduino兼容的平台提供类似的性能。HiFive1确实允许您评估RISC-V平台对于特定应用程序的执行情况。与竞争对手相比,它实际上非常节能,同时在300 Mhz的时钟下提供了大量的性能。向SiFive查询芯片的可用性和成本。当然,SiFive很乐意卖给你一个定制芯片的设计,它可以包括定制IP,包括模拟支持和芯片内存储器。