众所周知,Linux作为通用操作系统(GPOS),在诸如工业自动化、运动控制、工业通信等应用场景中,很难满足实时响应需求。那么,如何让我们的嵌入式产品在满足Linux操作系统通用性的同时,兼顾实时性能呢? 问题来了!PREEMPT_RT “实时补丁”主要做什么?怎么打?接下来,我们展开说说。 STM32 MPU OpenSTLinux支持统一平台化的Linux软件,以Linux内核为主线,支持Yocto & BuildRoot,预集成安全OS(OP-TEE),还有我们今天要着重说的支持Linux实时功能的扩展包X-LINUX-RT。- J/ J! c; Q; k6 r E 依照以下步骤,可从ST官方获取STM32 MPU OpenSTLinux 实时扩展包 X-LINUX-RT。3 D- I8 S8 @8 H! ?) K9 |: j - G$ p! a1 h) |4 s x/ v
4 q$ o5 ] d9 {, [ _' G! ]8 Z Linux-RT与Linux实时性能测试(Cyclictest工具) cyclictest常用于实时系统的基准测试,是评估实时系统相对性能的最常用工具之一。cyclictest反复测量并精确统计线程的实际唤醒时间,以提供有关系统的延迟信息。它可测量由硬件、固件和操作系统引起的实时系统的延迟。+ \8 |% ?( f, T8 N- F! \ 基于STM32MP135F-DK板,使用cyclictest命令分别有“X-LINUX-RT”扩展包和没有“X-LINUX-RT”扩展包的系统测试其实时性。空载状态下,系统运行10分钟的测试曲线如下:% ~+ U, c o6 J. E1 F ▲ 图1. 空载状态下,是否有“X-LINUX-RT”扩展包的测试曲线对比 对比测试数据,可看到打了X-LINUX-RT“实时补丁”的系统,延迟更加稳定,最大延迟更低,系统实时性更佳。. V7 s/ S" N7 e4 bLinux-RT实时性能测试, G: R4 e( V" E% f4 N6 A 同样,基于STM32MP135F-DK板,还是用cyclictest命令测试CPU空载及满载状态下的实时性能对比。系统运行12小时,空载状态和满载状态下的测试曲线如下: ▲ 图2. 系统运行12小时,有“X-LINUX-RT”扩展包的性能测试曲线 根据cyclictest 测试结果,得出下表:8 G) O3 F: N( m1 [! z |
《STM32MPU安全启动》学习笔记+STM32MP系列mpu安全启动解析
《STM32MPU安全启动》学习笔记 - STM32MPU安全启动学**结
刘氓兔的64位入门挑战【2】——MP257和cubemx
STM32新增安卓支持 — OpenSTDROID,开启MPU应用新格局
刘氓兔的64位入门挑战【1】——MP257芯片下单和硬件准备
刘氓兔的64位入门挑战【0】——MP257选型
【问答有礼】问答小课堂:如何将AI方案无缝集成到STM32MP2项目中?
STM32开发板推荐 | 支持裸跑的米尔STM32MP135开发板,响应硬实时需求
意法半导体最具性价比、速度最快的单核MPU STM32MP13现已支持运行RTOS
最新消息:意法半导体最具性价比、速度最快的单核MPU STM32MP13现已支持运行RTOS!意法半导体兑现了之前的承诺!
X-LINUX-RT的应用不仅解决了Linux在高实时性需求场景中的局限性,还为嵌入式系统的开发提供了更多的灵活性和可能性。在未来的研究与开发中,深入探索和优化X-LINUX-RT的应用,将进一步推动实时系统的性能提升和技术进步,为各行业提供更加高效和可靠的解决方案。