-
说明
-
点击数:4062
摘要: 镜像种类不同,VxWorks的启动过程会有所不同。 我们项目中使用的是加载型VxWorks镜像
函数 |
函数功能 |
所在文件 |
bootTask() |
- 通过createBootLineFromFlash()从FLASH_ADRS中读出配置信息,组装bootline字符串到BOOT_LINE_ADRS
- 调用autoboot()
|
bootMain.c |
autoboot() |
延迟5s,等待用户输入,超时后调用sysInit() |
bootMain.c |
sysInit() |
- 锁住中断
- 禁用缓冲
- 用缺省值初始化系统中断表(仅i960)
- 用缺省值初始化系统错误表(仅i960)
- 初始化处理器寄存器到一缺省值
- 使回溯失效
- 清除所有悬置中断
- item
激活usrInit(),指明启动类型
|
sysALib.s |
usrInit() |
- 调用sysStart() 对bss清零
- 调用cacheLibInit() 支持cache
- 调用excVecInit(),初始化所有系统和缺省中断向量
- 调用sysHwInit(), usrCacheEnable()
- 调用usrKernelInit()
|
prjConfig.c |
usrKernelInit() |
依次调用classLibInit(),taskLibInit()qInit(),workQInit(),kernelInit() |
Target\config\comps\src\usrKernel.c |
kernelInit() |
初始化并启动内核。
- 激活intLockLevelSet();
- 从内存池顶部创建根堆栈和TCB
- 调用taskInit(), taskActivate(),用于usrRoot();
- 调用usrRoot()
|
kernelLib.h |
usrRoot() |
依次调用
- usrKernelCoreInit()
- memPartLibInit()
- memInit()
- usrMmuInit()
- sysClkInit()
- usrIosCoreInit()
- usrKernelExtrsInit()
- usrIo***traInit
- usrNetworkInit()
- selectInit()
- usrToolsInit()
- cplusDemanglerInit()
- usrAppInit()
|
prjConfig.c |
usrAppInit() |
依次调用 startWdTask(), appMain() |
usrAppInit.c |