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

    文章

    6753

    浏览量

    123223
  • 智能家居
    +关注

    关注

    1927

    文章

    9529

    浏览量

    184535
  • RTOS
    +关注

    关注

    22

    文章

    809

    浏览量

    119490
收藏 人收藏

    评论

    相关推荐

    使用MCUXPresso插件开发Zephyr

    应广大读者朋友的热情邀请,我们特别策划了“Zephyr领进门”系列介绍(共十篇),旨在为大家深度剖析Zephyr OS——这一备受瞩目的开源实时操作系统。从使用MCUXPresso插件进行开发
    的头像 发表于 11-28 09:41 162次阅读

    正点原子fpga开发板不同型号

    ZYNQ-7000系列 ZYNQ-7000系列是正点原子的入门级FPGA开发板,适合初学者和教育用途。这些开发板搭载Xilinx的Zyn
    的头像 发表于 11-13 09:30 384次阅读

    深入解析Zephyr RTOS的技术细节

    Zephyr OS在嵌入式开发中的知名度逐渐增加,新的微控制器和开发板支持Zephyr。本文将深入讨论
    的头像 发表于 10-22 16:47 342次阅读
    深入解析<b class='flag-5'>Zephyr</b> RTOS的技术细节

    i.MX Linux开发实战指南—基于野火i.MX系列开发板

    电子发烧友网站提供《i.MX Linux开发实战指南—基于野火i.MX系列开发板.pdf》资料免费下载
    发表于 10-10 17:23 9次下载

    火柴盒大小的开发板duos做轻NAS体验

    火柴盒大小的国产开发板,做轻NAS是什么样的体验!哈喽,大家好;前段时间有一家公司叫算能,他送给我们一个火柴盒大小的一个开发板,他说这个开发板也可以做轻NAS,今天就带大家一起看看。DuoS体积很小
    的头像 发表于 10-10 08:08 943次阅读
    火柴盒大小的<b class='flag-5'>开发板</b>duos做轻NAS体验

    linux开发板如何编译curl

    准备开发环境 确保开发板已经安装了编译 curl 所需的工具,包括 gcc 、 make 和可能的其他库。如果开发板是交叉编译环境(即
    的头像 发表于 08-30 15:33 545次阅读

    Duo S 上使用 TDL SDK 高效部署人脸检测模型

    VTDLSDK是一款集成算法开发包,提供便捷的编程接口,使开发者们能够更快、高效地将各种深度学习技术应用于自己的产品和服务中。无论开发者是否是深度学习领域的专家,有
    的头像 发表于 06-22 08:33 478次阅读
    在 <b class='flag-5'>Duo</b> S 上使用 TDL SDK 高效部署人脸检测模型

    RK3568开发板支持AMP双系统

    RK3568开发板支持AMP双系统
    的头像 发表于 06-04 15:33 667次阅读
    RK3568<b class='flag-5'>开发板</b><b class='flag-5'>支持</b>AMP双系统

    PY32系列单片机开发板 常用型号都有 支持Keil,IAR进行开发

    、IOT、传感器、电动工具、电机控制等领域。 PY32系列单片机与大部份国产通用型MCU一样,支持Keil,IAR进行开发。芯岭技术提供目前PY32系列主流单片机
    的头像 发表于 05-22 14:48 948次阅读
    PY32<b class='flag-5'>系列</b>单片机<b class='flag-5'>开发板</b> 常用型号都有 <b class='flag-5'>支持</b>Keil,IAR进行<b class='flag-5'>开发</b>

    Surface Duo双屏手机支持运行Windows 11和安卓14操作系统

    Gustave Monce与Thai Nguyen两位开发人员的共同付出使Surface Duo能够成功运行Windows 11系统,同时也完美匹配最新款的安卓14系统。
    的头像 发表于 03-13 11:19 677次阅读

    【LicheeRV-Nano开发套件试用体验】LicheeRV-Nano上的IAI技术应用

    LicheeRV-Nano上的IAI技术应用 作者:大信(8125036) 一、LicheeRV-Nan开发板印象 昨天收到了 Mikv-V DUO 开发板的兄弟 - Lichee
    发表于 03-07 17:32

    全新MCX A系列MCU FRDM开发板:开箱即用的高效体验

    想尝鲜全新的MCX A通用MCU,当然少不了开发板支持。今天我们就向大家介绍恩智浦MCX A 系列全新一代FRDM开发板FRDM-MCXA153。
    发表于 02-29 09:12 978次阅读
    全新MCX A<b class='flag-5'>系列</b>MCU FRDM<b class='flag-5'>开发板</b>:开箱即用的高效体验

    简单认识通用MCU FRDM开发板

    为了加速通用MCU原型设计,恩智浦提供FRDM开发板和功能齐全的评估套件。FRDM开发板是一个低成本、可扩展的硬件平台,配合MCUXpresso Developer Experience的
    的头像 发表于 02-25 09:43 996次阅读

    fpga开发板与linux开发板区别

    FPGA开发板与Linux开发板是两种不同的硬件开发平台,各自具有不同的特点和应用场景。在以下的文章中,我将详细介绍FPGA开发板和Linux开发板
    的头像 发表于 02-01 17:09 2138次阅读

    【国产FPGA+OMAPL138开发板体验】1.嵌入式异构技术

    、应用广泛的评估,XQ138F-EVM绝对是的不二之选!赶紧来试试,绝对让大呼过瘾!
    发表于 01-29 00:12