X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=wizard%2Fbertos_utils.py;h=b57801a0fe6ef6db2658d510cc071d941ad35adb;hb=9b2a54e784f116cc9b4f770e1acbc15c4c5f013a;hp=567eeb7087975b3dd23eee8337c1a0faf8a34130;hpb=932cd676e0827be0266c7f665da684faceba0ecf;p=bertos.git diff --git a/wizard/bertos_utils.py b/wizard/bertos_utils.py index 567eeb70..b57801a0 100644 --- a/wizard/bertos_utils.py +++ b/wizard/bertos_utils.py @@ -58,19 +58,29 @@ def loadBertosProject(project_file): project_info = BProject.BProject() project_info.setInfo("PROJECT_PATH", os.path.dirname(project_file)) project_info.setInfo("SOURCES_PATH", project_data["SOURCES_PATH"]) + project_info.setInfo("TOOLCHAIN", project_data["TOOLCHAIN"]) loadSourceTree(project_info) cpu_name = project_data["CPU_NAME"] project_info.setInfo("CPU_NAME", cpu_name) cpu_info = loadCpuInfos(project_info) for cpu in cpu_info: - print cpu["CPU_NAME"], cpu_name if cpu["CPU_NAME"] == cpu_name: - print "sono uguali" project_info.setInfo("CPU_INFOS", cpu) break - loadModuleData(project_info) - print project_info - + tag_list = getTagSet(cpu_info) + # Create, fill and store the dict with the tags + tag_dict = {} + for element in tag_list: + tag_dict[element] = False + infos = project_info.info("CPU_INFOS") + for tag in tag_dict: + if tag in infos["CPU_TAGS"] + [infos["CPU_NAME"], infos["CORE_CPU"], infos["TOOLCHAIN"]]: + tag_dict[tag] = True + else: + tag_dict[tag] = False + project_info.setInfo("ALL_CPU_TAGS", tag_dict) + loadModuleData(project_info, True) + return project_info def projectFileGenerator(project_info): directory = project_info.info("PROJECT_PATH") @@ -83,7 +93,6 @@ def projectFileGenerator(project_info): project_data["SOURCES_PATH"] = project_info.info("SOURCES_PATH") project_data["TOOLCHAIN"] = project_info.info("TOOLCHAIN") project_data["CPU_NAME"] = project_info.info("CPU_NAME") - print project_info.info("CPU_NAME") project_data["SELECTED_FREQ"] = project_info.info("SELECTED_FREQ") return pickle.dumps(project_data) @@ -349,6 +358,10 @@ def getToolchainInfo(output): info["thread"] = thread[0].split("Thread model: ")[1] return info +def getToolchainName(toolchain_info): + name = "GCC " + toolchain_info["version"] + " - " + toolchain_info["target"].strip() + return name + def loadSourceTree(project): fileList = [f for f in os.walk(project.info("SOURCES_PATH"))] project.setInfo("FILE_LIST", fileList) @@ -431,8 +444,7 @@ def loadModuleDefinition(first_comment): del module_definition["module_description"] if const.MODULE_DEFINITION["module_harvard"] in module_definition: harvard = module_definition[const.MODULE_DEFINITION["module_harvard"]] - if harvard == "both" or harvard == "pgm_memory": - module_dict[module_name]["harvard"] = harvard + module_dict[module_name]["harvard"] = harvard del module_definition[const.MODULE_DEFINITION["module_harvard"]] if const.MODULE_DEFINITION["module_hw"] in module_definition: hw = module_definition[const.MODULE_DEFINITION["module_hw"]] @@ -533,7 +545,7 @@ def getDefinitionBlocks(text): block.append(([comment], define, start)) return block -def loadModuleData(project): +def loadModuleData(project, edit=False): module_info_dict = {} list_info_dict = {} configuration_info_dict = {} @@ -558,6 +570,14 @@ def loadModuleData(project): configuration_info[configuration] = loadConfigurationInfos(project.info("SOURCES_PATH") + "/" + configuration) except ParseError, err: raise DefineException.ConfigurationDefineException(project.info("SOURCES_PATH") + "/" + configuration, err.line_number, err.line) + if edit: + try: + path = os.path.basename(project.info("PROJECT_PATH")) + directory = project.info("PROJECT_PATH") + user_configuration = loadConfigurationInfos(directory + "/" + configuration.replace("bertos", path)) + configuration_info[configuration] = updateConfigurationValues(configuration_info[configuration], user_configuration) + except ParseError, err: + raise DefineException.ConfigurationDefineException(directory + "/" + configuration.replace("bertos", path)) module_info_dict.update(module_dict) configuration_info_dict.update(configuration_info) if to_be_parsed: @@ -625,6 +645,11 @@ def loadConfigurationInfos(path): configuration_infos[name]["brief"] = brief return configuration_infos +def updateConfigurationValues(def_conf, user_conf): + for param in def_conf["paramlist"]: + def_conf[param[1]]["value"] = user_conf[param[1]]["value"] + return def_conf + def findParameterType(parameter): if "value_list" in parameter["informations"]: return "enum"