fangkaixin 发表于 2024-1-4 19:14

【STM32MP135F-DK】实时性能评估

<div class='showpostmsg'> 本帖最后由 fangkaixin 于 2024-1-7 15:27 编辑

<!--
* @Author: fangkaixin fangkaixin@estun.com
* @Date: 2024-01-04 18:10:57
* @LastEditors: fangkaixin fangkaixin@estun.com
* @LastEditTime: 2024-01-04 19:11:59
* @FilePath: \undefinedc:\Users\fangkaixin\Desktop\# STM32MP13X 实时性能评估综述.md
* @Description: 图片上传还有点问题,周末搞一下
*
* Copyright (c) 2024 by fangkaixin, All Rights Reserved.
-->
# STM32MP13X 实时性能评估综述

STM32MP13X系列处理器作为一款注重实时性能的处理器,在X-LINUX-RT扩展包的支持下,展现出了其强大的实时处理潜力。本文将对其实时性能进行全面评估,并探讨其在实时应用中的优势与应用前景。

## 硬件特性与性能
STM32MP13X系列处理器低功耗设计和丰富的外设支持而闻名。这为其在实时应用领域提供了强大的硬件基础,能够应对各种实时场景的需求。

## X-LINUX-RT扩展包功能
X-LINUX-RT扩展包是针对STM32MP系列处理器的实时特性设计的,其为该系列处理器带来了以下关键功能:
- **确定性与低延迟:** 通过固定处理器频率和使用高分辨率定时器,实现了对延迟的极低要求。
- **电源管理优化:** 确保了处理器的最佳性能和寿命,针对不同系列进行了频率设置优化。

## 实时应用场景
在实时要求较高的领域,如工业自动化、机器人技术和医疗设备领域,STM32MP13X的实时性能展现出了其巨大的潜力。例如,在工业自动化中,其能够快速响应传感器数据,并实时进行处理,从而提高了生产线的效率和精确度。

## 开发工具和支持
针对STM32MP13X的开发环境和工具链提供了完善的支持,配备了强大的IDE和调试工具,为开发人员提供了便捷的开发体验。技术支持和丰富的资源也为开发者提供了极大的帮助。

## 实时性能测试

### 1. 准备测试环境(本文仅基于Developer Package添加X-LINUX-RT扩展包测试)
#### 1.1 OpenSTLinux SDK + 开发包STM32MP1 Developer Package,之前我们已经下载并安装好了,详见之前的文章[《玩转ecosystem软件包,内核编译初尝试》](https://bbs.eeworld.com.cn/thread-1267897-1-1.html)

#### 1.2 下载X-LINUX-RT meta,克隆以下仓库到指定路径
```bash
cd <Developer Package installation directory>/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sources/arm-ostl-linux-gnueabi/
git clone -b mickledore https://github.com/STMicroelectronics/meta-st-x-linux-rt.git
```
#### 1.3 修改BSP,为了启用实时性能特性,需要修改两个BSP组件:Linux kernel和OP-TEE OS
##### 1.3.1 修改Linux kernel
应用在Linux kernel路径下的补丁`<Developer Package installation directory>/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sources/arm-ostl-linux-gnueabi/meta-st-x-linux-rt/recipes-kernel/linux/6.1/6.1.28`
```bash
for p in `ls -1 <Developer Package installation directory>/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sources/arm-ostl-linux-gnueabi/meta-st-x-linux-rt/recipes-kernel/linux/6.1/6.1.28/*.patch`; do patch -p1 < $p; done
```

##### 1.3.2 修改OP-TEE OS
应用在OP-TEE OS 目录下的补丁 `<Developer Package installation directory>/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sources/arm-ostl-linux-gnueabi/meta-st-x-linux-rt/recipes-security/optee/optee-os`
```bash
for p in `ls -1 <Developer Package installation directory>/stm32mp1-openstlinux-6.1-yocto-mickledore-mp1-v23.06.21/sources/arm-ostl-linux-gnueabi/meta-st-x-linux-rt/recipes-security/optee/optee-os/*.patch`; do patch -p1 < $p; done
```

### 2. 运行性能测试命令
使用cyclictest工具进行系统的实时性能测试。以下是测试命令:
```bash
cyclictest --mlockall -t -a --priority=99 --interval=200 --distance=0 -l 1000
```

## 性能测试与比较
针对实时性能,在使用X-LINUX-RT实时拓展包前后,以及增加压力负载前后,进行了一系列测试,以下是执行cyclictest测试的结果:

#### 1.无负载,未使用X-LINUX-RT实时拓展包


#### 2.无负载,使用X-LINUX-RT实时拓展包


#### 3.加负载,使用X-LINUX-RT实时拓展包


从上述结果可以看出,在主频最高1Ghz的单核处理器下,运行富生态的OpenSTlinux系统,X-LINUX-RT实时拓展包给出的优化效果已经非常明显了,相信未来在更多实时场景下会见到它的身影。

## 未来展望
随着技术的不断发展,STM32MP13X系列处理器将继续在实时领域不断进步。未来版本将可能进一步优化实时性能,并针对用户反馈不断改进,以满足更广泛的实时应用需求。

综上所述,对于STM32MP13X系列处理器,ST定制化开发了X-LINUX-RT扩展包,而不是直接使用内核社区的实时补丁,表明其对实时应用领域的重视,凭借其强大的硬件支持和X-LINUX-RT扩展包的实时优化,展现出了在实时领域的显著优势。它不仅适用于现有的实时场景,而且在未来有望成为更多实时应用的首选处理器之一。相信未来会越做越好
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                               
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

lugl4313820 发表于 2024-1-4 19:58

<p>它不仅适用于现有的实时场景,而且在未来有望成为更多实时应用的首选处理器之一。相信未来会越做越好。</p>

<p>现在mcu,mpu的界限是越来越分不清了。可以相互补充了。</p>

Jacktang 发表于 2024-1-5 07:27

<p>定制化的X-LINUX-RT扩展包还是很好的嘛</p>

fangkaixin 发表于 2024-1-5 09:23

Jacktang 发表于 2024-1-5 07:27
定制化的X-LINUX-RT扩展包还是很好的嘛

<p>ST生态确实做的好,各种扩展包很齐全</p>

fangkaixin 发表于 2024-1-5 09:31

本帖最后由 fangkaixin 于 2024-1-7 15:33 编辑

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3291504&amp;ptid=1268866" target="_blank"><font color="#999999">lugl4313820 发表于 2024-1-4 19:58</font></a></font> 它不仅适用于现有的实时场景,而且在未来有望成为更多实时应用的首选处理器之一。相信未来会越做越好。 ...</blockquote>
</div>

<p>其实mcu,mpu侧重点还是不同的。现在mpu的实时化方案很多,比如用mpu上的小核心运行rtos弥补,与运行Linux的大核心进行核间通信,再比如虚拟化也是一个发展方向。这方面ST官方想的很周到了,既有实时扩展包,还可以直接运行RTOS</p>

zhgongzuoshi 发表于 2024-7-10 10:43

<p>版主,您本章节的内容从1.1开始都是在开发板上操作吗?</p>

fangkaixin 发表于 2024-7-18 17:38

zhgongzuoshi 发表于 2024-7-10 10:43
版主,您本章节的内容从1.1开始都是在开发板上操作吗?

<p>是的</p>
页: [1]
查看完整版本: 【STM32MP135F-DK】实时性能评估