Issue #18: Fix bugs in safety memory handling

This commit is contained in:
2020-09-05 15:56:52 +02:00
parent c9a5a2c2ff
commit 7434554319
3 changed files with 41 additions and 10 deletions

View File

@@ -328,6 +328,23 @@ static void safety_controller_handle_safety_adc()
}
}
static void safety_controller_handle_safety_memory_check(void)
{
static uint64_t ts = 0;
enum safety_memory_state found_state;
if (systick_ticks_have_passed(ts, 5000)) {
ts = systick_get_global_tick();
if (safety_memory_check()) {
safety_memory_reinit(&found_state);
if (found_state != SAFETY_MEMORY_INIT_VALID_MEMORY) {
safety_controller_report_error(ERR_FLAG_SAFETY_MEM_CORRUPT);
}
}
}
}
int safety_controller_handle()
{
static uint64_t last_systick;
@@ -338,6 +355,7 @@ int safety_controller_handle()
safety_controller_check_stack();
safety_controller_handle_safety_adc();
safety_controller_handle_safety_memory_check();
systick = systick_get_global_tick();
if (systick == last_systick) {