VxWorks启动流程 分类: vxWorks 2014-03-14 08:44 316人阅读 评论(0) 收藏
我们项目中使用的是加载型VxWorks镜像
函数 |
函数功能 |
所在文件 |
bootTask() |
(a) 通过createBootLineFromFlash()从FLASH_ADRS中读出配置信息,组装bootline字符串到BOOT_LINE_ADRS (b) 调用autoboot() |
bootMain.c |
autoboot() |
延迟5s,等待用户输入 超时后调用sysInit() |
bootMain.c |
sysInit() |
(a) 锁住中断 (b) 禁用缓冲 (c) 用缺省值初始化系统中断表(仅i960) (d) 用缺省值初始化系统错误表(仅i960) (e) 初始化处理器寄存器到一缺省值 (f) 使回溯失效 (g) 清除所有悬置中断 激活usrInit(),指明启动类型 |
sysALib.s |
usrInit() |
(a) 调用sysStart() 对bss清零 (b) 调用cacheLibInit() 支持cache (c) 调用excVecInit(),初始化所有系统和缺省中断向量 (d) 调用sysHwInit(), usrCacheEnable() (e) 调用usrKernelInit() |
prjConfig.c |
usrKernelInit() |
依次调用classLibInit(),taskLibInit()qInit(),workQInit(), kernelInit() |
Target\config \comps\src \usrKernel.c |
kernelInit() |
初始化并启动内核。 (a)激活intLockLevelSet(); (b)从内存池顶部创建根堆栈和TCB (c)调用taskInit(), taskActivate(),用于usrRoot(); (d)调用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 |
版权声明:本文为博主原创文章,未经博主允许不得转载。