My config: using TM4C1294NCPDT eval kit, CCS v6.0, TI-RTOS 2.0.1.23, SysBios 6.40.01.15, Compiler TI v5.1.5
I am getting a fault after jumping from my bootloader (exists at flash address 0x0000.0000) into my flash application (exists at flash address 0x0004.0000).
ti.sysbios.family.arm.m3.Hwi: line 1036: E_hardFault: FORCED
ti.sysbios.family.arm.m3.Hwi: line 1081: E_memFault: IACCVIOL: Instruction Access Violation, address: e000ed34
Exception occurred in ISR thread at PC = 0x4317eb0e.
Core 0: Exception occurred in ThreadType_Task.
Task name: {unknown-instance-name}, handle: 0x2000ef48.
Task stack base: 0x2000ef98.
Task stack size: 0xc00.
R0 = 0x000507dd R8 = 0xffffffff
R1 = 0x20014b4c R9 = 0xffffffff
R2 = 0x00000004 R10 = 0xffffffff
R3 = 0x00000290 R11 = 0xffffffff
R4 = 0xffffffff R12 = 0x00000000
R5 = 0xffffffff SP(R13) = 0x20015340
R6 = 0xffffffff LR(R14) = 0xfffffffd
R7 = 0xffffffff PC(R15) = 0x4317eb0e
PSR = 0x60000038
ICSR = 0x00423003
MMFSR = 0x01
BFSR = 0x00
UFSR = 0x0000
HFSR = 0x40000000
DFSR = 0x0000000b
MMAR = 0xe000ed34
BFAR = 0xe000ed38
AFSR = 0x00000000
Terminating execution...
This is how I jump from my bootloader:
#define APP_START_APP_ADDRESS 0x00040000 // 256K
// jump
HWREG(NVIC_VTABLE) = APP_START_APP_ADDRESS;
__asm(" ldr r1, [r0]\n"
" mov sp, r1\n");
__asm(" ldr r0, [r0, #4]\n"
" bx r0\n");
I am using TI RTOS in both my bootloader and the application, so maybe that is complicating things? Can someone give me some suggestions on how to proceed.
Thank You.