正在进行安全检测...

发布时间:1714748325   来源:文档文库   
字号:
电子软件开发 《技术聚焦》2VxWorks专题 Page 1 of 16 Vxworks程序例子

系统初始化
系统初始化对不同的CPU,基本步骤是类似的. 系统初始化的主要步骤如下

启动

关闭中断

boot type到堆栈 清空缓存

VxWorks 系统的 PowerPC BSP,系统开机后执行的第一个函数 romInit(,ROM的起点,这里是使用的PowerPC汇编语言
/* 定义内部函数 internals */ .globl romInit /* start of system code */ .globl _romInit /* start of system code */
/* 定义外部函数 externals */ .extern romStart /* system initialization routine */
.text .align 2
/******************************************************************************* * * romInit ( int startType /@ only used by 2nd entry point @/ */
romInit: _romInit: bl cold /* 冷启动 */ bl warm /* 热启动 */
cold: http://www.eesdn.cn 电子软件开发网
Page 1 of 16
电子软件开发 《技术聚焦》2VxWorks专题 Page 2 of 16 li p5, BOOT_COLD bl start /* skip over next instruction */
warm: or p5, p0, p0 /* startType to p5 */
start: /* 此处是系统启动开始 */ /* 屏蔽MSRCE,EE,关闭所有的外部中断
/* * Disable external interrupts */
mfmsr p0 /* p0 = msr */
INT_MASK (p0, p1 /* mask EE and CE bit */ ori p1,p1,_PPC_MSR_ME /* enable machine checks */ mtmsr p1 /* msr = p1 */ isync
/* 下面两步是按照硬件定义初始化一些SPR,DCR寄存器,0或置1
/* SPR是特殊功能寄存器,DCR为设备控制寄存器,还有MSR机器状态寄存器,这些是PowerPC内核中很重要的寄存器
/* 初始化SPR,DCR寄存器置0 * Initalize registers that need to be set to zero. */
addi r4,r0,0x0000 mtspr SGR,r4 /* 解锁所有存储区域 SPR SGR 位置0 */ mtspr ESR, r4 /* SPR中的错误状态位 ESR 0 */ mtspr TCR, r4 /* 关闭所有的 timers */ mtspr PIT, r4 /* 0 PIT timer */ mtdcr UICER, r4 /* 关闭中断控制器(UIC中的所有中断 */ mtspr XER, r4 /* 0 integer exception 寄存器 */
/* 初始化另一些SPR,DCR寄存器置1 * Initalize registers that need to be cleared with 0xFFFFFFFF. */
addis r4,r0,0xffff ori r4,r4,0xffff
mtspr TSR, r4 /* timer */ http://www.eesdn.cn 电子软件开发网
Page 2 of 16

本文来源:https://www.2haoxitong.net/k/doc/d9239c9db0717fd5370cdc1f.html

《正在进行安全检测....doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

相关推荐