We're using a Kinetis K61 which causes a Bus Fault Exception (exception 5) when accessing a location in the internal flash (address 0xC0010).
As far as I can tell from UM, the Kinetis Internal Flash does not have any error detection or correction, correct? Yet I get the exception, how??. I've been searching high and low for any register flags pointing me to more details but there seems to be none. I've tried turning off cache the whole internal flash area without any difference. The area is corrupt but how can the K61 know that without ECC? BTW, the debugger also fails reading that same address. Mind boggling :smileyhappy:
The exact instruction that causes it and a printout from my UnhandledException handler which prints information at time of crash:
0x0809EB58 E8B15018 LDM r1!,{r3-r4,r12,lr}
-------------------------------------------------------------------------------------
10:32:33.479> >Unhandled Exception!
10:32:33.479> SP: 0x1FFFCAF8
10:32:33.479> PC: 0x0809EB58(0x5018E8B1)
10:32:33.479> LR: 0x080C905B
10:32:33.479> PSR: 0x61000000
10:32:33.479> IRQ: 0 BASEPRI: 0x00
10:32:33.479> TASK: 30
10:32:33.479> ICSR: 0x00000805->Act:5,Pend:0
10:32:33.479> CFSR: 0x00008200 FSTAT:80
10:32:33.479> FAR: 0x000C0010<-Valid
10:32:33.479> SHCSR: 0x00070002
10:32:33.479> HFSR: 0x00000000 MCG: 0x0040026C
10:32:33.479> DFSR: 0x00000000 PMC: 0x00042231
10:32:33.479> R0: 0x1FFFCB60 R7: 0x00000004
10:32:33.479> R1: 0x000C0008 R8: 0x1FFFCB60
10:32:33.662> R2: 0x00000000 R9: 0x000C0028
10:32:33.662> R3: 0x00000038 R10: 0xAAAAAA1E
10:32:33.662> R4: 0x6946794D R11: 0x00000000
10:32:33.662> R5: 0x00000020 R12: 0x00000000
10:32:33.662> R6: 0x000C0008 PSR: 0x61000000
10:32:33.662> (LR: 0xFFFFFFFD PSR: 0x60000005)
10:32:33.662>
10:32:33.662> DDRCR30:00000001 IABR[0]:00000000
10:32:33.662> MCM_ISR:00020000 IABR[1]:00000000
10:32:33.662> MCM_FAD:28AA0020 IABR[2]:00000000
10:32:33.662> MCM_FAT:000001B3 IABR[3]:00000000
10:32:33.662> MCM_FDR:A8118003 MPU_CES:0001
10:32:33.662> DMA0_ES:00000000 MPU_ED0:00000000,EA0:00000000
10:32:33.662> DMA0_ER:00000000 MPU_ED1:00000000,EA1:00000000
10:32:33.662> SPI0_SR:C0004100 MPU_ED2:00000000,EA2:00000000
10:32:33.662> SPI1_SR:C2020303 MPU_ED3:00000000,EA3:00000000
10:32:33.662> SPI2_SR:00000000 MPU_ED4:00000000,EA4:00000000