我刚刚构建并设置了一个应用了RT补丁的vanilla Linux内核.一切都很顺利,我现在可以正确启动进入新内核.
令我疑惑的是:我有一个我在C中制作的模拟器程序,我希望它以硬实时模式执行,新内核应该允许它.可能整个模拟器不需要以实时优先级运行,但内部的一些任务可以.
我怎么能做到这一点?我认为只是运行该程序是行不通的.
我正在构建一个需要在ARM上运行的程序.处理器有足够的资源来运行程序,所以这个问题与这种类型的处理器没有直接关系,而是与非强大的处理器有关,资源和计算能力都是"有限的".
要打印调试信息(甚至激活部分代码)我使用头文件,我在其中定义我设置为true或false的宏,如下所示:
#define DEBUG_ADCS_OBC true
Run Code Online (Sandbox Code Playgroud)
在主程序中:
if (DEBUG_ADCS_OBC == true) {
printf("O2A ");
for (j = 0; j < 50; j++) {
printf("%x ", buffer_obc[jj]);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个坏习惯吗?有没有更好的方法来做到这一点?
此外,这些IF检查是否会以可衡量的方式影响绩效?
或者可以安全地假设在编译代码时,IF会以某种方式从流中删除,因为在两个不能更改的值之间进行比较?