您好!
我正在开发引导加载程序和基于 SAFERTOS 的应用程序。 我的应用程序是工作与所有的外设与 booloader ,现在我已经实现了安全诊断库,没有引导加载程序代码是工作的 ,对于引导加载程序,当我正在做更改链接器,它不工作.
1.引导加载程序链接器文件
VECTORS (X):origin=0x00000000 length=0x00000020 vfill = 0xffffffff
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
引导加载程序调用
复位入口
b _c_int00
解除引用
b #0x1ffff8
svcEntry
b #0x1ffff8
预取入口
b #0x1ffff8
数据输入
b #0x1ffff8
反向中断
LDR PC、[PC,#-0x1b0]
LDR PC、[PC,#-0x1b0]
2.具有 bootloadrer 链接器的应用
VECTORS (X):origin=0x00200000 length=0x00000080 vfill = 0xffffffff
KERN_FUNC (RX):origin=0x00200080 length=0x0000ff80 vfill = 0xffffffff
FLASH0 (RX):origin=0x00210000 length=0x001D0000 vfill = 0xffffffff
//FLASH1 (RX):origin=0x00200000 length=0x00200000 vfill = 0xffffffff //用于优化引导加载程序
堆栈(RW):origin=0x08000000 length=0x00001800
KERN_DATA (RW):origin=0x08001800 length=0x00000800
RAM (RW):origin=0x08002000 length=0x0007E000
3个具有安全诊断功能的应用链接器
VECTORS (X):origin=0x00000000 length=0x00000080 vfill = 0xffffffff
KERN_FUNC (RX):origin=0x00000080 length=0x0000ff80 vfill = 0xffffffff
FLASH0 (RX):origin=0x00010000 length=0x001F0000 vfill = 0xffffffff
FLASH1 (RX):origin=0x00200000 length=0x00200000 vfill = 0xffffffff
堆栈(RW):origin=0x08000000 length=0x00003000
kern_data (rw): origin=0x08003000 length=0x00002000
RAM (RW):origin=0x08005000 length=0x0007B000
4. 适用于引导加载程序连接器且具有安全诊断功能的应用
VECTORS (X):origin=0x00200000 length=0x00000080 vfill = 0xffffffff
KERN_FUNC (RX):origin=0x00200080 length=0x0000ff80 vfill = 0xffffffff
FLASH0 (RX):origin=0x00210000 length=0x001D0000 vfill = 0xffffffff
//FLASH1 (RX):origin=0x00200000 length=0x00200000 vfill = 0xffffffff //用于优化引导加载程序
堆栈(RW):origin=0x08000000 length=0x00003000
kern_data (rw): origin=0x08003000 length=0x00002000
RAM (RW):origin=0x08005000 length=0x0007B000
引导加载程序 和应用程序的前两个组合正在工作。 但是、我试图在设置安全诊断库时 启用中断 I s 在第一行调用、它进入该错误
在地址"0x4"处中断、没有可用的调试信息、或在程序代码之外。

