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.