RISC-V技术william hill官网
直播中

小伍

8年用户 4725经验值
擅长:电源/新能源 嵌入式技术
私信 关注
[经验]

【每周精选】基于LINUX和RTOS的双核操作系统,极致性价比RISC-V开发板开发实践

图片

Milk-V Duo是一款基于算能 CV1800B芯片的MPU,能够运行基于LINUX和RTOS的操作系统。Milk-V Duo为专业人士、工业OEM企业、物联网爱好者、业余爱好者、DIYers和创作者提供了一个可靠、低成本且极具功能的平台,使他们能够打造和调试自己的想法,并将其变成现实。

1、Milk-V Duo之开箱初体验

一、第一印象

外观设计方面,Milk-V Duo以简约而精致的风格为主,采用沉金工艺,给人一种高端大气的感觉。开发板的尺寸小巧,便于携带和使用,在我拿到的所有的开发板中,也只有STM32103C8T6核心板的体积能与之媲美了,但是前者在同样的体积下塞进去了更强的功能。

二、外设

图片

Milk-V Duo是一个基于CV1800B芯片的超紧凑嵌入式开发平台。它可以运行Linux和RTOS,为专业人士、工业ODM厂商、AIoT爱好者、DIY爱好者和创作者提供了一个可靠、低成本和高性能的平台,在这块小小的开发板上集成了多达26个GPIO引脚,可以访问内部外设,如SDIO、I2C、PWM、SPI、J-TAG和UART。

  • 处理器: CVITEK CV1800B (C906@1Ghz + C906@700MHz)
  • 内存: 64MB
  • 网口: 10/100Mbps 以太网 (需外接扩展板)

这样看来很适合做一些广告机等多媒体设备。

三、软件
除了强大的硬件性能,Milk-V Duo还具备良好的软件支持。官方释放了丰富的开发工具和库,方便用户进行各种应用程序的开发。此外,开发板还提供了丰富的示例代码和文档,帮助用户快速上手和学习。

>>>点此查看全文


2、OpenCV的交叉编译

Milk-V Duo是一款基于算能 CV1800B芯片的MPU,能够运行基于LINUX和RTOS的操作系统。算能 CV1800B使用的是平头哥的玄铁C906核,具有很强的处理能力,所以我们尝试交叉编译试用于Milk-V Duo的OpenCV图像处理库。平头哥的网站提供了优化的定制版OpenCV,据说这个版本可以最大限度地发挥芯片的性能,让人很是期待。

下载和编译OpenCV

图片

交叉编译器采用的是算能官方提供的。这个包中包括了用于裸机的elf工具链和gnu、musl两个版本的工具链。我们使用cat /proc/version目录查看了官方镜像所使用编译器的版本,和官方提供的工具链一致,而且是musl版本的。

图片

在主机上建立一个env.sh文件,输入如下内容:

HOST_TOOL_PATH=/home/xxx/milk-v/CV180x/host-tools


export PATH="$HOST_TOOL_PATH/gcc/riscv64-linux-x86_64/bin:$HOST_TOOL_PATH/gcc/riscv64-linux-musl-x86_64/bin:$HOST_TOOL_PATH/gcc/riscv64-elf-x86_64/bin:$PATH"

(左右移动查看全部内容)

然后在主机的命令行执行source env.sh以设置环境变量。

......略

演示结果:

图片

>>>点此查看全文


3、RoboMaster机器人装甲板的识别

上次我们介绍了OpenCV图像处理库的移植,这次我们尝试将RoboMaster机器人装甲板识别的程序移植到板子上,测试开发板的图像处理能力。

装甲板识别算法简介:

图片

装甲板识别的算法已经非常成熟,其基本思想是先利用阈值分割、膨胀等算法对图像中的灯条进行识别,再根据长宽比、面积大小和凸度来筛选灯条,对找出的灯条进行匹配找到合适的配对,并将配对灯条作为候选装甲板,提取其中间的图案判断是否是数字进行筛选。

代码移植注意事项

Milk-V Duo处理板的CPU主频达到1GHz,但是其RAM只有64MB,远少于一般Linux系统,所以在移植程序时必须非常小心内存的占用。我们的程序每次仅处理一帧图像,而且在处理过程中尽量减少对图像的Clone,处理的内存稍微多一点就可能导致程序失败。

在视频处理方面,我们没有采用OpenCV的VideoCapture和VideoWrite类,这两个类的处理都非常耗用内存,再加上我们的视频分辨率较高(1280×1024),处理不了几帧就会出错。我们采用的是将视频以图片序列进行存储,这样可以保障每次处理的内存降到最少。

>>>点此查看全文


4、光感bh1750驱动添加及测试

本章介绍在milkv-duo开发板上添加光感bh1750,并实现应用层测试。

一、威廉希尔官方网站 图查看

1.1 duo开发板i2c引脚:https://github.com/milkv-duo/duo-files

图片

这些都是可以作为i2c使用的引脚:

图片

注意:威廉希尔官方网站 图中的gpio0、1对应的是芯片上的gpio28、29,到dtsi中查看也是28、29。威廉希尔官方网站 图中检索gpio0、1即可找到对应的威廉希尔官方网站 。

如图,小板的gpio0、1的默认功能是IIC_SCL、IIC_SDA

图片

>>>点此查看全文


5、基于Duo开发板的Densenet图像分类

1、实验环境

图片

2、安装Docker

依次执行以下命令即可:

//1、安装依赖
$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release
//2、apt上注册Docker的GPG密钥圈
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
//3、下载安装脚本并运行
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh

(左右移动查看全部内容)

等待安装结束:

图片

验证docker:sudo docker run hello-world,有如下打印说明安装成功。

图片

3、拉取docker镜像 (方式1、2均可)

1)pull,拉取时长取决于网络环境

$ docker pull sophgo/tpuc_dev:v2.2

(左右移动查看全部内容)

2)导入镜像,云盘下载后导入即可

镜像下载:链接:https://pan.baidu.com/s/1298AU09H0t_w8BHZu7-REQ?pwd=cw8c

提取码:cw8c

复制到虚拟机里,导入:sudo docker load -i tpuc_dev.tar

图片

导入后列出本地列表可以看到框选镜像:

图片

......

测试结果:

图片

>>>点此查看全文

更多回帖

发帖
×
20
完善资料,
赚取积分