most of the modules are placed statically in RAM at compile time. This helps freeing up RAM at runtime: 12872 bytes free vs 8420 bytes in 0.9.8
I found the THEKERNEL->streams->printf() syntax a bit bulky so I added a printk() function and replaced all instances. Going forward, this should be used only for debug or informational output, not command responses. I'll add better seperation later.
SlowTicker has been replaced with SoftTimer (wraps FreeRTOS timers) and can be used more flexible without going through THEKERNEL.
preliminary webserver
MRI is fixed and working over the USB-C port. You can run break from the MDI and then attach a debugger using the gdb remote protocol.
As FreeRTOS allows for multitasking code might run concurrently now and any function can be interrupted at any time (except for the step motor controller) so if different tasks access the same memory locations mutexes will likely be required.
There's a simple upload.py script I added to easily uploading the firmware like this: python3 upload.py $CARVERY_IP 2222 LPC1768/main.bin /sd/FIRMWARE.BIN -r (-r will trigger reboot after upload)
THEKERNEL->streams->printf()
syntax a bit bulky so I added aprintk()
function and replaced all instances. Going forward, this should be used only for debug or informational output, not command responses. I'll add better seperation later.SlowTicker
has been replaced withSoftTimer
(wraps FreeRTOS timers) and can be used more flexible without going through THEKERNEL.break
from the MDI and then attach a debugger using the gdb remote protocol.upload.py
script I added to easily uploading the firmware like this:python3 upload.py $CARVERY_IP 2222 LPC1768/main.bin /sd/FIRMWARE.BIN -r
(-r will trigger reboot after upload)