vxWorks启动流程分析
来源:互联网 发布:网络覆盖 新方法 编辑:程序博客网 时间:2024/06/10 03:24
原文地址:VxWorks启动流程 作者:leonwang202
我们项目中使用的是加载型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启动流程
- x86上vxworks启动分析
- VxWorks中的任务及调度(三):VxWorks启动流程
- VxWorks启动代码rominit.s分析
- VxWorks启动代码romStart()函数分析
- VxWorks启动代码usrInit()函数分析
- VxWorks启动代码rominit.s分析
- VxWorks启动代码romStart()函数分析
- VxWorks启动代码usrInit()函数分析
- VxWorks启动代码rominit.s分析
- VxWorks启动代码romStart()函数分析
- VxWorks启动代码usrInit ()函数分析
- VXworks 启动
- uboot 启动流程分析
- Uboot启动流程分析
- Bootloader启动流程分析
- Uboot启动流程分析
- redis设置登录
- 终于!Linaro 加盟 Zephyr 项目
- java工程生成jar,配置文件放在jar外面,读写配置文件
- hdu 1845 Jimmy’s Assignment (二分匹配)
- 8086 中的栈
- vxWorks启动流程分析
- Java Spring 【@ContextConfiguration】java世界的那些注解
- <五> 网卡驱动的移植
- 对于str.translate的介绍 python
- MATLAB对矩阵进行多元素访问
- 双链表的基本操作
- java内部类(2)
- Nginx简单搭建
- windows服务器中检测PHP SSL是否开启以及开启SSL的方法