def linker_script_config(config): config.query_bool_key('Use_Startup_Gen', default="False") if config.get_config('Use_Startup_Gen') == "True": config.query_bool_key('Has_Custom_Memory_Area_1', default="False") cnt = 1 while config.get_config('Has_Custom_Memory_Area_%d' % cnt) == "True": config.query_enum_key('Custom_Mem_%d_Kind' % cnt, ['ROM', 'RAM']) config.query_integer_key('Custom_Mem_%d_Addr' % cnt, 0) config.query_integer_key('Custom_Mem_%d_Size' % cnt, 0) config.query_string_key('Custom_Mem_%d_Name' % cnt, default="custom_mem_%d" % cnt) config.add_memory(config.get_config('Custom_Mem_%d_Kind' % cnt), config.get_config('Custom_Mem_%d_Name' % cnt), config.get_config('Custom_Mem_%d_Addr' % cnt), config.get_config('Custom_Mem_%d_Size' % cnt)) cnt += 1 config.query_bool_key('Has_Custom_Memory_Area_%d' % cnt, default="False") if len(config.memory_names()) > 0: config.query_string_key('Boot_Memory', default=config.memory_names()[0])
def mcu_config(config): config.query_enum_key("Architecture", list_of_archs(config)) if config.get_config("Architecture") != "Native": config.query_enum_key("Vendor", list_of_vendors(config)) config.query_enum_key("Device_Family", list_of_families(config)) config.query_enum_key("Device_Name", list_of_devices(config)) device = config.get_config("Device_Name") if device.startswith("STM32F4"): core = "ARM Cortex-M4F" elif device.startswith("STM32F7"): core = "ARM Cortex-M7F" elif device.startswith("nRF51"): core = "ARM Cortex-M0" elif device.startswith("FE3"): core = "RISC-V32" config.set_config_string_key("CPU_Core", core, "mcu definition") family = config.get_config("Device_Family") if family.startswith("STM32"): config.query_integer_key("High_Speed_External_Clock", 1000000, 32000000) elif family.startswith("FE310"): config.query_integer_key("FLASH_SIZE") load_cpu_config(config) load_device_config(config)
def linker_script_config(config): config.query_bool_key('Generate_Linker_Script', default="True") if config.get_config('Generate_Linker_Script') == "True": config.query_bool_key('Has_Custom_Memory_Area_1', default="False") cnt = 1 while config.get_config('Has_Custom_Memory_Area_%d' % cnt) == "True": config.query_enum_key('Custom_Mem_%d_Kind' % cnt, ['ROM', 'RAM']) config.query_integer_key('Custom_Mem_%d_Addr' % cnt, 0) config.query_integer_key('Custom_Mem_%d_Size' % cnt, 0) config.query_string_key('Custom_Mem_%d_Name' % cnt, default="custom_mem_%d" % cnt) config.add_memory(config.get_config('Custom_Mem_%d_Kind' % cnt), config.get_config('Custom_Mem_%d_Name' % cnt), config.get_config('Custom_Mem_%d_Addr' % cnt), config.get_config('Custom_Mem_%d_Size' % cnt)) cnt += 1 config.query_bool_key('Has_Custom_Memory_Area_%d' % cnt, default="False") config.query_bool_key('Custom_Memory_Layout', default='False') if config.get_config('Custom_Memory_Layout') == "True": config.query_enum_key('Linker_Text_Section', config.memory_names(), default=config.default_rom_area()) config.query_enum_key('Linker_RO_Data_Section', config.memory_names(), default=config.default_rom_area()) config.query_enum_key('Linker_Data_Section', config.memory_names(), default=config.default_ram_area()) config.query_enum_key('Linker_BSS_Section', config.memory_names(), default=config.default_ram_area()) print("\nLinker script:") config.print_linker_script()
def runtime_config(config): config.query_string_key('Has_ZFP_Runtime', default="False") config.query_string_key('Has_Ravenscar_SFP_Runtime', default="False") config.query_string_key('Has_Ravenscar_Full_Runtime', default="False") profiles = [] if config.get_config("Has_Ravenscar_Full_Runtime") == "True": profiles.append("ravenscar-full") if config.get_config("Has_Ravenscar_SFP_Runtime") == "True": profiles.append("ravenscar-sfp") if config.get_config("Has_ZFP_Runtime") == "True": profiles.append("zfp") if len(profiles) > 0: config.query_enum_key('Runtime_Profile', profiles, default=profiles[0]) config.query_string_key('Runtime_Name_Suffix') suffix = config.get_config("Runtime_Name_Suffix") profile = config.get_config("Runtime_Profile") config.query_string_key('Runtime_Name', default=profile + "-" + suffix)
def mcu_config(config, source_dir): config.query_enum_key("Architecture", list_of_archs(config)) if config.get_config("Architecture") != "Native": config.query_enum_key("Vendor", list_of_vendors(config)) config.query_enum_key("Device_Family", list_of_families(config)) config.query_enum_key("Device_Name", list_of_devices(config)) device = config.get_config("Device_Name") if device.startswith("STM32F4"): core = "ARM Cortex-M4F" elif device.startswith("STM32F7"): core = "ARM Cortex-M7F" elif device.startswith("nRF51"): core = "ARM Cortex-M0" elif device.startswith("nRF52"): core = "ARM Cortex-M4F" elif device.startswith("FE3"): core = "RISC-V32" elif device.startswith("U5"): core = "RISC-V64" config.set_config_string_key("CPU_Core", core, "mcu definition") family = config.get_config("Device_Family") if family.startswith("STM32"): config.query_integer_key("High_Speed_External_Clock", 1000000, 32000000) elif family.startswith("FE3"): config.query_integer_key("hifive1_uart_root") config.query_bool_key("qemu_sifive_test_exit") load_cpu_config(config) load_device_config(config, source_dir) config.query_integer_key("Number_Of_Interrupts", default=0)
def board_config(config): config.query_enum_key("Board", list_of_boards(), "Custom_Board") if config.get_config("Board") != "Custom_Board": load_board_config(config)