You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This replaces Netduino Plus 2 (STM32F4) QEMU target with B-L475E-IOT01A
Discovery (STM32L475VG) for proper FPU/MPU emulation, eliminating the
mock infrastructure (mpu_mock, scb_mock, safe_mmio) that was papering
over the old target's incomplete peripheral emulation.
Platform changes:
- Add STM32L4 platform support (registers, GPIO, RCC, USART, NVIC,
linker scripts with correct L4 memory map and no CCM RAM)
- Fix L4 register addresses: USART1 at 0x40013800, RCC enable
registers at correct L4 offsets, GPIO clocks on AHB2 (not AHB1),
PLL source set to MSI (not HSE), USART_IT_CR offsets for L4
- Add full L4 USART register ops (ISR/RDR/TDR layout)
- Add ARM semihosting for console I/O under QEMU
FPU support:
- Fix irq_restore: single asm block with __builtin_offsetof prevents
compiler from reusing clobbered registers after ldm {r4-r11}
- Add -mgeneral-regs-only to kernel CFLAGS to prevent GCC from
emitting VFP instructions for non-FP operations in handler mode
- Add FPU lazy context save/restore (d8-d15) in PendSV handler
IPC fix:
- Fix L4_Ipc naked function: reload UTCB MR pointer from
current_utcb after SVC return instead of reusing LR (which the
exception frame restores to the caller's return address)
KDB:
- Add USART1 RX interrupt path for KDB input under QEMU semihosting
(CONFIG_KDB_UART_INPUT, gated on CONFIG_QEMU)
- Improve hard fault handler to read correct stack (MSP vs PSP)
Build/test:
- Update qemu-test.py: auto-detect board, add -semihosting for L4,
fail on unsupported boards instead of silent fallback
- Bootstrap Kconfig tools in CI test job before direct Python usage
- Update CI workflow: replace netduinoplus2 with b-l475e-iot01a
- Remove Netduino Plus 2 board, STM32F1 platform, mock infrastructure
- All supported boards are based on the ARM Cortex-M4F core. F9 should work on any STM32F40x/STM32F429/STM32F439 microcontroller.
10
-
*Netduino Plus 2 (STM32F405RGT6)
11
-
- Supported by upstream [QEMU for emulation](https://www.qemu.org/docs/master/system/arm/stm32.html), making it ideal for development and testing without hardware.
0 commit comments