Hello everyone i have HardFault exception on my cortex m1 many times at the same place. I've got HardFault implementation and i can read stacked registers:
stacked_r0 unsigned int 0x4 (Hex)
stacked_r1 unsigned int 0x60905f98 (Hex)
stacked_r2 unsigned int 0x0 (Hex)
stacked_r3 unsigned int 0x6092304b (Hex)
stacked_r12 unsigned int 0x60922ff8 (Hex)
stacked_lr unsigned int 0x60810be3 (Hex)
stacked_pc unsigned int 0x60810ce2 (Hex)
stacked_psr unsigned int 0x41000000 (Hex)
the operation at stacked PC is: 60810ce2: ldrsh r2, [r3, r2]
why it causes fault?
upd i've rearranged variables and for now it has crashed in memcpy called from freertos code
stacked_r0 unsigned int 0x6090c858 (Hex)
stacked_r1 unsigned int 0x6091f8b4 (Hex)
stacked_r2 unsigned int 0x3c (Hex)
stacked_r3 unsigned int 0x6091f8a4 (Hex)
stacked_r12 unsigned int 0x280 (Hex)
stacked_lr unsigned int 0x60827f89 (Hex)
stacked_pc unsigned int 0x6082b0dc (Hex)
stacked_psr unsigned int 0x1000000 (Hex)
6082b0ba: bne.n 0x6082b120
6082b0bc: adds r5, r2, #0
6082b0be: adds r4, r0, #0
6082b0c0: subs r5, #16
6082b0c2: lsrs r5, r5, #4
6082b0c4: adds r5, #1
6082b0c6: lsls r5, r5, #4
6082b0c8: adds r1, r1, r5
6082b0ca: ldr r6, [r3, #0]
6082b0cc: str r6, [r4, #0]
6082b0ce: ldr r6, [r3, #4]
6082b0d0: str r6, [r4, #4]
6082b0d2: ldr r6, [r3, #8]
6082b0d4: str r6, [r4, #8]
6082b0d6: ldr r6, [r3, #12]
6082b0d8: adds r3, #16
6082b0da: str r6, [r4, #12]
6082b0dc: adds r4, #16