内核启动参数
SylixOS 内核启动时,需要设置启动参数。如果 bootloader 支持,可以使用 bootloader 设置,但一般在 bspInit 函数内会设置内核启动参数。使用 BSP 本身设置内核启动参数时,需要调用 API_KernelStartParam 函数。其函数原型如下:
#include <SylixOS.h>
ULONG API_KernelStartParam(CPCHAR pcParam);
函数 API_KernelStartPara 原型分析:
- 此函数成功返回 ERROR_NONE ,失败返回错误号。
- 参数 pcParam 是启动参数, 是以空格分开的一个字符串列表。通常具有如下形式:
参数 | 说明 |
---|---|
ncpus=1 | CPU 个数 |
dlog=no | DEBUG LOG 信息打印 |
derror=yes | DEBUG ERROR 信息打印 |
kfpu=no | 内核态对浮点支持(推荐 no) |
heapchk=yes | 内存堆越界检查 |
hz=100 | 系统 tick 频率,默认 100(推荐 100 ~ 10000 中间) |
hhz=100 | 高速定时器频率,默认与 hz 相同(需 BSP 支持) |
irate=5 | 应用定时器分辨率,默认为 5 个 tick。(推荐 1~10 中间) |
hpsec=1 | 热插拔循环检测间隔时间,单位:秒(推荐 1~5 秒) |
bugreboot=no | 内核探测到 bug 时是否自动重启 |
rebootto=10 | 重启超时时间 |
fsched=no | SMP 系统内核快速调度 |
smt=no | SMT 均衡调度 |
noitmr=no | 是否支持 ITIMER_REAL/ITIMER_VIRTUAL/ITIMER_PROF,默认为支持,建议运动控制等高实时性应用, 可置为 yes 提高 tick 速度 |
tmcvtsimple=no | 通过 timespec 转换 tick 超时,是否使用简单转换法,建议 Lite 类型处理器可采用 simple 转换法 |
综上,设置启动参数时,只需要定义一个字符串,包含需要设置的启动参数,然后调用 API_KernelStartParam 即可。