芯来科技RISC-V处理器将支持鸿蒙LiteOS-M内核

芯来科技为方便客户进行基于鸿蒙生态的risc-v软件开发,在nuclei risc-v 32位处理器上移植并适配了鸿蒙liteos-m内核。
目前该内核已可支持nuclei demo soc——fpga评估软核,和基于芯来科技的risc-v内核的mcu——gd32vf103。
liteos-m内核
openharmony liteos-m内核针对mcu类处理器,例如arm cortex-m、risc-v32位的设备,面向aiot领域构建的轻量级物联网操作系统内核。此内核具有小体积、低功耗、高性能的特点。其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等,分为硬件相关层以及硬件无关层,硬件相关层提供统一的hal(hardware abstraction layer)接口,提升硬件易适配性,满足aiot类型丰富的硬件拓展。
openharmony liteos-m核内核架构图
芯来开发板
芯来科技目前有两款开发板可以快速体验最新鸿蒙liteos-m内核:
nuclei ddr200t——集成了fpga和通用mcu的risc-v评估开发板,以及rv-star——基于gd32vf103 mcu的risc-v评估开发板。
nuclei ddr200t开发板采用12v外部直流电源,包含一个mcu子系统和一个fpga子系统。
fpga子系统采用xilinx xc7a200t-2 fpga芯片,并且提供板载fpga jtag下载器,不需额外配置fpga下载器即可完成内核的烧写。此外,开发板还提供丰富的板载存储(flash,ddr, emmc, eeprom)和丰富的接口资源(数字,模拟),以及蜂鸟调试器接口,方便下载调试。
nuclei demo soc(fpga评估软核)就可以烧写在这块fpga子系统上运行。
nucleirv-star开发板     
nuclei rv-star开发板采用gd32vf103vbt6微控制器,结合芯来科技bumblebee内核,内置128kb flash、32kb sram。开发板外设资源众多,包括:
timer(高级16位定时器*1,通用16位定时器*4)、u(s)art*5、i2c*2、spi*3、can*2、usbfs*1、adc*2(16路外部通道)、dac*2、exmc*1。开发板还提供大量接口,包括:usb type-c接口、micro usb接口、microsd卡插槽(默认没焊接)、jtag接口、pmod接口*2(spi、i2c)、双排标准2.54mm排母接口:arduino兼容接口(外侧),exmc扩展接口(内侧)以及用户按键*2(复位、唤醒)。                
芯来内核
本次openharmony liteos-m内核支持针对芯来科技n级别内核rv32架构,并采用n307fd内核作为使用示例。
n300系列32位超低功耗risc-v处理器面向机制能效比且需要dsp,fpu特性的场景而设计,非常适合对标arm cortex-m3/m4/m4f/m33内核,应用于iot和工业控制等场景。
芯来liteos-m内核使用
芯来liteos-m内核仓库链接如下:https://gitee.com/riscv-mcu/kernel_liteos_m/tree/dev_nuclei/
仓库内整体文件结构直观明了,在各开发板对应的target文件夹中较为详细的列出各文件/文件夹的作用,便于理解和使用。
芯来科技本次支持的所有工程均采用makefile编译管理,芯来科技gcc工具链编译,资源集中,所有需要的内容均可在芯来官网找到。
这里以rv-star开发板为例,介绍仓库的使用方法:
下载工具链并配置驱动
打开芯来科技文档与工具页面,按照以下步骤下载工具链:
centos或ubuntu系统请点击图中红框1下载risc-v gnu工具链;
点击图中蓝框2-1下载64bit的openocd;
确保make工具版本不低于3.82;
ubuntu系统使用以下指令安装make工具
sudo apt-get install make
centos系统使用以下指令安装
sudo yum install make
新建nuclei文件夹并在此文件夹中新建gcc文件夹和openocd文件夹;
解压缩之前下载的gnu工具链到任意文件夹中,复制其中bin文件件所在层级的所有内容到gcc文件夹中;
同样解压缩之前下载的openocd到任意文件夹中,复制其中bin文件件所在层级的所有内容到openocd文件夹中。
工具链下载完成后,需要配置驱动,步骤如下:
连接开发板到linux中,确保usb被linux识别出来;
在控制台中使用lsusb指令查看信息,参考的打印信息如下:
bus 001 device 010: id 0403:6010 future technology devices international, ltd ft2232xxxx
将github
https://github.com/riscv-mcu/ses_nuclei_sdk_projects/blob/master/misc/99-openocd.rules
上misc文件夹内99-openocd.rules文件复制到当前路径下,控制台中输入以下指令复制文件到指定路径下;
sudo cp 99-openocd.rules /etc/udev/rules.d/99-openocd.rules
断开调试器再重新连接到linux系统中;
使用ls /dev/ttyusb*命令查看ttyusb信息,参考输出如下:
/dev/ttyusb0 /dev/ttyusb1
使用ls -l /dev/ttyusb1命令查看分组信息,参考输出如下。可以看到ttyusb1已经加入plugdev组,接下来我们要将自己添加到plugdev组。使用whoami命令查看当前用户名,我们将其记录为;
crw-rw-r-- 1 root plugdev 188, 1 nov 28 12:53 /dev/ttyusb1
使用sudo usermod -a -g plugdev 命令将自己添加进 plugdev 组;
再次确认当前用户名已属于plugdev组,使用groups命令,可以看到打印信息中有plugdev即成功将当前用户添加至plugdev组。
编译源码
请在当前控制台中配置nuclei_tool_root路径,假设nuclei文件夹所在路径为/home/nuclei,输入:
export nuclei_tool_root=/home/nuclei
或者使用时make选项增加:
nuclei_tool_root=/home/nuclei
复制仓库代码到本地。在命令行中输入:
git clone https://gitee.com/riscv-mcu/kernel_liteos_m.git
复制代码到本地;
打开至代码根目录下
/target/riscv_nuclei_gd32vf103_soc_gcc/gcc
输入:make all
开始编译,编译结束后部分参考输出如下:
text     data   bss     dec      hex        filename   24330    112    16768   41210    a0fa build/nuclei-rvstar-gd32vf103-soc.elf
若编译前想清理工程,请使用:
make clean
下载调试、运行
调试或运行前请先连接rv-star开发板,确保已按照环境配置中驱动配置部分配置完成。
同样配置好nuclei_tool_root路径,并打开至代码根目录下的:
/target/riscv_nuclei_gd32vf103_soc_gcc/gcc
输入:
make debug
进入gdb调试;
等待到进入gdb调试界面时,输入:
load
下载编译好的elf文件,就可以开始调试;
若想直接运行,请同样在调试时所在位置输入:
make upload
运行时可以查看串口打印内容,使用串口查看工具,这里以minicom为例,若未安装此工具可自行安装或使用其他串口查看工具。打开控制台,输入:
minicom -d /dev/ttyusb1 -b 115200
打开串口查看工具。
运行时参考输出如下:
总结
本次芯来risc-v内核支持liteos-m内核完成了基于eclic的openharmony liteos-m内核任务调度移植适配工作,以及芯来内核timer移植适配工作。编译上采用make编译管理系统,各参数区分配置,简单易懂。完全适配芯来gcc编译器,资源集中,便于查找。使用上简单易懂,仅两条指令可完成编译运行。针对不同的开发板创建了不同的工程,可直接运行使用。在根目录下target文件夹内,各开发板对应的工程文件夹配有较为详细的使用说明,可参考说明搭建编译运行环境。


美的IOT智能家居_GX600洗碗机给你最好的选择
守护6%的熠熠闪光:拥抱数字技能,照亮更广阔的前方
BBC预测:哪些职业更可能被机器取代?
自动导引车(AGV)应用的相关安全使用规范
自动驾驶汽车时代:天线测量与模拟比任何时候都来得关键
芯来科技RISC-V处理器将支持鸿蒙LiteOS-M内核
Mini LED胶水的解决应用方案
集成、隔离和良好EMC设计的秘诀
液晶拼接屏有哪一些误区
5G大事件:尘埃落定、广电的700M 5G黄金频段与移动共建共享
比亚迪第一!超越特斯拉
高速信号传输pcb设计的压接孔工艺
英特尔想要吃下整个服务器市场
redis缓存满了怎么办?
VR技术发展并未受阻 未来还有很长的一段路要走
北汽蓝谷:极狐考拉预计在四季度完成产能爬坡
让AI更聪明 人工智能训练师的新战场正在不断产生
进气压力传感器的作用
标致508 1.8THP自动旗舰版全方位测评
PLC编程的语言类型有哪几种 具有什么特点