You are browsing as a guest. Sign up (or log in) to start making projects!

9h 44m 29s logged

I spent the past week fixing timing issues on the hardware and getting the simulation environment back into a usable state. Although it isn’t 100% yet, I managed to fix a lot of underlying bugs causing the program to fail on actual hardware.

Serial Communication and DMA

The biggest issue was that manual USART transfers were completely blocking the system. Printing alone was taking around 95 percent of the total execution time. This was destroying the preempt speed and causing weird timing bugs across the board. I rewrote the USART printing logic to offload everything to a background circular DMA task instead. While I was working on the serial connections, I also fixed the UART mapping bugs and moved all logging over to UART4 so it stops fighting with the GPS module on USART3. I also went through stm32f7xx_it.c and fixed the rest of the extern “C” methods. They were previously commented out, which was silently causing their respective DMA HALs to fail. Moving them to the correct user code sections fixed the issue entirely.

Simulation Environment and Tooling

On the software side, the simulation startup in the HAL was broken and preventing the virtual boards from properly configuring and running. I fixed the initialization sequence so the simulations actually boot correctly now. To make starting the environment even easier for new users, I updated both the run.sh and run.bat scripts with installers that automatically download Renode. This skips the manual installation step completely and gets the simulation running much faster.

0
22

Comments 0

No comments yet. Be the first!