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

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

3天内不再提示

在Microchip的PolarFire SoC FPGA上移植NuttX实时操作系统

星星科技指导员 来源:microchip 作者:microchip 2023-05-06 11:12 次阅读

NuttX操作系统

NuttX是免费的开源RTOS,专注于标准合规性和小尺寸。NuttX的基本版本可以在低成本和低内存微控制器MCU)上运行。

由于NuttX是一个POSIX RTOS,你可以在POSIX操作系统(如Linux或MacOS)中编写一个应用程序,并对其进行验证和编译以在NuttX上运行,而无需学习新的API

NuttX也有许多与Linux并行的子系统。几个示例包括虚拟文件系统 (VFS)、内存技术设备 (MTD)、音频子系统和支持 USB 复合的 USB 系统。一些主要功能包括:

模块 化

微内核

完全抢占

自然可扩展

高度可配置

可轻松扩展到新的处理器架构

实时

确定性

支持优先级继承

极火®芯片芯片

Linux 操作系统 (OS) 的灵活性和实时系统控制硬件的确定性是安全关键系统、系统控制和安全应用的关键。尽管典型的对称多处理 (SMP) 实现提供了灵活性,但它们对于确定性性能并不理想。

PolarFire SoC FPGA 支持确定性非对称多处理 (AMP) Linux 应用和与内存子系统兼容的多核 Linux 处理器。这支持在单个多核中央处理器单元集群中混合使用确定性实时系统和 Linux 操作系统,该集群可以在运行 Linux 操作系统的同时以最高性能运行实时应用程序。也就是说,此解决方案提供了一个不完全确定的高性能系统。

PolarFire SoC FPGA 中的 NuttX

使用AMP模式,我们现在能够在PolarFire SoC FPGA中同时运行NuttX RTOS和Linux,这有助于将NuttX和Linux的优势整合到一个系统中。

NuttX RTOS在航空无人机行业非常受欢迎;它还用于各种应用,例如智能手机和录音机。

无人机对PX4自动驾驶软件的需求不断增长,Microchip的PolarFire SoC FPGA的电源效率使得在PolarFire SoC FPGA上实现NuttX端口非常相关和必要。

阿联酋阿布扎比技术创新研究所(TII)的安全系统研究中心(SSRC)拥有并领导了该集成项目。SSRC首先将基本端口分包给Offcode,Offcode是为该项目提供基本编码服务的Mi-V生态系统合作伙伴。这要归功于公共RISC-V标准,开源代码,强大的硬件,现有的工具链以及有价值的供应商工具,如SoftConsole和Libero® SoC设计套件。NuttX组织良好,进一步提升了移植任务本身。

SSRC进一步定义了NuttX工作所需的驱动程序和功能,并在NuttX实施之前测试了PX4功能和环境。该中心与开源社区密切合作,上游内容。SSRC的工程师也为上游NuttX内核的开发做出了贡献。

SSRC对内核开发的主要贡献包括:

RISC-V Sv39 MMU 驱动程序

在S模式下运行NuttX的配置选项

RISC-V PMP功能改进

支持CONFIG_BUILD_PROTECTED和CONFIG_BUILD_KERNEL

用于地址环境和页面分配器的RISC-V实现

NuttX CONFIG_BUILD_KERNEL任务环境初始化、elf 加载器、Crt0 编译和进程退出的更正

用于 SBI 集成的胶水逻辑

初始端口的详细信息可在此 GitHub 社区中找到。

大多数代码位于以下文件夹中:

arch/risc-v/src/mpfs/

板/RISC-V/MPFS/冰柱/

程序集文件mpfs_head。S 位于 arch/risc-v/src/mpfs -directory 下,包含代码执行的起点。安装机器陷阱-矢量基址寄存器(mtvec)也是其中的主要步骤。它指向所有中断和异常的陷阱处理程序。

Microchip有一个名为Hart软件系统(HSS)的引导加载程序。它包含 DDR 内存训练序列和其他硬件块初始化,在处理任何内存访问之前必须到位。因此,HSS最初用于加快移植速度。

后来,所有必需的设备驱动程序和功能也被整合到NuttX中。截至 2022 年 <> 月,NuttX 还可以作为支持 OpenSBI 的引导加载程序。这意味着基于 NuttX 的引导加载程序可以在其他 harts 上启动 U-boot 和 Linux。

现在,PolarFire Icicle套件支持NuttX的以下外围驱动程序:

串行端口

EMMC/SDDMA 支持

以太网

通用信息总组织

I2C

SPI

USB(复合 CDC/ACM 和大容量存储)

脉宽调制

DMA(内存到内存)

除了外围驱动程序外,它还具有所有必要的时钟设置,计时器,DDR培训,OpenSBI支持,通过哈特间通信(IHC)的RPMSG和其他一些功能。

AMP将Linux内核和NuttX粘合在一起。此功能是通过远程处理器消息传递 (RPMSG) 构建的。如果一个操作系统使用网络硬件,则另一个操作系统不会通过同时初始化和使用硬件来冲突。不过,可以做的是通过RPMSG框架使用该接口。但是,出于任何原因,消息可能会在不同的操作系统之间共享。

2022 年 <> 月,一个补丁被合并到 NuttX 中,该补丁支持两个不同的 NuttX 操作系统通过自己的 RPMSG 路径与 Linux 内核进行通信。当然,这也需要一些小的 Linux 内核修改。测试的设置具有以下 hart 设置:

哈特0:NuttX引导加载程序

Hart1:NuttX OS(独立),使用 RPMSG 通道 1

Hart2:NuttX OS(独立),使用 RPMSG 通道 2

Hart3:Linux 内核

Hart4:Linux 内核

Linux 内核与 harts 1 和 2 上的两个 NuttX 进行通信。如果需要编写任何实时车辆、无人机或任何时间关键型任务,我们建议考虑使用 NuttX 作为选项。

我们强烈推荐NuttX操作系统

考虑一下将时间关键层合并到 NuttX 中,同时保持对 Linux 的良好关注是否对您来说是一个可行的选择。

审核编辑:郭婷

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

    关注

    48

    文章

    6812

    浏览量

    147648
  • usb
    usb
    +关注

    关注

    59

    文章

    7436

    浏览量

    258207
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206738
收藏 人收藏

    评论

    相关推荐

    Microchip公布基于RISC-V的低功耗PolarFire® SoC FPGA产品系列的详细信息,并启动早期使用计划

    Microchip Technology Inc.(美国微芯科技公司)启动了PolarFire®片上系统SoC)现场可编程门阵列(FPGA
    发表于 12-11 16:55 1172次阅读

    实时嵌入式操作系统ucos-IIARM9移植应用

    实时嵌入式操作系统ucos-IIARM9移植应用
    发表于 04-22 13:00

    实时操作系统nuttx源码

    实时操作系统nuttx源码
    发表于 05-07 16:43

    Microchip发布业界首款基于 RISC-V 指令集架构的 SoC FPGA 开发工具包

    、基于 RISC-V 的 PolarFire® SoC FPGA 打造,汇集了众多的 Mi-V 合作伙伴,助力加速不同行业的客户设计部署和商业应用。 设计人员现在可以开始开发和评估实时
    发表于 09-25 11:39

    首款基于 RISC-V 指令集架构的 SoC FPGA 开发工具包

    SoC FPGA打造,汇集了众多的Mi-V 合作伙伴,助力加速不同行业的客户设计部署和商业应用。设计人员现在可以开始开发和评估实时操作系统(RTOS)、调试器、编译器、模块化
    发表于 03-09 19:48

    NuttX实时操作系统简介

    NuttX 介绍NuttX 实时操作系统NuttX 是一个实时
    发表于 08-05 08:27

    NuttX实时操作系统

    (嵌入式 实时操作系统 rtos nuttx 7.1)NuttX 介绍转载请注明出处: NuttX 实时
    发表于 08-06 07:53

    移植UCOSIII实时操作系统

    开发板:STM32F103C8T6开发环境:MDK5.14 、 串口小助手源码/库:STM32标准固件库V3.5、UCOSIII 3.03前言移植UCOSIII实时操作系统前必须对该
    发表于 08-23 08:06

    Microchip FPGA 和基于 SoC 的 RISC-V 生态系统简介

    ) 和PolarFire ®片系统 (SoC) FPGA 产品组合。因此,基于 RISC-V 的设计具有更低的功耗、更高的灵活性、更快的上
    发表于 09-07 17:59

    NuttX实时操作系统有哪些特征呢

    NuttX是什么?NuttX实时操作系统有哪些特征?
    发表于 11-03 06:34

    有关NuttX实时操作系统的基本知识汇总

    NuttX是什么?NuttX实时操作系统有哪些关键特征?
    发表于 11-04 06:14

    NuttX实时操作系统的关键特征有哪些呢

    NuttX是什么?NuttX实时操作系统的关键特征有哪些呢?
    发表于 11-04 07:08

    实时操作系统到Linux系统移植

    从一个操作系统到另一个操作系统应用程序的移植即使在最好的情况下也经常是一个艰巨的任务。把一个实时的嵌入式应用程序移植到一个新的
    发表于 05-06 10:27 1173次阅读

    Microchip将启动PolarFire片上系统FPGA EAP

    Microchip启动了PolarFire片上系统SoC)现场可编程门阵列(FPGA)早期使用计划(EAP)。
    发表于 12-16 15:16 647次阅读

    Microchip计划启动PolarFire片上系统FPGA

    Microchip启动了PolarFire片上系统SoC)现场可编程门阵列(FPGA)早期使用计划(EAP)。
    发表于 12-26 15:39 1116次阅读