VxWorks启动过程的详细解释(上)

vxworks有三个图像:

VxWorks Image有三种类型的文件

  1. Loadable Images:由Boot-ROM引导通过网口或串口下载到RAM
  2. ROM-based Images(压缩/没有压缩):即将Image直接烧入ROM,执行时将Image拷入RAM中执行。
  3. ROM-Resident Images:Image的指令部分驻留在ROM中执行。仅将数据段部分拷入RAM。

注意这里说的三种映像都是包括真正操作系统VxWorks的映像,当中后两种能够直接启动并执行起来。可是第一种不行,它必须借助还有一个叫做Boot Image的映像(能够在Tornado 中的build->build boot rom中生成)才干执行起来,也就是利用Boot Image引导起来然后通过网口或串口下载真正包括VxWorks的Loadable Image,然后才干执行起来。

也就是说Boot Image是和Loadable Image 结合使用的。

如今看来一共同拥有四种映像文件。让我们看看它们的组成吧:

  1. Boot Image:包括一段叫做BootStrap Programs的程序+一段ROM  BOOT Program程序。
  2. Loadable Images:有操作系统VxWorks和应用组成的映像。
  3. ROM-based Images(压缩/没有压缩):包括一段叫做BootStrap Programs的程序+ Loadable Images(即有操作系统VxWorks和应用组成的映像)
  4. ROM-Resident Images:同上

通过上面我们能够看出。ROM-based Images,ROM-Resident Images。Boot Image

三种映像都包括一段叫做BootStrap Programs的程序,它具有启动功能。能够把ROM中的代码段和数据段复制到RAM中;以下让我们看看三种VxWorks的启动过程:

  • Boot Image + Loadable Images:

我们说过Loadable Images是依靠Boot Image载入启动的。首先有Boot Image中的程序BootStrap Programs把Boot Program程序载入到RAM中的RAM_HIGH_ADRS处。然后控制权交给Boot Program。由Boot Program负责一系列简单的硬件初始化(网口,串口等),開始下载Loadable Images(即包括应用的VxWorks操作系统)到RAM_LOW_ADRS,然后控制权交给VxWorks操作系统開始运行。

以下的图一是一个简单的流程图,后面的图二是更为具体的流程图。

图一

图二(1)

图二(2)

  • ROM-based Images(压缩/没有压缩):

这样的映像由于其本身就包括BootStrap Programs程序,因此能够直接启动。所以这样的映像中也就不须要Boot Programme了,首先BootStrap Programs启动,把映像中的VxWorks载入到内存的RAM_LOW_ADRS处并開始执行。图三是一个简图,图四是更为详尽的流程图。

图三

图四

  • ROM-Resident Images:

这样的映像的载入和上一种是基本同有点儿。只是加载只有data科和bss只有部分。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2025-01-23 05:27:58

VxWorks启动过程的详细解释(上)的相关文章

VxWorks启动过程详解(上)

vxworks有三种映像: VxWorks Image的文件类型有三种 Loadable Images:由Boot-ROM引导通过网口或串口下载到RAM ROM-based Images(压缩/没有压缩):即将Image直接烧入ROM,运行时将Image拷入RAM中运行. ROM-Resident Images:Image的指令部分驻留在ROM中运行,仅将数据段部分拷入RAM. 注意这里说的三种映像都是包含真正操作系统VxWorks的映像,其中后两种可以直接启动并运行起来,但是第一种不行,它必须

Linux 启动过程的详细解释

对于无论什么系统, 但无法打开电源这么简单的事, 很多事情将在几秒钟内几秒钟或几十本短时间内发生, 了解这一过程将是完整的引导解决问题的任何或提高开机速度的前提. 下一个, 我们会专门寻找Linux程: 1. 载入 BIOS 的硬件信息并进行自我測试,并根据取得第一个可开机的装置; 2. 读取并运行第一个开机装置内 MBR 的 Boot Loader (如 grub, spfdisk 等程序); 3. 根据 Boot Loader 的设定载入 kernel, kernel 会開始侦測硬件并载入驱

VxWorks启动过程详解(下)

上一节主要是从映像的分类和各种映像的大致加载流程上看VxWorks的启动过程,这一节让我们从函数级看一下VxWorks的启动过程: 1. Boot Image + Loadable Images: 下面是具体的流程图: 其中第一阶段的执行流程使用的是上图的左边的源文件中的那些函数(romInit->romStart->usrInit->sysHwinit->usrKernelinit->usrRoot);第二阶段执行流程使用的是上图中右边源文件中的那些函数(sysInit-&

VxWorks启动过程具体解释(下)

上一节主要是从映像的分类和各种映像的大致载入流程上看VxWorks的启动过程,这一节让我们从函数级看一下VxWorks的启动过程: 1. Boot Image + Loadable Images: 以下是详细的流程图: 当中第一阶段的运行流程使用的是上图的左边的源文件里的那些函数(romInit->romStart->usrInit->sysHwinit->usrKernelinit->usrRoot);第二阶段运行流程使用的是上图中右边源文件里的那些函数(sysInit-&

OK6410开发板启动过程(详细信息)

硬件平台:OK6410开发板 KK U-Boot 1.1.6 (Sep 19 2014 - 10:00:03) for SMDK6410 **************************************** ** u-boot 1.1.6 ** ** Updated for OK6410 TE6410 Board ** ** Version (2012-09-23) ** ** OEM: Forlinx Embedded ** ** Web: http://www.witech.co

TCP/IP详细解释--TCP/IP可靠的原则 推拉窗 拥塞窗口

TCP和UDP在同一水平---传输层.但TCP和UDP最不一样的地方.TCP它提供了一个可靠的数据传输服务,TCP是面向连接的,那.使用TCP两台主机通过第一通信"拨打电话"这个过程,等待,直到通信结束就开始准备数据传输,最后,结束通话. 所以TCP比UDP可靠的多,UDP是把数据直接发出去.而无论对方是不是在收信,就算是UDP无法送达.也不会产生ICMP差错报文,这一经时重申了非常多遍了. 把TCP保证可靠性的简单工作原理摘抄例如以下 应用数据被切割成TCP觉得最适合发送的数据块.

你所不知道的SQL Server数据库启动过程,以及启动不起来的各种问题的分析及解决技巧(转)

目前SQL Server数据库作为微软一款优秀的RDBMS,其本身启动的时候是很少出问题的,我们在平时用的时候,很少关注起启动过程,或者很少了解其底层运行过程,大部分的过程只关注其内部的表.存储过程.视图.函数等一系列应用方式,而当有一天它运行的正常的时候突然启动不起来了,这时候就束手无策了,能做的或许只能是重装.配置.还原等,但这一个过程其实是一个非常耗时的过程,尤其当我们面对是庞大的生产库的时候,可能在这火烧眉毛的时刻,是不允许你再重搭建一套环境的. 所以作为一个合格的数据库使用者,我们要了

java 学习第9课,java android 项目的安装与启动过程

android 安装过程: 开发工具先把.java文件转换成.class,然后转换成dx,再签名打包成apk,最后在设备上执行 adb install c:\xxx.apk android 启动过程: 双击设备上的图标,创建进程-> 创建主线程 -> 在主线程中实例化 Activity(操作系统会把应用有关的信息context存进activity中,然后调用onCreate(). ) package com.example.hello; import android.app.Activity;

Symfony启动过程详细学习

想了解symfony的启动过程,必须从启动文件(这里就以开发者模式)开始. <?php /* * web/app_dev.php */ $loader = require_once __DIR__.'/../app/bootstrap.php.cache'; Debug::enable(); require_once __DIR__.'/../app/AppKernel.php'; //初始化AppKernel $kernel = new AppKernel('dev', true); //Ke