vxworks启动过程

一. 引导Bootstrap在ROM中执行

 

romInit.s:romInit

        目标板加电后,程序指针指向RESET中断程序入口处,开始执行初始化程序romInit.s,设置机器状态字及其他硬件相关寄存器,关闭中断,禁止程序和数据CACAHE,初始化内存,并设置堆栈指针,保存启动类型,调用romStart.c中的romStart().

bootInit.c:romStart()

    这是上电后第一个执行的C函数,根据堆栈中的参数决定是否清零内存RAM(如果是冷启动cold start,则清零),根据不同的bootRom文件,把ROM中数据段和文本段拷贝到RAM,(如果ROM代码是压缩的,还要解压).

二. ROM中的引导程序被搬移到RAM中,开始在RAM中执行映像

sysALib.s:sysInit()

        该函数为RAM入口地址,是引导启动后执行的第一个函数,它主要是非能中断,初始化堆栈指针,tlb页表初始化等,并跳转到usrInit中执行。

prjConfig.c:usrInit()

    此处需注意,在下图的流程图中调用的是usrConfig.c中的usrInit,这种可能是对于指定bsp中没有实现usrInit情况而言,实际使用中,会在prjConfig.c中自动生成usrInit函数,因此实际使用中,不会调用usrConfig.c中的函数,而是使用prjConfig.c中的函数

    主要功能是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值