什么是RISC-V,RISC-V 的使用技巧与诀窍

在不断创新并保护其知识产权 (ip) 的同时,还需兼顾低功耗和低成本,致使设计人员持续面临着压力。因此,对于移动应用处理器的设计人员而言,risc-v 开源硬件指令集架构 (isa) 值得留意。既然 risc-v 已成为微控制器的一个选项,嵌入式系统和消费类设备的设计人员需要学习如何着手将 risc-v 整合至自己的设计。
groupgets llc 的 fe310 lofive-r1 开发板为此提供了一条捷径。在介绍 lofive-r1 之前,本文将介绍 risc-v 并说明开发人员应考虑使用该架构的原因。然后,本文将详细介绍 lofive-r1,说明如何着手应用开发以及可用的一些技巧与诀窍。
什么是 risc-v?
risc-v 是一个开源硬件指令集架构项目,2010 年始于加州大学伯克利分校。构建 risc-v 架构的原因很多,包括:
满足对开源指令集架构 (isa) 的需求,以供大学项目学术研究和学生使用
分享 isa 开发设计专业知识的途径
避免向现有芯片公司支付特许权使用费以节省成本的方法
保护架构(公司 ip)的设计细节以保持商业可行性
就设计人员而言,risc-v 是一种专为高速和低功耗而设计的简化架构。因此,基于 risc-v 的芯片不仅适用于学术界,也非常适合商业应用。实际上,risc-v 基金会备受关注,目前已吸纳约 325 名成员,其中包括 si-five、google、microchip technology、nvidia 和 qualcomm 等公司。
为 risc-v 开发做出贡献的公司虽不少,但对于普通开发人员而言,获得 risc-v 实践经验的最佳方法是找到一款基于 risc-v 处理器的开发板。
lofive fe310 开发板
groupgets llc 的 lofive-r1 开发板正是其中之一。
 lofive-r1 开发板包含 risc-v 处理器和所有必要的支持电路,因此该开发板可作为处理器模块直接焊接到载板上。
首先,lofive r1 包含的 risc-v 处理器最高可在 320 mhz 下运行。该处理器包括 8 kb 的一次性可编程 (otp) 存储器、8 kb 的掩膜 rom、16 kb 的指令缓存和 16 kb 的 sram。此外,该处理器还具有三个独立脉冲宽度调制 (pwm) 控制器、spi、i2c、uart,甚至 qspi 闪存接口。
其次,该开发板既可焊接针座,也可直接焊接到载板上用作处理器模块(由于其边缘呈圆齿形),无需费时额外采购处理器,从而极大简化了开发人员对定制硬件的设计流程。
再者,该开发板的板载 qspi 闪存由 integrated silicon solution inc. (issi) 的 is25lp128 闪存模块提供。is25lp128 闪存模块容量为 128 mb(即 16 mb),在四通道输入/输出模式下 spi 总线接口速度高达 133 mhz(图 2)。该 spi 闪存模块可用于存储以确保充足的应用程序空间,也可用于存储应用程序日志等运行时数据。
图 2:lofive-r1 开发板包括 issi 的 128 mb spi 闪存模块,可用于应用程序存储。(图片来源:issi)
另外,该开发板也可采用 5 v 的工作电压,通过 maxlinear 的 spx3819m5 线性稳压器转换为 3.3 v。该稳压器采用 sot23-5 封装,却可提供高达 500 ma 的电流。该开发板消耗电流较小,因此可支持其他传感器和器件,而无需额外添加电源电路。
图 3:lofive-r1 开发板的 spx3819 3.3 v 线性稳压器可提供高达 500 ma 的电流,足以支持整个板载电路和部分外部器件(如传感器)。(图片来源:maxlinear)
最后,该开发板的原理图和物料清单等所有设计细节均可从 github 获取。这些信息有助于开发人员理解该开发板的工作原理,也可用作定制开发项目的设计指南。
risc-v 工具链设置和开发板编程
开发人员会发现 risc-v 可用的工具链有多种,具体取决于所选择的开发板。需要注意的是,适用于 risc-v 的 sdk 支持 windows、macos 和 linux。本文将展示用于 linux 的开发板设置方法。
首先,在终端上使用以下命令从 git 中签出 lofive freedom-e sdk:
git clone --recursive https://github.com/mwelling/freedom-e-sdk.git
然后,使用以下命令进入按 sdk 创建的目录:
cd freedom-e-sdk
该开发板可用的 sdk 有两款。第一款称为“旧版 sdk”,因为版本较旧。请使用新版 sdk,其中包括预构建的工具链和用于调试的 openocd。使用以下命令签出 sdk:
git checkout lofive-r1
git submodule sync
git submodule update –init –recursive
开发板编程可通过几种不同的方式完成。首先,该处理器具有标准 jtag 信号,可通过 lofive-r1 扩展连接器获取该信号。开发人员可以使用任何支持 jtag 的编程器,例如 segger 的 j-link。若没有相应的编程器,开发人员也可使用 ftdi 的 ft2232h-56q mini mdl 等低成本的 usb 转串口转换器(图 4)。ft2232h-56q mini mdl 模块可提供连接 lofive-r1 开发板所需的所有连接和分线。sdk 可使用 ft2232h-56q 的通用 i/o 来构建必要的 jtag 连接,实现对微控制器的编程。
ft2232h-56q mini mdl 是一款低成本的串口模块,可通过 usb 直接连接计算机,然后连接 lofive-r1 开发板的板载 uart。
lofive-r1 开发板与 ft2232h-56q 模块之间需要九个不同的连接(表 1)。
表 1:lofive-r1 开发板与 ft2232h-56q 模块的连接简表。(表格来源:digi-key electronics)
上述连接可以总结为:
电源和接地
jtag 信号
uart 信号
连接可以采用直连法,也可使用 global specialties 的 pb-83m 等试验板来完成。该试验板的香蕉插孔可用于连接两个电压源和接地,以简化原型开发。
 pb-83m 提供的香蕉插孔可用于连接两个电压源和接地,以简化原型开发。(图片来源:global specialties)
首次使用 lofive-r1 时,建议先安装板载引导程序。引导程序只需安装一次,后续即可轻松升级。通过执行以下命令,即可从 sdk 中加载引导程序:
make program=lofive-boot target=lofive-r1-bootloader upload
然后,使用以下命令将 “hello world” 应用程序加载到开发板:
make program=sifive-welcome target=lofive-r1 upload
至此,开发人员就已完成了首个 risc-v 应用程序编写,此后的扩展则具有无限可能。
risc-v 的使用技巧与诀窍
risc-v 处理器入门与标准微控制器生态系统有所不同。 以下是几点“技巧与诀窍”:
签出 lofive-r1 sdk 后,花时间查看主目录下的 readme.md 文件。其中包含了在何处能找到 sdk 说明文档、板级支持包及其他有用信息。
若有 segger 的 j-link 等专业调试探测器,即可用于 risc-v 处理器的应用程序编程。自 2017 年以来,j-link 一直支持 risc-v。
如果开发人员偏好使用 ide 而非命令行工具,可以考虑使用 freedom studio(基于 eclipse 的 ide)进行 risc-v 开发。
首次使用 risc-v 时,只需遵循这些“技巧与诀窍”,开发人员即可节省大量时间和精力。
总结
对于希望使用开源硬件架构的开发人员而言,risc-v 架构值得留意。目前,市面上已有基于 risc-v 处理器的开发板,如本文所述,工具链设置难度与任何其他标准微控制器差别不大。
risc-v 虽令人着迷,但是请别忘记,其生态系统对比现有的许多微控制器平台相对贫乏,因此开发人员选择深入探索 risc-v 后,就会发现可用的选择和资源很少。权衡取舍不失为良策,具体取决于最终应用以及开发人员的偏好和资源。

红魔Mars和黑鲨Helo哪个最好
诺基亚X7真机赏析
预算有限的自动测试设备
全志A33安卓方案
电机剧烈振动的原因及解决办法(附电机振动监测方案)
什么是RISC-V,RISC-V 的使用技巧与诀窍
无人机反制设备反制技术在不同场景中的应用
霍尼韦尔2450CMG系列温控器在燃气热水器中的作用
奇瑞艾瑞泽7 1.5T 手动版全方位测评
业界聚焦 MR产业:算法与芯片结合为应用带来更多期待
健康洗衣新物种来了!海信发布“离子蒸烫洗”黑科技
如何保护高速接口
iphone8什么时候上市?iphone8最新消息:新增三大功能,iphone8配置外观提前看,九月正式发布
基于FPGA的高帧频面阵CCD驱动控制设计
问答专场│硬盘数据丢失,还能恢复吗?(文末开奖)
华为旗舰P30超清图片曝光
为什么购买燃油车的花费要远低于纯电动汽车?
激光技术及解决方案供应商相干2020年报:净亏损4.14亿美元
曝NVIDIA将在明年CES2020发布GeForce Super笔记本显卡 升级为GDDR6显存
ThreadLocal是什么