打印
[开发工具]

聊聊 STM32 MPU OpenSTLinux 实时扩展包 X-LINUX-RT

[复制链接]
187|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 STM新闻官 于 2024-5-16 10:39 编辑

众所周知,Linux作为通用操作系统(GPOS),在诸如工业自动化、运动控制、工业通信等应用场景中,很难满足实时响应需求。那么,如何让我们的嵌入式产品在满足Linux操作系统通用性的同时,兼顾实时性能呢?

答案是:给Linux内核打上 PREEMPT_RT“实时补丁”,对Linux内核进行调整和优化,从而达到可预测、更低延迟的实时性能。


问题来了!PREEMPT_RT “实时补丁”主要做什么?怎么打?接下来,我们展开说说。


PREEMPT_RT “实时补丁”的主要目的是尽量减少Linux内核代码中不可抢占的部分,以达到实时操作系统的要求。它的本质是Linux内核的一个实时扩展,为实时任务提供必要的调度机制和时间管理,通过采用抢占式调度策略,让高优先级的实时任务可以打断低优先级的任务,确保实时任务能够及时响应。


STM32 MPU OpenSTLinux支持统一平台化的Linux软件,以Linux内核为主线,支持Yocto & BuildRoot,预集成安全OS(OP-TEE),还有我们今天要着重说的支持Linux实时功能的扩展包X-LINUX-RT。
X-LINUX-RT作为 STM32 MPU OpenSTLinux 扩展包,它使能了 PREEMPT-RT 实时补丁,满足了PLC(可编程逻辑控制器)、运动控制器、工业通讯等诸多场合要求的实时性和确定性响应时间需求。


依照以下步骤,可从ST官方获取STM32 MPU OpenSTLinux 实时扩展包 X-LINUX-RT。



  • 点击“获取软件”,或从页面下方的“Get from GitHub”进入ST的代码仓库,点击绿色键“Code”,复选框中选中“Download ZIP”,即可下载代码了。下载前,建议大家先到STM32 MPU的WiKi页面阅读一下README文档,>>点击阅读README文档



  • 最后,将下载好的X-LINUX-RT配置到开发环境中,实时补丁就打好了。


Linux-RT与Linux实时性能测试(Cyclictest工具)
cyclictest常用于实时系统的基准测试,是评估实时系统相对性能的最常用工具之一。cyclictest反复测量并精确统计线程的实际唤醒时间,以提供有关系统的延迟信息。它可测量由硬件、固件和操作系统引起的实时系统的延迟。

基于STM32MP135F-DK板,使用cyclictest命令分别有“X-LINUX-RT”扩展包和没有“X-LINUX-RT”扩展包的系统测试其实时性。空载状态下,系统运行10分钟的测试曲线如下:

图1. 空载状态下,是否有“X-LINUX-RT”扩展包的测试曲线对比

对比测试数据,可看到打了X-LINUX-RT“实时补丁”的系统,延迟更加稳定,最大延迟更低,系统实时性更佳。

Linux-RT实时性能测试

同样,基于STM32MP135F-DK板,还是用cyclictest命令测试CPU空载及满载状态下的实时性能对比。系统运行12小时,空载状态和满载状态下的测试曲线如下:

图2. 系统运行12小时,有“X-LINUX-RT”扩展包的性能测试曲线根据cyclictest 测试结果,得出下表:

以上测试结果说明,打了实时扩展包X-LINUX-RT后,系统的实时性能得到大幅提升。



使用特权

评论回复
沙发
STM新闻官|  楼主 | 2024-5-16 10:40 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:意法半导体(中国)投资有限公司
简介:您的嵌入式应用将得益于意法半导体领先的产品架构、技术、多源产地和全方位支持。意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器。

507

主题

639

帖子

17

粉丝