📄 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -