VxWorks的启动过程

来源:互联网 发布:王者和lol的区别 知乎 编辑:程序博客网 时间:2024/04/29 12:23

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

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

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

 

 

原创粉丝点击