4 Commits

Author SHA1 Message Date
77152a0718 Implement HAL_COM with function-pointer transport dispatch
Multi-channel communication abstraction where each channel is wired
to an MCU driver via function pointers in the config array. Adding
a new transport (SPI, I2C, etc.) requires only a config entry — zero
changes to HAL_COM_prg.c. Channel 0 defaults to USB-CDC via thin
wrappers that normalize MCU_USB's signature. HAL_COM.h includes
HAL_COM_cfg.h so callers can reference channel names. APP_CLSW
updated to pass channel parameter.
2026-04-12 23:26:21 +02:00
f50e877ffc Implement MCU_UART driver with blocking and non-blocking TX
Full hardware UART driver with config-driven per-instance setup.
Non-blocking SendBuffer supports DMA (zero-CPU) and ISR (FIFO-fill)
modes selectable per instance in MCU_UART_cfg.h. Both modes and
blocking SendBufferBlocking invoke a configurable TX-complete
callback (STD_NULL to ignore). All public functions take a u8
instance parameter. Config uses struct-of-arrays pattern for
runtime state, designated-initializer array for per-instance
settings, and value enums in the public header for parity/data
bits/stop bits/async mode. Added hardware_dma to CMake link list.
2026-04-12 19:36:41 +02:00
3687e48684 Add complete firmware stack with USB-CDC proof of life
Dockerized build system (Dockerfile, docker-compose, build.sh) with
Pico SDK cross-compilation. Modular CMake split into project_config,
mcu_config, and sources_config under cmake/. Component architecture
following inc/prg/cfg convention: STD_TYPES, MCU_USB, HAL_COM,
APP_CLSW, SYS_ECU. Full call chain SYS_ECU -> APP_CLSW -> HAL_COM
-> MCU_USB verified end-to-end on RP2040-Zero hardware over USB-CDC.
Includes flash.sh for automated .uf2 flashing on macOS and
devcontainer config for VS Code.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 18:23:24 +02:00
aabcb77641 Add CLAUDE.md and README.md for project documentation 2026-04-10 20:05:19 +02:00