五、执行kernelInit()
该函数是由风河vxWorks库文件封装的,功能为提取kernel并运行,使得后期的初始化能够以kernel下运行的任务来完成。该任务名为tRootTask,它执行的方式类似于usrRoot。kernelInit先调用intLockLevelSet函数,屏蔽round-robin scheduling模式(不知怎么翻译),并创建中断堆栈。然后从内存池顶端产生root堆栈及TCB(任务控制块),产生root线程usrRoot,并终止线程usrInit。至此,中断被使能。
六、以任务形式执行usrRoot
usrRoot将完成内核及所有硬件的初始化(网络、驱动、I/O等),然后执行其他程序代码。它首先会调用memInit函数(可以选择memShowInit或usrMmuInit),一旦系统开始多任务执行,BSP会调用第一个函数sysClkConnect
vxWorks6.x ARM BSP启动过程分析:kernelInit与usrRoot

本文深入解析vxWorks6.x在ARM板上的BSP启动,涉及kernelInit函数,它屏蔽调度并创建root任务tRootTask。usrRoot任务则负责内核与硬件初始化,包括网络、驱动、I/O等。此外,文章通过启动流程图对比BootRom和vxWorks类型的映像启动区别。
最低0.47元/天 解锁文章
4897

被折叠的 条评论
为什么被折叠?



