VxWorks启动流程
2014-03-14 08:44
162 查看
镜像种类不同,VxWorks的启动过程会有所不同。
我们项目中使用的是加载型VxWorks镜像
我们项目中使用的是加载型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 |
相关文章推荐
- VxWorks中的任务及调度(三):VxWorks启动流程
- VxWorks启动流程
- VxWorks启动流程
- VxWorks启动流程 分类: vxWorks 2014-03-14 08:44 316人阅读 评论(0) 收藏
- vxWorks启动流程分析
- linux启动流程导读(arm为例)<二>
- cocos2dx学习笔记-启动流程
- OpenStack L版 neutron server的启动流程 四
- DM365视频处理流程/DM368 NAND Flash启动揭秘
- 基于ARM的嵌入式系统Bootloader启动流程分析[转自http://blog.ednchina.com/darkbluexn/11951/message.aspx#]
- linux的启动流程
- CentOs 系统启动流程相关
- android系统启动流程之init.rc详细分析笔记
- Linux的启动流程以及GRUB详解
- VxWorks各部分初始化流程
- VxWorks 基本启动方式 分类: vxWorks 2014-03-14 08:46 269人阅读 评论(0) 收藏
- 基于ar9331 mips架构AP121 uboot分析(3) 启动流程
- kvm启动虚拟机流程(8)
- CentOS 6.x 启动流程
- 深入理解Java之jvm启动流程