|
找到crt.S文件,在 jal ra,_init前添加 jal ra,CleanRam
jal ra,CleanRam
jal ra,_init
jal ra,main
编写汇编函数 CleanRam添加至crt.S文件末尾
以下例程初始化值由a2寄存器决定,如需清0 改为0即可。
为方便观察,M0-M1段初始化成0XAB,LS4567初始化成0XCD,GS0初始化成0XEF
可在 jal ra,_init行打断点,在内存观察窗口观察对应的地址内容。
CleanRam:
#M0-M1 0x200-0x1000--------------------------------------------------
li a1, 0x200 //0x200
li a2, 0xab //a2 = 0xab
li a3, 0x1000
loop1:sw a2, 0(a1)
addi a1,a1, 4
bltu a1,a3,loop1
#LS4-LS7 0x10000-0x18000 ----------------------------------------------
li a1, 0x10000 //lui a1, 0x10 #0x10000
li a2, 0xcd //a2 = 0xcd
li a3, 0x18000 //lui a3, 0x18
loop2:sw a2, 0(a1)
addi a1,a1, 4
bltu a1,a3,loop2
#GS0 0x20000-0x22000----------------------------------------------------
li a1, 0x20000 //lui a1, 0x20 #0x20000
li a2, 0xef //a2 = 0xef
#lui a2, 986895 #a2= 0xf0f0f0f0
#addi a2, a2, 240
li a3, 0x22000 //lui a3, 0x22
loop3:sw a2, 0(a1)
addi a1,a1, 4
bltu a1,a3,loop3
ret
|
|