你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

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

[复制链接]
STMCU-管管 发布时间:2024-5-21 10:21
众所周知,Linux作为通用操作系统(GPOS),在诸如工业自动化、运动控制、工业通信等应用场景中,很难满足实时响应需求。那么,如何让我们的嵌入式产品在满足Linux操作系统通用性的同时,兼顾实时性能呢?
答案是:给Linux内核打上 PREEMPT_RT“实时补丁”,对Linux内核进行调整和优化,从而达到可预测、更低延迟的实时性能。
  b3 S' ]/ J5 C% }问题来了!PREEMPT_RT “实时补丁”主要做什么?怎么打?接下来,我们展开说说。; W5 P9 T8 F0 _5 {
9 d/ C* P5 W! ]5 H6 g1 q( L
PREEMPT_RT “实时补丁”的主要目的是尽量减少Linux内核代码中不可抢占的部分,以达到实时操作系统的要求。它的本质是Linux内核的一个实时扩展,为实时任务提供必要的调度机制和时间管理,通过采用抢占式调度策略,让高优先级的实时任务可以打断低优先级的任务,确保实时任务能够及时响应。
! C9 i& i$ s1 P! a5 l7 j- p0 pSTM32 MPU OpenSTLinux支持统一平台化的Linux软件,以Linux内核为主线,支持Yocto & BuildRoot,预集成安全OS(OP-TEE),还有我们今天要着重说的支持Linux实时功能的扩展包X-LINUX-RT。
: Z+ x- E- Q1 F, k* w
11.png
# R3 c0 t3 F; N% a) l
X-LINUX-RT作为 STM32 MPU OpenSTLinux 扩展包,它使能了 PREEMPT-RT 实时补丁,满足了PLC(可编程逻辑控制器)、运动控制器、工业通讯等诸多场合要求的实时性和确定性响应时间需求。& R5 z' i) C9 c; m% Y1 O1 [9 |
/ I9 \! \* ~7 Q) ^6 V' n% S1 R
依照以下步骤,可从ST官方获取STM32 MPU OpenSTLinux 实时扩展包 X-LINUX-RT。
- J) ]" q7 Q0 N: n, H- C* b) d1 u& g2 H6 p' W2 s
  • 进入st.com, 搜索框中键入“X-LINUX-RT”,>>点击进入网页。
  • 点击“获取软件”,或从页面下方的“Get from GitHub”进入ST的代码仓库,点击绿色键“Code”,复选框中选中“Download ZIP”,即可下载代码了。下载前,建议大家先到STM32 MPU的WiKi页面阅读一下README文档,>>点击阅读README文档。
  • 最后,将下载好的X-LINUX-RT配置到开发环境中,实时补丁就打好了。6 J' s" i' e. f. I

$ I/ y8 p0 u' z/ y' p- T& D1 E2 V0 ~9 `1 P2 n
Linux-RT与Linux实时性能测试(Cyclictest工具)/ v- W+ o. ~, L6 w9 q6 x
cyclictest常用于实时系统的基准测试,是评估实时系统相对性能的最常用工具之一。cyclictest反复测量并精确统计线程的实际唤醒时间,以提供有关系统的延迟信息。它可测量由硬件、固件和操作系统引起的实时系统的延迟。
, l% l! D3 D7 C8 S1 V* B7 l6 R! g# V  B5 {) f0 k0 e
基于STM32MP135F-DK板,使用cyclictest命令分别有“X-LINUX-RT”扩展包和没有“X-LINUX-RT”扩展包的系统测试其实时性。空载状态下,系统运行10分钟的测试曲线如下:
' X% ^  N: D* g" M* g: ?
12.png
  G, W# h$ P: D; W) B4 m
▲ 图1. 空载状态下,是否有“X-LINUX-RT”扩展包的测试曲线对比
对比测试数据,可看到打了X-LINUX-RT“实时补丁”的系统,延迟更加稳定,最大延迟更低,系统实时性更佳。
0 t* ^% R7 {. L
* w4 Z0 a' P# |! r% J

- F- W# \: J. l' W- m% T2 D' G8 rLinux-RT实时性能测试! H3 |. G6 m/ u7 H
同样,基于STM32MP135F-DK板,还是用cyclictest命令测试CPU空载及满载状态下的实时性能对比。系统运行12小时,空载状态和满载状态下的测试曲线如下:
- M& N& {+ I5 Q' q2 p6 P: E% d% ^0 n
13.png ' _- X+ Y4 E$ k7 K- \
▲ 图2. 系统运行12小时,有“X-LINUX-RT”扩展包的性能测试曲线
根据cyclictest 测试结果,得出下表:! Y2 h9 g8 f- t9 B& L
14.png ) M( c0 _; e% s0 z
以上测试结果说明,打了实时扩展包X-LINUX-RT后,系统的实时性能得到大幅提升。
9 @  T6 ?5 `" X2 a5 J# S: M" p
$ Y( ^+ w1 \0 v. P' I) P
赞 1 收藏 评论1 发布时间:2024-5-21 10:21

举报

1个回答
xu@xupt 回答时间:2024-5-21 14:25:37

X-LINUX-RT的应用不仅解决了Linux在高实时性需求场景中的局限性,还为嵌入式系统的开发提供了更多的灵活性和可能性。在未来的研究与开发中,深入探索和优化X-LINUX-RT的应用,将进一步推动实时系统的性能提升和技术进步,为各行业提供更加高效和可靠的解决方案。

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版