首先你可以根據指令 htop ,看到4個cpu
首先有倆個思路,第一種提高這個程序的優先順序,使cpu全速執行這個程序,這個是隨機分配到某個cpu上,執行
函式原型:
#include
#include
int test1(const
int pri)
pri= 0 (預設) to 99 (最高)
返回 0,成功; -1, 失敗;
函式只需要放在程式的初始化位子,就行;
第二種
將樹莓派單獨預留出乙個cpu,單獨的執行這個實時的程序
首先在/boot/cmdline.txt 中末尾新增
isolcpus=x,x為遮蔽的核心 x=3時為樹莓派中的最後乙個cpu
然後將程式掛載在剛剛禁用的cpu上,使cpu全速執行這個程式
#define __use_gnu
#include
.h>
void test2()
}
這裡需要定義 __use_gnu
在 sched.h中(片斷擷取)
#ifdef __use_gnu
/* access macros for `cpu_set'. */
# define cpu_setsize __cpu_setsize
# define cpu_set(cpu, cpusetp) __cpu_set_s (cpu, sizeof (cpu_set_t), cpusetp)
# define cpu_clr(cpu, cpusetp) __cpu_clr_s (cpu, sizeof (cpu_set_t), cpusetp)
# define cpu_isset(cpu, cpusetp) __cpu_isset_s (cpu, sizeof (cpu_set_t), \
cpusetp)
# define cpu_zero(cpusetp) __cpu_zero_s (sizeof (cpu_set_t), cpusetp)
# define cpu_count(cpusetp) __cpu_count_s (sizeof (cpu_set_t), cpusetp)
# define cpu_set_s(cpu, setsize, cpusetp) __cpu_set_s (cpu, setsize, cpusetp)
# define cpu_clr_s(cpu, setsize, cpusetp) __cpu_clr_s (cpu, setsize, cpusetp)
# define cpu_isset_s(cpu, setsize, cpusetp) __cpu_isset_s (cpu, setsize, \
cpusetp)
# define cpu_zero_s(setsize, cpusetp) __cpu_zero_s (setsize, cpusetp)
# define cpu_count_s(setsize, cpusetp) __cpu_count_s (setsize, cpusetp)
# define cpu_equal(cpusetp1, cpusetp2) \
__cpu_equal_s (sizeof (cpu_set_t), cpusetp1, cpusetp2)
# define cpu_equal_s(setsize, cpusetp1, cpusetp2) \
__cpu_equal_s (setsize, cpusetp1, cpusetp2)
# define cpu_and(destset, srcset1, srcset2) \
__cpu_op_s (sizeof (cpu_set_t), destset, srcset1, srcset2, &)
# define cpu_or(destset, srcset1, srcset2) \
__cpu_op_s (sizeof (cpu_set_t), destset, srcset1, srcset2, |)
# define cpu_xor(destset, srcset1, srcset2) \
__cpu_op_s (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)
# define cpu_and_s(setsize, destset, srcset1, srcset2) \
__cpu_op_s (setsize, destset, srcset1, srcset2, &)
# define cpu_or_s(setsize, destset, srcset1, srcset2) \
__cpu_op_s (setsize, destset, srcset1, srcset2, |)
# define cpu_xor_s(setsize, destset, srcset1, srcset2) \
__cpu_op_s (setsize, destset, srcset1, srcset2, ^)
# define cpu_alloc_size(count) __cpu_alloc_size (count)
# define cpu_alloc(count) __cpu_alloc (count)
# define cpu_free(cpuset) __cpu_free (cpuset)
/* set the cpu affinity for a task */
extern
int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
const cpu_set_t *__cpuset) __throw;
/* get the cpu affinity for a task */
extern
int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
cpu_set_t *__cpuset) __throw;
#endif
所以想使用掛載在cpu上的函式的時候,需要定義 __use_gnu,也同樣的只需要在程式初始化的時候,新增就可以了
倆者也可以同時新增在一起。
樹莓派 初嚐樹莓派
樹莓派是一款信用卡大小的微型電腦,可以說是 麻雀雖小,五臟俱全 作為一台功能完整的超小型電腦,也採用馮 諾依曼體系,就是包含了控制器 運算器 儲存器 輸入裝置 輸出裝置。只不過樹莓派把整個硬體系統整合在了一塊電路板上,這被稱為soc system on chip 比如華為手機所採用的麒麟處理器就是s...
樹莓派zero mysql 樹莓派zero初步除錯
回家之前就從網上購買了一堆裝置,回去也不能閒著,可以利用家裡相對齊全的準備安裝除錯。結果人還沒回來,東西先到了。購買的核心裝備是樹莓派zero w,雖然已經知道它比家族大哥樹莓派小不少,但拿到手裡還是驚奇它的小巧。在效能相對低下的情況下,zero感覺反而應該有更大的應用。其他的配件都是圍繞zero購...
樹莓派 關於樹莓派掉電問題
樹莓派沒有電池,所以斷電斷網情況下,時間會停留在上次關機的時間。如果再次開機,有網路的情況下,可以進行時間同步。但是極端情況下,沒有網路,就只能手動去修改 而沒網的情況下,客戶不懂linux,不會手動修改,那只能使用電池解決方案。可以用這東西 cr1220電池是鋰二氧化錳一次性電池,不可充電,標稱電...