I changed the ISR to no longer use a semaphore and instead have the CDC task to poll if data is ready. This results in the same hardfault happening, which I think suggests that this is more of a USB/TinyUSB issue rather than a FreeRTOS/RP2350 SMP port issue. Also, this error seems to always occur on the third "burst" of 8 packets.Maybe you have some race followed by stack/buffer overflow, try to increase USB buffers, sending too much/often.
Do you mean multiple faults? Or a double/floating point fault?Are you getting also a double fault ?
Here's the floating point register values when the exception occurs. I'm not so familiar with these registers, but it seems to me like the values are okay?
Code:
FPCCR @ 0xef34 0xc000001c- LSPACT [0:0] 0b0- USER [1:1] 0b0- S [2:2] 0b1- THREAD [3:3] 0b1- HFRDY [4:4] 0b1- MMRDY [5:5] 0b0- BFRDY [6:6] 0b0- SFRDY [7:7] 0b0- MONRDY [8:8] 0b0- SPLIMVIOL [9:9] 0b0- UFRDY [10:10] 0b0- TS [26:26] 0b0- CLRONRETS [27:27] 0b0- CLRONRET [28:28] 0b0- LSPENS [29:29] 0b0- LSPEN [30:30] 0b1- ASPEN [31:31] 0b1FPCAR @ 0xef38 0x2001a900- ADDRESS [31:3] 0x04003520FPDSCR @ 0xef3c 0x00000000- RMODE [23:22] 0b00- FZ [24:24] 0b0- DN [25:25] 0b0- AHP [26:26] 0b0Statistics: Posted by james.s — Wed Mar 26, 2025 10:56 pm