VxWorks的启动过程

根据上述所采用的BOOTROM的不同,VxWorks的启动过程会有所不同,下面主要介绍一下使用可加

VxWorks映像的启动过程。此时,从目标板上电复位到启动用户定义的任务的整个流程如下:

VxWorks的启动过程_第1张图片VxWorks的启动过程_第2张图片

bootrom 和VxWorks image 生成在都需要编译BSP文件,他们区别在于bootrom是调用上图前两部分;而vxworks image 是实现图最后部分(即调用sysInit, userInit, usrroot函数)


Boot中几个关键宏定义:

#define LOCAL_MEM_LOCAL_ADRS 0x00000000

#define ROM_TEXT_ADRS 0x100  ROM Boot程序执行起始地址( romStart( ) )

#define ROM_OFFSET(adr) (((UINT)adr - (UINT)romInit) + ROM_TEXT_ADRS)

define BOOT_LINE_OFFSET 0x1200

#define BOOT_LINE_ADRS ((char *) (LOCAL_MEM_LOCAL_ADRS+BOOT_LINE_OFFSET))

                    ldFileFromMch,从该起始地址读取加载要用到的tBootParams

define RAM_LOW_ADRS 0x10000  boot Rom将控制权交给VxWorks的起始进入点( usrInit( ) ). boot启动之后,将系统映像从Flashcopy或解压到RAM_LOW_ADRS地址处,并跳转到该地址执行

define VERSION_START_ADRS 0x10000 版本加载完后的执行入口地址.

# define FREE_RAM_ADRS  (end)      start right after bss of VxWorks

# define FREE_MEM_START_ADRS (FREE_RAM_ADRS + WDB_POOL_SIZE)

bootRom中的pMemPoolStart

 

 

VxWorks的启动过程_第3张图片

你可能感兴趣的:(VxWorks的启动过程)