stm32mp157 rt-preempt测试
环境
1.stm32mp157开发板;
2.linux-5.4.31 内核;
3.rt-preempt 补丁(patch-5.4.34-rt21.patch.sign)
4.buildroot-2022.02.8
一、打补丁
1.下载补丁
https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.4/older/
or
https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.4/older/
2.打补丁
linux-5.4.31-pwx-v1.4-preempt-rt 为内核源码
patch-5.4.34-rt21.patch 为补丁文件
命令:cd linux-5.4.31-pwx-v1.4-preempt-rt
patch -p1 < …/patch-5.4.34-rt21.patch
如果提示有错手动修改
二、配置内核
make ARCH=arm stm32mp1_myself_YT8511_defconfig
make menuconfig ARCH=arm
General setup->Preemption Model选择
(X) Fully Preemptible Kernel (Real-Time)
make ARCH=arm savedefconfig
make ARCH=arm CROSS_COMPILE=/xxx/…/arm-linux-
三、配置测试工具
1.进入buildroot-2022.02.8
2.配置rt-tests
编译buildroot,生成文件系统
四、测试
1.烧录内核并下载测试工具
2.cyclictest -t 5 -p 80
注释: 运行五个线程,线程优先级为80,无限循环
cyclictest运行结果详解:
T: 0 序号为0的线程
P: 0 线程优先级为0
C: 9397 计数器。线程的时间间隔每达到一次,计数器加1
I: 1000 时间间隔为1000微秒(us)
Min: 最小延时(us)
Act: 最近一次的延时(us)
Avg:平均延时(us)
Max: 最大延时(us)
preempt 补丁前
preempt 补丁后
3.对比preempt 补丁后比前 max 快了10倍,平均值快10us左右,min 多1us.