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('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 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 middleware_config(config): config.query_integer_key('Max_Path_Length', 0, default="1024") config.query_integer_key('Max_Mount_Points', 0, default="2") config.query_integer_key('Max_Mount_Name_Length', 0, default="128") origin = "middleware config" config.add_source_dir('middleware/src/filesystem', origin) config.add_source_dir('middleware/src/BLE', origin) config.add_source_dir('middleware/src/utils', origin) config.add_source_dir('middleware/src/audio', origin) config.add_source_dir('middleware/src/monitor', origin) config.add_source_dir('middleware/src/bitmap', origin) config.add_source_dir('middleware/src/command_line', origin) config.add_source_dir('middleware/src/sdmmc', origin) runtime_profile = config.get_config("Runtime_Profile") if runtime_profile is None: runtime_profile = '' if runtime_profile.startswith("ravenscar"): config.add_source_dir('middleware/src/ravenscar-common', origin)
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)