SylixOS BSP开发(五)

gewenbin
gewenbin
gewenbin
188
文章
15
评论
2021年4月3日15:43:19 评论 3,056

内核启动参数设置

SylixOS内核启动的时候需要传入一些参数以打开、关闭或者设置内核的一些功能组件,这是通过调用API_KernelStartParam 这个接口来实现的:

SylixOS BSP开发(五)

这些参数根据实际的需要进行设置,这里只介绍几个比较重要的:

  • ncpus:设置系统使用的cpu的个数,在开发多核BSP时,可以先将这个参数设置为1,在单核下将最小系统完成后再改成多核进行调试。
  • kdlog:内核日志,内核在创建线程、信号量等等事件时会输出打印信息,这个参数就是控制是否开启这些打印信息。一般在最小系统开发时,我们需要将这个参数设置为yes,在开发完成后再改回no 关闭。
  • kderror:内核出错时是否输出相关的打印信息,一般都需要输出,使用默认的yes 即可。
  • kfpu:内核是否使用硬件浮点寄存器,SylixOS内核默认不使用硬件浮点寄存器。
  • heapchk:是否进行堆越界检测,一般都打开。
  • hz:系统tick的频率,默认100,一般设置为100或者1000,不易设置过高。
  • hhz:高度定时器频率,默认100,需要BSP的支持。
  • sldepcache:这个参数只在arm平台上使用,用于指明当前架构的自旋锁实现是否依赖于Cache。因为在系统启动过程中,可能会在Cache还未打开的情况下就使用自旋锁,通过这个参数告诉系统在启动过程中不要使用这些依赖Cache的指令。在全志R16平台,这个参数需要设置为yes
  • rfsmap:用于指明系统根文件系统映射关系。在实际情况下,根文件系统可以挂载在SD卡、eMMC、Nandflash、内存等各种存储介质上,这个参数就是用来选择具体怎么挂载的。在最小系统的开发阶段,由于我们还没有实现SD卡等存储介质驱动,所以都是挂载在内存文件系统上,也就是这个参数需要设置为rfsmap=/:/dev/ram

根据上述的讲解,我们将全志R16平台上的启动参数设置如下:

API_KernelStartParam("ncpus=1 kdlog=yes kderror=yes kfpu=no heapchk=yes "
                     "sldepcache=yes hz=1000 hhz=1000 "
                     "rfsmap=/:/dev/ram");

 

 

gewenbin
  • 本文由 发表于 2021年4月3日15:43:19
  • 转载请务必保留本文链接:http://www.databusworld.cn/10136.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: