在嵌入式系统中实现从RAM快速引导技术
来源: 作者: 发布时间:2016-12-30 09:03:45 浏览量:**_addr DCD **_handler
ENDIF
AREA Main, CODE, READONLY //配置存储器,为运行程序作准备。
从这里进入reset异常处理模式
EXPORT Reset_Handler
Reset_Handler ;/* 复位入口点,关闭所有中断 */
LDR r1, =IntMask
LDR r0, =0xFFFFFFFF
STR r0, [r1]
INITIALIZE_STACK /*初始化堆栈*/
。。。。。。。。。。。。。。。。。。。。。。。。。。。
LDR sp, =SUP_STACK ; 改变CPSR,进入SVC模式
SYNC_DRAM_CONFIGURATION 配置RAM空间
LDR r0, =0x3FF0000
LDR r1, =0x83FFFF90 ; 赋值 = 0x83FFFF91
STR r1, [r0] ; 特殊功能寄存器Start_addr = 0x3FF00000
;ROM 和 RAM空间配置
;ADRL r0, SysInitDataSDRAM【1】
LDR r0, =SysInitDataSDRAM【2】
LDMIA r0, {r1-r12}
LDR r0, =0x3FF0000 + 0x3010 ; ROMCntr Offset : 0x3010
STMIA r0, {r1-r12}
在RAM中建立异常向量表的镜像入口。【2】
EXCEPTION_VECTOR_TABLE_SETUP
LDR r0, =HandleReset ; 分配的异常向量表在存储区的位置.
LDR r1, =ExceptionHandlerTable ; 异常向量表
MOV r2, #8; 向量数
ExceptLoop /*建立过程*/
LDR r3, [r1], #4
STR r3, [r0], #4
SUBS r2, r2, #1;
BNE ExceptLoop
把代码从ROM拷贝到RAM【1】
ROM2SDRAM_COPY_START
LDR r0, =|Image$$RO$$Base| ;
指向 ROM 数据的指针
LDR r1, =|Image$$RO$$Limit| ;
LDR r2, =DRAM_BASE ;
RAM区的基地址
SUB r1, r1, r0 ; [r1] 循环计数
ADD r1, r1, #4 ; [r1]
ROM2SDRAM_COPY_LOOP
LDR r3, [r0], #4
STR r3, [r2], #4
SUBS r1, r1, #4 ; 减计数
BNE ROM2SDRAM_COPY_LOOP
改变ROM ,RAM的基地址
ADRL r0, SysInitDataSDRAM_S
/*装载新的地址表,重新配置ROM和RAM*/
LDMIA r0, {r1-r12}
LDR r0, =0x3FF0000 + 0x3010 ;
ROMCntr 偏移地址值 : 0x3010
STMIA r0, {r1-r12}
异常模式下堆栈的初始化
常用板料FR4相关特性介绍Ø常用板料FR4相关特性介绍:1)、板料成分组成:由玻璃布、环氧树脂、铜箔组成;2)、玻璃布分为:普通板料用玻璃布(即玻璃布成圆柱形的)及LDPP用玻璃布(即玻璃布为椭圆形的,便于激
基于LM2596的不间断直流电源设计方案 4月08日 第三届·无线通信技术研讨会 立即报名 12月04日 2015•第二届中国IoT大会 精彩回顾 10月30日ETF•智能硬件开发技术培训会 精彩回顾 10月23日ETF•第三届 消费
PCB设计应遵循的原则PCB设计的好坏对电路板抗干扰能力影响很大。因此,在进行PCB设计时,必须遵守PCB设计的一般原则,并应符合抗干扰设计的要求。要使电子线路获得最佳性能,元件的布局及导线的布设是
大电流电感