我正在处理引导加载程序(BareMetal)和基于 SafeRTOS 的应用程序。 我将引导加载程序矢量表@地址0x00000000、应用程序矢量表@ 0x00020000。 在跳转到应用程序后、我能够找到我的矢量表并正确执行基本系统初始化。
一旦我启动调度程序(当我启动 portSTART_FIRST_TASK 时更具体)、它 就会卡住。 此问题是基于操作系统的应用程序、而不是裸机应用程序。
您还可以共享引导加载程序和应用程序的链接器文件。
下面是两者的链接器文件、供参考
Bootloader 链接器
引导程序(X):origin=0x00000000 length=0x00000020 vfill =0xFFFF
FLASH0 (RX):origin=0x00000020 length=0x001FFFE0 vfill = 0xffffffff
FLASH1 (RX):origin=0x00200000 length=0x00200000 vfill = 0xffffffff
SRAM (rwx):origin=0x08002000 length=0x0002D000
栈(RW):origin=0x08000000 length=0x00002000
#应用
引导程序(X):origin=0x00020000 length=0x00000080 vfill =0xffffffff
KERR_FUNC (RX):origin=0x00020080 length=0x0000ff80 vfill = 0xffffffff
FLASH0 (RX):origin=0x00030000 length=0x001F0000 vfill = 0xffffffff
FLASH1 (RX):origin=0x00220000 length=0x00200000 vfill = 0xffffffff
堆栈(RW):origin=0x08000000 length=0x00001800
KERR_DATA (RW):origin=0x08001800 length=0x00000800
RAM (RW):origin=0x08002000 length=0x0007E000