这个是yt-link里的bug
错误原因:
YTM32B1LE0 是 Cortex-M0+ 内核,Armv6-M 架构,只支持部分Thumb2指令:
79e31496-abb9-4450-9dba-de7a313867d3-image.png
而这里使用的 LDR 指令的写法是 Thumb2 的 Post-indexed variant,在 Armv6-M 中是不支持的,Armv6-M 中只支持这样的指令形式:
LDR{<q>} <Rt>, [<Rn> {, #+/-<imm>}]
而这个文件里的写法是 Post-indexed variant
LDR{<c>}{<q>} <Rt>, [<Rn>], #{+/-}<imm>
d4411e9f-a8b2-4857-a911-5826cb2aa1fa-image.png
修改方式
写一次后手动增加寄存器:
3955a4c1-2fb7-437f-ab70-10ba230ed14a-image.png
_RAM_start:
/* 4bytes align */
LDR R1, =RAM_memory_start
LDR R2, =RAM_memory_end
SUBS R2, R2, R1
SUBS R2, #1
BLE _RAM_end
LDR R0, =0x5A5A5A5A
_RAM_loop:
STR R0, [R1, #4]
ADDS R1, #4
SUBS R2, #4
BGE _RAM_loop
_RAM_end:
BX LR