我正在处理引导加载程序和基于 RTOS 的应用程序。 我的应用程序是工作与所有的外设不带 booloader ,现在当我正在集成引导加载程序部分与应用程序,
应用卡在 I2C 寄存器中 ,状态寄存器在向其数据寄存器发送一个字节时没有被清除
while ((i2c->STR &(UINT32) I2C_TX_INT)== 0u)
#Bootloader 链接器
VECTORS (X):origin=0x00000000 length=0x00000020 vfill = 0xffffffff
FLASH0 (RX):origin=0x00000020 length=0x0001FFE0 vfill = 0xffffffff
FLASH1 (RX):origin=0x00200000 length=0x00200000 vfill = 0xffffffff
SRAM (rwx):origin=0x08002000 length=0x0002D000
堆栈(RW):origin=0x08000000 length=0x00002000
#Application 链接器
VECTORS (X):origin=0x00010020 length=0x00000080 vfill = 0xffffffff
KERN_FUNC (RX):origin=0x000100A0 length=0x0000FF60 vfill = 0xffffffff er
FLASH0 (RX):origin=0x00020000 length=0x001E0000 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=0x0007E0
引导加载程序跳转到应用程序,当应用程序中禁用 I2C 时,所有任务都在运行,我也在应用程序的 main 中调用了 viminit()
我在 bootloader 中更改了 vector.asm 文件、应用地址从地址0x00010020开始
复位入口
b _c_int00
解除引用
b #0x10018
svcEntry
b #0x10018
预取入口
b #0x10018
数据输入
b #0x10018
反向中断
LDR PC、[PC,#-0x1b0]
LDR PC、[PC,#-0x1b0]



