0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Duo 系列开发板支持 Zephyr 了,赶紧拿出你的 Duo 来试试吧!

算能开发者社区 2024-05-17 08:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RTOS(Real-Time Operating System实时操作系统)能够让设备在关键时刻以精准的时序执行任务,为工业控制物联网设备、智能家居设备等都提供了可靠的底层支持,选择一个合适的 RTOS 将决定项目的成功与否,那么今天就为大家介绍如何使用 DuoS 运行 Zephyr RTOS 这款由 Linux 基金会维护、功能齐全的实时操作系统。

什么是 Zephyr RTOS?

Zephyr是一个开源、灵活且安全的RTOS,从资源受限的物联网传感器到复杂的工业设备,Zephyr凭借其日渐强大和完善的功能迅速获得了广泛的认可。这里我们列出几个主要特性:

  • 模块化设计:轻量级、灵活,Zephyr RTOS最低只要求8KB的内存,并允许开发者根据需求定制操作系统的各个模块,来扩展支持复杂的应用和硬件。
  • 强大的安全性:支持多种调度算法,包括合作式、抢占式和最早截止期优先调度等。Zephyr还提供了加密、安全启动和固件更新等多种安全功能。
  • 广泛的硬件支持:兼容多种架构,如ARM、x86、RISC-V和ARC等,并拥有丰富的外围驱动和板级支持包,目前社区支持的板卡已经超过了450种。
  • 强大开发工具:与主流开发工具集成,拥有活跃的社区支持和详细文档,能够让开发者迅速上手。

感兴趣的话可以查阅官方网站了解关于 Zephyr OS 的更多功能。

Zephyr 系统架构

Zephyr是一个开源、灵活且安全的RTOS,从资源受限的物联网传感器到复杂的工业设备,Zephyr凭借其日渐强大和完善的功能迅速获得了广泛的认可。这里我们列出几个主要特性:

  • 模块化设计:轻量级、灵活,Zephyr RTOS最低只要求8KB的内存,并允许开发者根据需求定制操作系统的各个模块,来扩展支持复杂的应用和硬件。
  • 强大的安全性:支持多种调度算法,包括合作式、抢占式和最早截止期优先调度等。Zephyr还提供了加密、安全启动和固件更新等多种安全功能。
  • 广泛的硬件支持:兼容多种架构,如ARM、x86、RISC-V和ARC等,并拥有丰富的外围驱动和板级支持包,目前社区支持的板卡已经超过了450种。
  • 强大开发工具:与主流开发工具集成,拥有活跃的社区支持和详细文档,能够让开发者迅速上手。感兴趣的话可以查阅官方网站了解关于 Zephyr OS 的更多功能。

Zephyr 系统架构

169bf91a-13e5-11ef-9043-92fbcf53809c.png

Zephyr 与其他 RTOS 的对比

特性

Zephyr

FreeRTOS

RT-Thread

许可证

Apache 2.0

MIT

Apache 2.0

架构支持

ARM, x86, RISC-V, ARC等

ARM, x86, RISC-V等

ARM, x86, RISC-V, ARC等

模块化设计

高度模块化

中度模块化

高度模块化

内存占用

安全特性

内存保护、多层次加密

基本加密支持

内存保护、加密支持

网络协议

多种协议支持,包括BLE、Wi-FiCAN

TCP/IP、UDP等

TCP/IP、BLE等

社区支持

活跃、全球性

活跃、全球性

活跃、亚洲为主

典型应用

工业、物联网、可穿戴设备等

工业、汽车等

工业、家居等

优点

内核服务、灵活调度、多架构支持

任务管理、内存管理、低功耗模式

多线程管理、事件驱动、文件系统、中文资料丰富

Zephyr 在 Duo S 上的应用

算能SG2000和SG2002,作为同时能够支持RISC-V、ARM以及已经适配了FreeRTOS的新型SoCs,结合了高计算能力与低功耗的特点,同样支持Zephyr RTOS。想体验、探索Zephyr的开发者们,继续往后看,这里我们以Milk-V Duo-S这块开发板(搭载sg2000)为例,展示如何移植(以下步骤均在Ubuntu22..04环境下执行)。

16b57d9a-13e5-11ef-9043-92fbcf53809c.png

1.环境搭建:

具体参考Zephyr官方文档:https://docs.zephyrproject.org/latest/develop/getting_started/index.html

安装依赖库

sudo apt install --no-install-recommends git cmake ninja-build gperf \ccache dfu-util device-tree-compiler wget \python3-dev python3-pip python3-setuptools python3-tk python3-wheel xz-utils file \make gcc gcc-multilib g++-multilib libsdl2-dev libmagic1

主要的依赖库所需的最低版本如下,请安装完成后检查是否满足要求。

  • CMake:3.20.5
  • Python:3.10
  • Devicetree compiler:1.4.6 按照官方建议,我们使用python虚拟环境来进行Zephyr项目的构建:

sudoaptinstallpython3-venvpython3 -m venv ~/zephyrproject/.venv //构建一个新的虚拟环境source ~/zephyrproject/.venv/bin/activate //激活环境pip install west //zephyr提供的”meta-tool”,可看成一个git工具

接下来我们需要安装Zephyr SDK:

wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5-1/zephyr-sdk-0.16.5-1_linux-x86_64.tar.xzwget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.16.5-1/sha256.sum | shasum --check --ignore-missingcd zephyr-sdk-0.16.5-1 && ./setup.sh

2.项目配置

west init ~/zephyrproject –m https://github.com/plctlab/rvspoc-p2307-zephyr.gitcd ~/zephyrproject/zephyrwest update //确认版本是否一致

3.编译

这里我们用经典的blinky闪烁来做测试,该示例会以1s的时间间隔闪烁开发板上的LED灯:

west build -p always -b milkv_duos -s samples/basic/blinky

编译成功后,会在~/zephyrproject/zephyr/build/zephyr路径下找到我们的zephyr.bin

4.验证

删掉milkv官方仓库里的PINMUX设定来避免引脚复用,然后重新编译镜像(具体细节查看仓库README)并烧录到TF卡上,挂载到boot分区。记得先将大核 linux 下的 /mnt/system/blink.sh 重命名,此时LED 灯将不再默认闪烁。接下来,用如下命令将编译好的zephyr.bin替换掉原本的fip.bin:

python3 /path/to/duo-buildroot-sdk/fsbl/plat/cv180x/fiptool.py \ -v genfip "/path/to/tfcard/fip.bin" \ --OLD_FIP="/path/to/tfcard/fip.bin" \ --BLCP_2ND="build/zephyr/zephyr.bin"

将TF卡放到duo-s开发板的卡槽中,上电!开机!可以看到蓝色LED灯重新开始闪烁,代表我们的Zephyr RTOS就成功移植到我们的板子上啦!


此示例里我们验证了GPIO,SysTick(CLINT中断)的可行性。

适配外设

  • Mailbox
  • PINMUX
  • GPIO
  • PWM
  • UART

16de69d0-13e5-11ef-9043-92fbcf53809c.png

以上就是我们对Zephyr RTOS的介绍和移植说明。无论您是在开发智能家居设备,还是计划在物联网领域大展宏图,Zephyr 都是一个不错的选择。搭载 SG200X 的 Duo 系列开发板能够为开发者提供可靠的项目支持。快来开启 Zephyr on RISC-V 的探索之旅吧!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    7328

    浏览量

    128620
  • 智能家居
    +关注

    关注

    1942

    文章

    9943

    浏览量

    195485
  • RTOS
    +关注

    关注

    25

    文章

    862

    浏览量

    122590
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【国庆中秋礼品 Milk-V Duo RISC-V开发板】开箱、介绍、环境搭建、工程测试

    【国庆中秋礼品 Milk-V Duo RISC-V开发板】开箱、介绍、环境搭建、工程测试 感谢电子发烧友论坛 【贺华诞 庆中秋 | 一起来为祖国母亲送祝福!留言有礼】 活动的支持~
    发表于 10-19 13:06

    【作品合集】群芯闪耀Milk-V Duo S 开发板测评

    - 安装编译环境并测试Hello world! 【Milk-V Duo S 开发板免费体验】3- 尝试免费3D打印开发板外壳 【Milk-V D
    发表于 09-16 11:03

    Milk-V Duo S 开发板免费体验 加焊EMMC 烧录系统

    【Milk-V Duo S 开发板免费体验】
    的头像 发表于 08-20 09:24 715次阅读
    Milk-V <b class='flag-5'>Duo</b> S <b class='flag-5'>开发板</b>免费体验 加焊EMMC 烧录系统

    【Milk-V Duo S 开发板免费体验】基于Duo S 使用 TDL SDK(V2版本)

    开发环境: Linux主机:Ubuntu 20.04 开发板:DuoS (SG2000) 1 TDL SDK简介 TDL SDK 是一款集成算法开发包,提供便捷的编程接口,使
    发表于 08-10 22:35

    【Milk-V Duo S 开发板免费体验】基于Duo S 使用 TDL SDK(V1版本)

    开发环境: Linux主机:Ubuntu 20.04 开发板:DuoS (SG2000) 1 TDL SDK简介 TDL SDK 是一款集成算法开发包,提供便捷的编程接口,使
    发表于 08-10 22:09

    【Milk-V Duo S 开发板免费体验】Milk-V DuoS性能测试

    ;编译 有鉴于Milk-V Duo S 开发板固件没带GCC,所以懒得去部署,还是在WSL上交叉编译。 (一)源码下载 直接从github上拉源码,git clone https
    发表于 08-09 23:32

    【Milk-V Duo S 开发板免费体验】测试舵机

    MG90S是不能控制转动的角度,因此它的占空比是用来控制舵机转动的速度和方向。 二、配置&实现 基于wiringX实现对Milk-V Duo S 开发板的pwm输出。 wiringX 是一个
    发表于 08-09 22:46

    【Milk-V Duo S 开发板免费体验】人脸检测

    【Milk-V Duo S 开发板免费体验】人脸检测 本文介绍 Milk-V Duo S 开发板结合 OV5647 摄像头模块,实现人脸检
    发表于 07-27 16:53

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试

    【Milk-V Duo S 开发板免费体验】SDK编译、人脸检测、OpenCV测试 本文介绍 Milk-V Duo S 开发板实现 Bui
    发表于 07-11 13:48

    【Milk-V Duo S 开发板免费体验】开发环境搭建和测试

    是gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu。 四、编译源码 选择demo里面的点灯,需要针对Milk-V Duo S 开发板修改初始化代码: #include <
    发表于 07-10 00:31

    【Milk-V Duo S 开发板免费体验】Duo S(SG2000)初步使用

    。 加载完镜像后点击“写入”按钮即可,会弹出警告,点击“Yes”等待写入完成。 等待烧写完成即可。 写入成功后即可将SD卡插入开发板。 4 系统调试 如果系统烧写成功后,接下来就可以调试系统
    发表于 07-10 00:27

    【Milk-V Duo S 开发板免费体验】人脸识别Demo应用

    duo-tdl-examples 自动安装配置环境source envsetup.sh 选择板子类型和处理器类型我这里都是2 完成编译样例cd sample_vi_fdmake导入程序到开发板scp
    发表于 07-09 11:09

    【Milk-V Duo S 开发板免费体验】1-开箱和烧写镜像

    感谢电子发烧友和Milk-V提供的评测机会。 开发板简介 我以前在电子发烧友评测过Milk-V Duo,也曾经带学生打过集创赛算能赛道,对他们的产品有所了解。Milk-V Duo S 是 Du
    发表于 07-02 20:42

    【Milk-V Duo S 开发板免费体验】开箱、介绍、系统更新

    【Milk-V Duo S 开发板免费体验】开箱、介绍、系统更新 本文介绍 Milk-V Duo S 开发板的相关信息,包括开箱与外观展示
    发表于 06-28 09:18

    【Milk-V Duo S 开发板免费体验】Milk-V Duo S开箱、固件烧写和系统体验

    摄像头(2x MIPI CSI 2 通道)和 MIPI 视频输出(MIPI DSI 4 通道)。 二、开箱 Milk-V Duo S 盒子的正面带有SG2000 soc的开发板素描,尤其说明支持RTOS
    发表于 06-27 23:21