Hi @hajianik,
Yes, I can reproduce it.
This is the code that reads the PFlash at 0x70000

0x7A2 moves 0x70000 into R3
0x7A6 is the ECC BUS fault instruction, it loads R3 with data at 0x70000
0x7A8 loads R2 with the address of variable "read".
0x7AA stores R3 at the address in R2.
This code addd 0x4 to the stacked PC (0x7A6 + 4 = 0x7AA).
__asm("mov r1, r13");
__asm("ldr r2, =0x1C");
__asm("add r3, r1, r2");
__asm("ldr r0, [r3]");
__asm("ldr r2, =0x4");
__asm("add r0, r0, r2");
__asm("str r0, [r3]");
If the return address is 0x7AA and R2 != address of the variable but a number that does not point to a valid SRAM memory, it will crash.
In this case, we could modify the stack like this:
__asm("mov r1, r13");
__asm("ldr r2, =0x1C");
__asm("add r3, r1, r2");
__asm("ldr r0, [r3]");
__asm("ldr r2, =0x2"); // add 2 only
__asm("add r0, r0, r2");
__asm("str r0, [r3]");
Regards,
Daniel