61 lines
3.0 KiB
Python
61 lines
3.0 KiB
Python
from ScEpTIC.config.base_config import ScEpTICBaseConfig
|
|
|
|
class BaseTransformationsConfig(ScEpTICBaseConfig):
|
|
"""
|
|
Configuration for default transformations
|
|
"""
|
|
|
|
_config_domain = {
|
|
'simulate_clock_cycles_function_name': {'class': str, 'mode': 'set'},
|
|
'increment_custom_metric_function_name': {'class': str, 'mode': 'set'},
|
|
'enter_mcu_lpm_function_name': {'class': str, 'mode': 'set'},
|
|
'print_dump_function_name': {'class': str, 'mode': 'set'},
|
|
|
|
'interrupts_enable_firing_function_name': {'class': str, 'mode': 'set'},
|
|
'interrupts_disable_firing_function_name': {'class': str, 'mode': 'set'},
|
|
'interrupts_enable_function_name': {'class': str, 'mode': 'set'},
|
|
'interrupts_disable_function_name': {'class': str, 'mode': 'set'},
|
|
|
|
'timer_start_function_name': {'class': str, 'mode': 'set'},
|
|
'timer_stop_function_name': {'class': str, 'mode': 'set'},
|
|
'timer_set_period_function_name': {'class': str, 'mode': 'set'},
|
|
|
|
'printf_function_name': {'class': str, 'mode': 'set'},
|
|
'custom_log_function_name': {'class': str, 'mode': 'set'},
|
|
'custom_log_dump_function_name': {'class': str, 'mode': 'set'},
|
|
}
|
|
|
|
def __init__(self, main_config):
|
|
super().__init__(main_config)
|
|
self.__ir_prefix = f"{main_config.program.ir_function_prefix}"
|
|
self.simulate_clock_cycles_function_name = f"{self.__ir_prefix}sceptic_simulate_cycles"
|
|
self.increment_custom_metric_function_name = f"{self.__ir_prefix}sceptic_increment_custom_metric"
|
|
self.enter_mcu_lpm_function_name = f"{self.__ir_prefix}sceptic_mcu_lpm"
|
|
self.print_dump_function_name = f"{self.__ir_prefix}sceptic_print_dump"
|
|
|
|
self.interrupts_enable_firing_function_name = f"{self.__ir_prefix}sceptic_interrupts_enable_firing"
|
|
self.interrupts_disable_firing_function_name = f"{self.__ir_prefix}sceptic_interrupts_disable_firing"
|
|
self.interrupts_enable_function_name = f"{self.__ir_prefix}sceptic_interrupts_enable"
|
|
self.interrupts_disable_function_name = f"{self.__ir_prefix}sceptic_interrupts_disable"
|
|
|
|
self.timer_start_function_name = f"{self.__ir_prefix}sceptic_timer_start"
|
|
self.timer_stop_function_name = f"{self.__ir_prefix}sceptic_timer_stop"
|
|
self.timer_set_period_function_name = f"{self.__ir_prefix}sceptic_timer_set_period"
|
|
|
|
self.printf_function_name = f"{self.__ir_prefix}printf"
|
|
self.custom_log_function_name = f"{self.__ir_prefix}sceptic_custom_log"
|
|
self.custom_log_dump_function_name = f"{self.__ir_prefix}sceptic_custom_log_dump"
|
|
|
|
for function_name in self._config_domain.keys():
|
|
self._register_config_callback(function_name, self._append_ir_callback)
|
|
|
|
def _append_ir_callback(self, config_name, config_value):
|
|
if not config_value.startswith("sceptic_"):
|
|
config_value = f"sceptic_{config_value}"
|
|
|
|
setattr(self, config_name, f"{self.__ir_prefix}{config_value}")
|
|
|
|
# Returns the configuration
|
|
def get_config(main_config):
|
|
return BaseTransformationsConfig(main_config)
|