1.希望用一个RTSC工程实现core0在本地RAM运行,core1~7在外部DDR运行。怎么修改XMC寄存器使得相应的段放在内部或外部的物理地址?
2.二级引导程序是由核0执行?二级引导程序里可以放DDR3 PLL、DDR3配置、XMC配置?
3.二级引导程序完成之后,程序怎么交给core1~7在DDR中运行?core1~7的程序入口地址怎么确定?
二级引导程序如下:
.option D, T
.length 102
.width 140
COPY_TABLE .equ 0x90000400
EMIFA_BASE .equ 0x1800000
.sect ".boot_load"
.global _boot
_boot:
ZERO B1
_myloop:
NOP 5
_myloopend: nop
MVKL emifa_values, a3
MVKH emifa_values, a3
MVKL EMIFA_BASE, a4
MVKH EMIFA_BASE, a4
MVKL 0x0009, b0
MVKH 0x0000, b0
emifa_loop:
LDW *a3++, b5
SUB b0,1,b0
NOP 2
[b0] B emifa_loop
STW b5, *a4++;
NOP 4
MVKL COPY_TABLE, a3
MVKH COPY_TABLE, a3
LDW *a3++, b1
copy_section_top:
LDW *a3++, b0
LDW *a3++, a4
NOP 3
[!b0] B copy_done
NOP 5
copy_loop:
LDB *a3++, b5
SUB b0, 1, b0
[b0] B copy_loop
[!b0] B copy_section_top
ZERO a1
[!b0] AND 3,a3,a1
STB b5, *a4++
[!b0] AND -4,a3,a5
[a1] ADD 4, a5, a3
copy_done:
B .S2 b1
NOP 5
emifa_values:
.long 0x00052078;
.long 0x73A28E01;
.long 0xFFFFFFD3;
.long 0x00000000;
.long 0x22A28A22;
.long 0x22A28A22;
.long 0x57115000;
.long 0x0000081B;
.long 0x001FAF4D;