迅为RK3588开发板实时系统-提高实时方法

发布时间:2025-3-24 14:33    发布者:就是塔塔
为了提高实时性,我们可以采用以下的方式
方法一: 抑制串口终端打印,输入以下以下命令:
echo 1 > /proc/sys/kernel/printk
方法二:禁止内存过度使用,输入以下命令:
echo 2 > /proc/sys/vm/overcommit_memory
/proc/sys/vm/overcommit_memory内核参数接受三种取值。
0 - 意思是内核利用某种算法猜测内存申请是否合理,如果认为不合理就会拒绝
1- 意思是对于内存申请来者不拒,使用这个设置会增加内存超载的可能性
2- 意思是内存拒绝等于或者大于总可用交换内存
方法三:使用轻量级窗口管理器代替桌面或者不使用桌面
我们建议使用轻量级窗口管理器代替桌面或者使用不带桌面的系统,这样可以有效降低
系统的CPU负担,并提高系统的响应速度。相比与传统的桌面环境,轻量级窗口管理器通常
具有更少的特效和图形处理要求,因此可以减小CPU的延迟。
方法四: 绑定核心
绑定核心就是设定某个线程或进程与某个CPU核的亲和力。设定以后,Linux调度器就会让
这个线程或者进程只在所绑定的核上面去运行,但并不是这个进程或线程独占这个CPU核,
其他进程和线程还是可以在这个核上面运行的。如果想要实现某个进程或线程独占某个核,
需要使用cpuset命令去实现。
实时rt应用可以由特定的核心进行处理,比如说我们将rt_test应用绑定到cpu2,输入以下
命令:
taskset -c 2 rt_test
taskset是一个可以将某进程任务指定到某个CPU上运行的命令,命令格式如下所示:
语法格式:taskset [options] -p [mask] pid
参数选项:
-a, --all-tasks 操作所有的任务线程
-p, --pid 操作已存在的pid
-c, --cpu-list 通过列表显示方式设置CPU(逗号相隔)
-V, --version 输出版本信息
为了优化系统性能和分散负载,对于ARM64架构的系统,在系统启动时,所有的外设中断通常是由CPU0处理。然而,对于关键的中断,可以在系统启动之后将它们绑定到其他核心上。举个例子,可以将eth0(以太网接口)的中断绑定到CPU3上。可以通过以下步骤来实现
1.jpg
查看中断号为86的中断的CPU亲和性列表。输入以下命令:
cat /proc/irq/86/smp_affinity_list

2.jpg

将中断号为86的中断的CPU亲和性设置为3,输入以下命令:
echo 3 > /proc/irq/86/smp_affinity_list
cat /proc/irq/86/smp_affinity_list
cat /proc/interrupts | grep eth0

3.jpg

方法五: 使用smp+amp方案
目前支持多核处理器的实时操作系统体系结构有俩种。一种是对称多处理SMP构架,一种是非对称多处理AMP构架。
AMP模式是在各个CPU核心上均运行一个操作系统(操作系统不一定完全相同),各个操作系统拥有自己专有的内存,相互之间通过访问受限的共享内存进行通信。而SMP模式由一个操作系统实例控制所有CPU核心,所有CPU核心共享内存和外设资源。相对比AMP模式,SMP模式的操作系统具有可共享内存,较高的性能和功耗比,以及易实现负载均衡等优点,更能发挥多核处理器的硬件优势。


本文地址:https://www.eechina.com/thread-884375-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 无线充电基础知识及应用培训教程2
  • 想要避免发生灾难,就用MPLAB® SiC电源仿真器!
  • 5分钟详解定时器/计数器E和波形扩展!
  • 基于CEC1712实现的处理器SPI FLASH固件安全弹性方案培训教程
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表