Issue #18: Fix bugs in safety memory handling
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user