Esempio n. 1
0
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])
Esempio n. 2
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)
Esempio n. 3
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()
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
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)