VxWorks启动流程
来源:互联网 发布:在交换机查ip端口号 编辑:程序博客网 时间:2024/06/10 03:43
我们项目中使用的是加载型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各部分初始化流程
- VxWorks各部分初始化流程
- vxworks启动进一步讨论
- VxWorks启动过程
- vxworks启动过程
- VxWorks启动解析
- VxWorks启动过程
- VxWorks启动解析
- VxWorks的启动过程
- VxWorks引导启动过程
- VxWorks 基本启动方式
- uboot启动vxworks
- VxWorks启动过程
- VxWorks启动过程
- 什么是 “动态规划” , 用两个经典问题举例。
- 怎样设计一款嵌入式产品
- Linux中的Redis缓存服务器(安装redis与配置)
- Pureftpd安装配置
- AWK 简明教程
- VxWorks启动流程
- (an error has occurred.See error log for more details) 解决办法
- Dijkstra算法(单源最短路径)
- [linux]linux驱动模块
- java读取xml信息
- Ubuntu安装fcitx-googlepingyin
- Windows7中的VPN设置教程
- Vxworks驱动程序的结构
- OSPF 正常启动时的DEBUG包