Closed dvdsk closed 5 months ago
False alarm, the issue was on my size. Specifically the EMBASSY_EXECUTOR_TASK_ARENA_SIZE
was set to 2000
which seems to be too high. Removing stopped the issue.
edit: want actually that, it was the embassy net w5500 state that had a too big a queue
Setup
Symptom:
program hangs.
Investigated with debugger (probe-rs dap server). An initial breakpoint just above
self.info.regs.cr2().modify( etc etc
it is reachable. A second breakpoint is set beyond themodify(
. Then we continue from the inital breakpoint. Instead of halting at the second breakpoint the program hangs.Callstack
When we tell de debugger to halt we find we are in the HardFault handler. From the callstack below we see that the cause was a BusFault due to a Precise data access error at memory adress:
0x20010004
. On Arm precise means the error was caused by the preceding instruction. In this case theread_volatile
.min example repo
https://github.com/dvdsk/i2c_hangs_min_example
related
This might very well be the same as the harder to replicate: #2968