I am working on the bootloader and an application based on RTOS. My Application is working fine with all pheripherals without booloader , now when i am integrating the bootloader part with the application ,
the application got stuck in I2c registers , status register is not getting cleared when sending a byte to its data register
while ((i2c->STR & (uint32)I2C_TX_INT) == 0U)
#Bootloader Linker
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
STACK (RW) : origin=0x08000000 length=0x00002000
#Application linker
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
STACKS (RW) : origin=0x08000000 length=0x00001800
KERN_DATA (RW) : origin=0x08001800 length=0x00000800
RAM (RW) : origin=0x08002000 length=0x0007E0
bootloader jumps to application and all the task are running when I2c is disabled in Application , also i have called viminit() in the main of applacation
i made changes in the vector.asm file in bootloader , application address start with address 0x00010020
resetEntry
b _c_int00
undefEntry
b #0x10018
svcEntry
b #0x10018
prefetchEntry
b #0x10018
dataEntry
b #0x10018
b phantomInterrupt
ldr pc,[pc,#-0x1b0]
ldr pc,[pc,#-0x1b0]