feat: AGC phases 4-5 — STM32 outer-loop AGC class + main.cpp integration
Implements the STM32 outer-loop AGC (ADAR1000_AGC) that reads the FPGA saturation flag on DIG_5/PD13 once per radar frame and adjusts the ADAR1000 VGA common gain across all 16 RX channels. Phase 4 — ADAR1000_AGC class (new files): - ADAR1000_AGC.h/.cpp: attack/recovery/holdoff logic, per-channel calibration offsets, effectiveGain() with OOB safety - test_agc_outer_loop.cpp: 13 tests covering saturation, holdoff, recovery, clamping, calibration, SPI spy, reset, mixed sequences Phase 5 — main.cpp integration: - Added #include and global outerAgc instance - AGC update+applyGain call between runRadarPulseSequence() and HAL_IWDG_Refresh() in main loop Build system & shim fixes: - Makefile: added CXX/CXXFLAGS, C++ object rules, TESTS_WITH_CXX in ALL_TESTS (21 total tests) - stm32_hal_mock.h: const uint8_t* for HAL_UART_Transmit (C++ compat), __NOP() macro for host builds - shims/main.h + real main.h: FPGA_DIG5_SAT pin defines All tests passing: MCU 21/21, GUI 92/92, cross-layer 29/29.
This commit is contained in:
1 parent
ffba27a10a
commit
666527fa7d
9 files changed
+637
-3
No files matched your search
@@ -34,6 +34,10 @@ typedef uint32_t HAL_StatusTypeDef;
|
||||
|
||||
#define HAL_MAX_DELAY 0xFFFFFFFFU
|
||||
|
||||
#ifndef __NOP
|
||||
#define __NOP() ((void)0)
|
||||
#endif
|
||||
|
||||
/* ========================= GPIO Types ============================ */
|
||||
|
||||
typedef struct {
|
||||
@@ -182,7 +186,7 @@ GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
|
||||
void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);
|
||||
uint32_t HAL_GetTick(void);
|
||||
void HAL_Delay(uint32_t Delay);
|
||||
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, const uint8_t *pData, uint16_t Size, uint32_t Timeout);
|
||||
|
||||
/* ========================= SPI stubs ============================== */
|
||||
|
||||
|
||||
Reference in new issue
Block a user