嵌入式Linux应用程序的最低CPU要求



我正在维护一个基于Yocto Project的嵌入式Linux系统。它目前运行在相当结实的硬件上,我想降低硬件的成本。因此,我正在寻找一种方法来了解运行当前应用程序所需的最低硬件要求。这包括RAM、闪存和CPU。

RAM/flash很可能很容易,因为我可以用freedf命令检查使用情况以获得良好的估计。

但对于CPU,我不确定如何测量或计算这些数据。我如何知道需要什么CPU频率?换成不同的ARM内核会如何影响CPU频率?等等

对此,您的解决方案是什么?

您可以对CPU内核和频率进行实验。

禁用/启用CPU核心:

  1. 将'maxcpus=n'(n是要激活的内核数(添加到内核命令行(U-Boot->引导期间的引导参数(

=> setenv kernelargs maxcpus=2

  1. 要在内核运行时禁用/启用内核:
  • 禁用核心X:echo 0 > /sys/devices/system/cpu/cpuX/online
  • 启用核心X:echo 1 > /sys/devices/system/cpu/cpuX/online

X是要启用/禁用的核心编号,范围从"1"到"(实际CPU核心的数量(-1"(始终启用核心0(。

要查看活动Core,请运行:cat /proc/cpuinfo

CPU频率

调速器:有几个频率调节器决定频率策略。默认的频率调节器是";ondemand";,其根据当前系统负载设置CPU频率。(注意:默认的调控器是在内核defconfig中选择的。在构建内核之前,您可以使用menuconfig选择不同的默认调控器-要达到此设置,请转到:CPU电源管理->CPU频率缩放->默认CPUFrequency scaling调控器(

列出所有可用的调速器:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

设置当前调速器:

echo GOVERNOR > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor(调速器是可用的调速器之一(

要查看可用的CPU频率:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

要查看当前CPU频率:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

要查看当前允许的最大CPU频率:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

要设置允许的最大CPU频率:echo FREQ > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq(FREQ是可用的CPU频率之一(

使用";用户空间";调速器,并使用以下命令将CPU设置为特定频率:echo FREQ > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed(FREQ是可用的CPU频率之一(

信息源

最新更新