www.pudn.com > Flash.rar > boot.asm


 
 
BOOT_SIZE .equ 0x9800 ;待装载代码的大小 
 
FLASH_START .equ 0x90000000 ;FLASH起始地址 
 
BOOT_START .equ 0x0000000 ;L2 sram起始地址 
 
EMIF_GCR .equ 0x01800000 ;EMIF全局控制寄存器的地址 
 
EMIF_CE1 .equ 0x01800004 ;CE1空间控制寄存器的地址 
 
EMIF_CE1-8 .equ 0x1161C901 ;CE1空间控制寄存器的值 
 
.sect ".boot_load" 
 
.global_boot 
 
.ref_c_int00 
 
_boot: 
 
mvkl EMIF_GCR,A4 
 
mvkl 0x3300,B4 
 
mvkh EMIF_GCR,A4 
 
mvkh 0x3300,B4 
 
stw B4,*A4 ;配置EMF全局控制寄存器 
 
mvk1 EMIF_CE1,A4 
 
mvk1 EMIF_CE1-8,B4 
 
mvkh EMIF_CE1,A4 
 
mvkh EMIF_CE1-8,B4 
 
stw B4,*A4 ;配置CE1空间控制寄存器 
 
mvkl BOOT_START+1024,A4 ;待搬移数据的目标地址 
 
mvkl FLASH_START+1024,B4 ;待搬移数据的源地址 
 
mvkh BOOT_START+1024,A4 
 
mvkh FLASH_START+1024,B4 
 
zer0 A1 
 
_boot_loop1: 数据搬移 
 
ldb *B4++,B5 
 
mvkl BOOT_SIZE,B6 
 
add 1,A1,A1 
 
mvkh BOOT_SIZE,B6 ;B6为待搬移数据块大小,可根据实际情况来修改 
 
cmplt A1,B6,B0 
 
nop 
 
stb B5,*A4++ 
 
[B0]b_boot_loop1 
 
nop 5 
 
mvk1 .S2_c_init00,B0 
 
mvkh .S2_c_int00,B0 
 
B .S2 B0 ;转向C程序的入口 
 
nop 5