This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

6678二级引导程序初始化DDR、XMC



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;