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