Fix all 8 firmware bugs with regression tests
Bugs fixed in adf4382a_manager.c: - Bug #1: Move initialized=true before sync setup, propagate sync failure - Bug #3: Implement TriggerTimedSync with sw_sync pulse (was no-op) - Bug #5: Replace GPIO-only placeholder with TIM3 PWM for DELADJ - Bug #7: Correct GPIOG pin definitions to match CubeMX (pins 6-15) Bugs fixed in main.cpp: - Bug #2: Remove pre-reset ad9523_setup() call (keep only post-reset) - Bug #4: Move init error check before phase shift calls - Bug #6: Fix timer variable (last_check -> last_check1) in temp block - Bug #8: Uncomment uart_print/uart_println debug helpers Test harness updates: - All 8 tests rewritten to assert correct post-fix behavior - Added TIM PWM mock (SPY_TIM_PWM_START/STOP/SET_COMPARE) - Added mock_adf4382_set_timed_sync_retval for failure injection - Updated shims and Makefile for new test dependencies - All 8 tests pass: make clean && make test -> 8/8 passed
This commit is contained in:
1 parent
b93ee04592
commit
397969348e
17 files changed
+640
-572
No files matched your search
@@ -21,6 +21,7 @@ I2C_HandleTypeDef hi2c1 = { .id = 1 };
|
||||
I2C_HandleTypeDef hi2c2 = { .id = 2 };
|
||||
UART_HandleTypeDef huart3 = { .id = 3 };
|
||||
ADC_HandleTypeDef hadc3 = { .id = 3 };
|
||||
TIM_HandleTypeDef htim3 = { .id = 3 };
|
||||
|
||||
/* ========================= Spy log ================================ */
|
||||
SpyRecord spy_log[SPY_MAX_RECORDS];
|
||||
@@ -224,3 +225,40 @@ uint8_t ADS7830_Measure_SingleEnded(ADC_HandleTypeDef *hadc, uint8_t channel)
|
||||
});
|
||||
return 100;
|
||||
}
|
||||
|
||||
/* ========================= TIM PWM stubs ========================== */
|
||||
|
||||
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
|
||||
{
|
||||
spy_push((SpyRecord){
|
||||
.type = SPY_TIM_PWM_START,
|
||||
.port = NULL,
|
||||
.pin = (uint16_t)Channel,
|
||||
.value = htim->id,
|
||||
.extra = htim
|
||||
});
|
||||
return HAL_OK;
|
||||
}
|
||||
|
||||
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
|
||||
{
|
||||
spy_push((SpyRecord){
|
||||
.type = SPY_TIM_PWM_STOP,
|
||||
.port = NULL,
|
||||
.pin = (uint16_t)Channel,
|
||||
.value = htim->id,
|
||||
.extra = htim
|
||||
});
|
||||
return HAL_OK;
|
||||
}
|
||||
|
||||
void mock_tim_set_compare(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t Compare)
|
||||
{
|
||||
spy_push((SpyRecord){
|
||||
.type = SPY_TIM_SET_COMPARE,
|
||||
.port = NULL,
|
||||
.pin = (uint16_t)Channel,
|
||||
.value = Compare,
|
||||
.extra = htim
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user