STM32重定位调试问题

其中有这么一段汇编 ,第一句是把0x080000cc地址的内容读到R0,第二句是把R0(即0x02000000)地址的内容的低八位读R0,但执行第二句话的时候,CPU会进入异常(根据lr为0xfffffff9和mode成了handler),不知道为什么???
01_uart_question.zip (69.1 KB)
01_uart_question.zip (69.1 KB)
--------C代码为79行的putchar(g_Char);在此处打断点,之后反汇编调试。代码在附件。使用单片机为STM32F103C6T6
0x08000086: 4811 .H LDR r0,[pc,#68] ; [0x80000cc] = 0x2000000
0x08000088: 7800 .x LDRB r0,[r0,#0]
0x0800008a: f000f877 …w. BL putchar ; 0x800017c

单片机换了,修改了SCT文件,修改了.S里的SP位置