镜像种类不同,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启动流程的更多相关文章

  1. bootrom启动流程【转】

    转自:http://blog.csdn.net/blueoceanindream/article/details/6851787 闲来无事,总结一下linux bootrom的启动流程: 环境:MIP ...

  2. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  3. MyCat源码分析系列之——配置信息和启动流程

    更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)se ...

  4. Android进阶系列之源码分析Activity的启动流程

    美女镇楼,辟邪! 源码,是一个程序猿前进路上一个大的而又不得不去翻越障碍,我讨厌源码,看着一大堆.5000多行,要看完得啥时候去了啊.不过做安卓的总有这一天,自从踏上这条不归路,我就认命了.好吧,我慢 ...

  5. Spring Boot启动流程详解(一)

    环境 本文基于Spring Boot版本1.3.3, 使用了spring-boot-starter-web. 配置完成后,编写了代码如下: @SpringBootApplication public ...

  6. linux启动流程及自定义gurb

    linux 启动流程 POST BIOS(boot sequence) 所选择的启动设备次序的MBR中是否有引导程序, ----> MBR(bootloader) 提供内核列表 -------& ...

  7. linux启动流程

    看了深入理解linux内核一书的最后对linux启动流程的介绍,下面就把我能理解的写一下吧: bios(硬件加电自检POST,寻找第一个启动设备) the boot loader(可以从硬盘启动也可以 ...

  8. webapp启动流程

    webapp启动流程 看了这个教程,其实所有的webapp大致都是这个流程了.

  9. Tomcat源码分析之—具体启动流程分析

    从Tomcat启动调用栈可知,Bootstrap类的main方法为整个Tomcat的入口,在init初始化Bootstrap类的时候为设置Catalina的工作路径也就是Catalina_HOME信息 ...

随机推荐

  1. ng-show,ng-if区别

    在使用bootstrap中,我们会经常用到按钮组,也就是btn-group,如果仔细观察的话,会发现一个按钮组的第一个和最后一个按钮分别是有圆角的,如下图: 但是中间的按钮是没有圆角的,这样显得比较美 ...

  2. 开源中文分词工具探析(五):Stanford CoreNLP

    CoreNLP是由斯坦福大学开源的一套Java NLP工具,提供诸如:词性标注(part-of-speech (POS) tagger).命名实体识别(named entity recognizer ...

  3. python 之进程篇

    多线程给我们的感觉 1.因为GIL的存在,一个进程的多线程同一时刻只能进去一个,感觉是假的并发 2.只适合I/O密集型的任务 3.针对计算密集型,就挂了(变成串行了) 在python中想要充分利用多核 ...

  4. python抢小米6自动化脚本

    #!/bin/env python # coding=utf-8 from selenium import webdriver import time import unittest class Ge ...

  5. MySQL递归的替代方案

    类似查出某个机构下所有的子机构,可用递归的方式实现.但MySQL不支持递归,可以考虑用如下的方式来实现递归调用. 第一种,临时表方式,使用函数每次查出子机构,再可以和其他表联查. 第二种,新建一张表, ...

  6. MySQL索引之B+树

    MySQL索引大都存储在B+树中,除此还有R树和hash索引.B+树的基础还是B树. B树由2部分组成,节点和索引.下面将构建一个B树,每个节点存2个数据,每个节点有前,中,后三个索引.插入数字的顺序 ...

  7. BZOJ 2502: 清理雪道 [最小流]

    2502: 清理雪道 题意:任意点出发任意次每条边至少经过一次最小花费. 下界1,裸最小流.... #include <iostream> #include <cstdio> ...

  8. BZOJ 1935: [Shoi2007]Tree 园丁的烦恼 [树状数组 离线 离散化]

    传送门 刚才我还在郁闷网上怎么没人用$CDQ$分治做 突然发现根本没有时间序.... #include<iostream> #include<cstdio> #include& ...

  9. chrome无法登陆账号,显示操作超时的解决方案

    起因 今天重装了下windows操作系统,准备登陆chrome浏览器,以同步各种插件(你懂的),结果是...无法登陆账号,显示操作超时,真是无语了. 碰到了这个问题第一个直觉是:FQ.突然想到如果修改 ...

  10. css的浮动与定位

    显示与隐藏 标签 属性 值 效果 区别 css的style display none 元素不可见 不占页面空间 css的style visibility hidden 元素不可见 占页面空间 disp ...