diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100755 index 0000000000000000000000000000000000000000..4aa91ea5ab95b0feb7bbe5fe2dd724aff4ef6723 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/drivers_framework.iml b/.idea/drivers_framework.iml new file mode 100755 index 0000000000000000000000000000000000000000..d888fca690d8f48e8d1024176529dc595f5619cb --- /dev/null +++ b/.idea/drivers_framework.iml @@ -0,0 +1,15 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100755 index 0000000000000000000000000000000000000000..9c69411050eac81b5dce09314516a30b38c41a20 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100755 index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99 --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100755 index 0000000000000000000000000000000000000000..b534b897444122d9e95dac64b198b150354be79a --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100755 index 0000000000000000000000000000000000000000..4e7c49967991c29e6ed28c94e8cdeea84e3fa39b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100755 index 0000000000000000000000000000000000000000..9661ac713428efbad557d3ba3a62216b5bb7d226 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/tools/hdf_dev_eco_tool/command_line/hdf_add_handler.py b/tools/hdf_dev_eco_tool/command_line/hdf_add_handler.py index 7aeb77e81a63804004f87906934c8287d2f34309..9b74ab165a6f8b1e69a005ad9d400e4ef4a44a99 100755 --- a/tools/hdf_dev_eco_tool/command_line/hdf_add_handler.py +++ b/tools/hdf_dev_eco_tool/command_line/hdf_add_handler.py @@ -114,90 +114,98 @@ class HdfAddHandler(HdfCommandHandlerBase): args_tuple = self.get_args() root, vendor, module, driver, board, kernel = args_tuple - converter = hdf_utils.WordsConverter(self.args.module_name) - driver_name_converter = hdf_utils.WordsConverter(self.args.driver_name) - framework_hdf = hdf_utils.get_vendor_hdf_dir_framework(root) - if not os.path.exists(framework_hdf): - raise HdfToolException( - ' framework model path "%s" not exist' % - framework_hdf, CommandErrorCode.TARGET_NOT_EXIST) - # 在 framework 目录下创建对应的 module 的文件目录用于存放 .c 驱动文件 - framework_drv_root_dir = hdf_utils.get_drv_root_dir( - root, vendor, module) - if os.path.exists(framework_drv_root_dir): - raise HdfToolException('module "%s" already exist' % module, - CommandErrorCode.TARGET_ALREADY_EXIST) - os.makedirs(framework_drv_root_dir) + board_list = HdfToolSettings().get_board_list() + if board in board_list: + converter = hdf_utils.WordsConverter(self.args.module_name) + driver_name_converter = hdf_utils.WordsConverter( + self.args.driver_name) + framework_hdf = hdf_utils.get_vendor_hdf_dir_framework(root) + if not os.path.exists(framework_hdf): + raise HdfToolException( + ' framework model path "%s" not exist' % + framework_hdf, CommandErrorCode.TARGET_NOT_EXIST) + # 在 framework 目录下创建对应的 module 的文件目录用于存放 .c 驱动文件 + framework_drv_root_dir = hdf_utils.get_drv_root_dir( + root, vendor, module) + if os.path.exists(framework_drv_root_dir): + raise HdfToolException('module "%s" already exist' % module, + CommandErrorCode.TARGET_ALREADY_EXIST) + os.makedirs(framework_drv_root_dir) - # 创建 .c 模板驱动 - state, driver_file_path = self._add_driver_handler(*args_tuple) - if not state: - raise HdfToolException( - 'create drivers file fail "%s" ' % - driver_file_path.split("\\")[-1]) - adapter_hdf = hdf_utils.get_vendor_hdf_dir_adapter(root, kernel) - if not os.path.exists(adapter_hdf): - raise HdfToolException( - ' adapter model path "%s" not exist' % - adapter_hdf, CommandErrorCode.TARGET_NOT_EXIST) + # 创建 .c 模板驱动 + state, driver_file_path = self._add_driver_handler(*args_tuple) + if not state: + raise HdfToolException( + 'create drivers file fail "%s" ' % + driver_file_path.split("\\")[-1]) + adapter_hdf = hdf_utils.get_vendor_hdf_dir_adapter(root, kernel) + if not os.path.exists(adapter_hdf): + raise HdfToolException( + ' adapter model path "%s" not exist' % + adapter_hdf, CommandErrorCode.TARGET_NOT_EXIST) - # 创建 adapter 路径下的 module 文件夹 - adapter_model_path = os.path.join(adapter_hdf, 'model', module) - if not os.path.exists(adapter_model_path): - os.makedirs(adapter_model_path) + # 创建 adapter 路径下的 module 文件夹 + adapter_model_path = os.path.join(adapter_hdf, 'model', module) + if not os.path.exists(adapter_model_path): + os.makedirs(adapter_model_path) - data_model = { - "module_upper_case": converter.upper_case(), - "module_lower_case": converter.lower_case(), - "driver_file_name": ("%s_driver.c" % - driver_name_converter.lower_case()), - "driver_name": driver_name_converter.lower_case() - } - # 创建 adapter 下的 module中的三个文件 - if kernel == 'liteos': - file_path, model_level_config_file_path = \ - self._add_module_handler_liteos( - framework_hdf, adapter_model_path, - data_model, converter, *args_tuple) - elif kernel == "linux": - file_path, model_level_config_file_path = \ - self._add_module_handler_linux( - framework_hdf, adapter_model_path, - data_model, *args_tuple) + data_model = { + "module_upper_case": converter.upper_case(), + "module_lower_case": converter.lower_case(), + "driver_file_name": ("%s_driver.c" % + driver_name_converter.lower_case()), + "driver_name": driver_name_converter.lower_case() + } + # 创建 adapter 下的 module中的三个文件 + if kernel == 'liteos': + file_path, model_level_config_file_path = \ + self._add_module_handler_liteos( + framework_hdf, adapter_model_path, + data_model, converter, *args_tuple) + + elif kernel == "linux": + file_path, model_level_config_file_path = \ + self._add_module_handler_linux( + framework_hdf, adapter_model_path, + data_model, *args_tuple) + + else: + file_path = {} + model_level_config_file_path = {} + config_item = { + 'module_name': module, + 'module_path': file_path, + 'driver_name': "%s_driver.c" % driver, + 'driver_file_path': driver_file_path, + 'enabled': True + } + config_file_out = { + 'module_name': module, + 'module_path': file_path, + 'driver_name': driver_file_path.split("\\")[-1], + 'driver_file_path': driver_file_path, + 'module_level_config_path': model_level_config_file_path + } + config_file = hdf_utils.read_file( + os.path.join('resources', 'create_model.config')) + config_file_json = json.loads(config_file) + config_file_json[module] = config_file_out + if platform.system() == "Windows": + config_file_replace = json.dumps(config_file_json, indent=4).\ + replace(root.replace('\\', '\\\\') + '\\\\', "") + hdf_utils.write_file( + os.path.join('resources', 'create_model.config'), + config_file_replace.replace('\\\\', '/')) + if platform.system() == "Linux": + config_file_replace = json.dumps(config_file_json, indent=4).\ + replace(root + '/', "") + hdf_utils.write_file( + os.path.join('resources', 'create_model.config'), + config_file_replace) + return json.dumps(config_item) else: - file_path = {} - model_level_config_file_path = {} - config_item = { - 'module_name': module, - 'module_path': file_path, - 'driver_name': "%s_driver.c" % driver, - 'driver_file_path': driver_file_path, - 'enabled': True - } - config_file_out = { - 'module_name': module, - 'module_path': file_path, - 'driver_name': driver_file_path.split("\\")[-1], - 'driver_file_path': driver_file_path, - 'module_level_config_path': model_level_config_file_path - } - config_file = hdf_utils.read_file( - os.path.join('resources', 'create_model.config')) - config_file_json = json.loads(config_file) - config_file_json[module] = config_file_out - if platform.system() == "Windows": - config_file_replace = json.dumps(config_file_json, indent=4).\ - replace(root.replace('\\', '\\\\') + '\\\\', "") - hdf_utils.write_file( - os.path.join('resources', 'create_model.config'), - config_file_replace.replace('\\\\', '/')) - if platform.system() == "Linux": - config_file_replace = json.dumps(config_file_json, indent=4).\ - replace(root + '/', "") - hdf_utils.write_file( - os.path.join('resources', 'create_model.config'), - config_file_replace) - return json.dumps(config_item) + raise HdfToolException( + 'supported boards name : %s not exits ' % board) def _add_module_handler_liteos(self, framework_hdf, adapter_model_path, data_model, converter, *args_tuple): @@ -205,8 +213,9 @@ class HdfAddHandler(HdfCommandHandlerBase): liteos_file_path = {} liteos_level_config_file_path = {} liteos_file_name = ['BUILD.gn', 'Kconfig', 'Makefile'] - template_path = "/".join([framework_hdf] + ["tools", - "hdf_dev_eco_tool", "resources", "templates", "lite"]) + template_path = "/".join([framework_hdf] + + ["tools", "hdf_dev_eco_tool", + "resources", "templates", "lite"]) for file_name in liteos_file_name: for i in os.listdir(template_path): if i.find(file_name.split(".")[0]) > 0: diff --git a/tools/hdf_dev_eco_tool/command_line/hdf_defconfig_patch.py b/tools/hdf_dev_eco_tool/command_line/hdf_defconfig_patch.py index e0d1cdb0ce1f79c5850fc0e7d92b45c3370a7d7b..4e33656f08ca43754e151ccf91c701cbd0640e66 100755 --- a/tools/hdf_dev_eco_tool/command_line/hdf_defconfig_patch.py +++ b/tools/hdf_dev_eco_tool/command_line/hdf_defconfig_patch.py @@ -66,7 +66,7 @@ class HdfDefconfigAndPatch(object): if not os.path.isdir(new_path): self.find_file(new_path, files) else: - self.add_module(new_path, files=[]) + self.add_module(new_path, files=files) return files def delete_module(self, path): @@ -98,6 +98,7 @@ class HdfDefconfigAndPatch(object): if line.find("CONFIG_DRIVERS_HDF_INPUT=y") >= 0: insert_index = index elif line.find(self.new_demo_config) >= 0: + files.remove(path) state = True if not state: if path.split(".")[-1] != "patch": @@ -108,3 +109,4 @@ class HdfDefconfigAndPatch(object): "+" + self.new_demo_config) with open(path, "w", encoding=codetype) as fwrite: fwrite.writelines(data) + return files diff --git a/tools/hdf_dev_eco_tool/command_line/hdf_vendor_kconfig_file.py b/tools/hdf_dev_eco_tool/command_line/hdf_vendor_kconfig_file.py index 2359dab2cedff9325d8bbc77c99f94e8be52e97e..a7071413d2411fa7e5106b300ddc1f28c1559a6b 100755 --- a/tools/hdf_dev_eco_tool/command_line/hdf_vendor_kconfig_file.py +++ b/tools/hdf_dev_eco_tool/command_line/hdf_vendor_kconfig_file.py @@ -91,7 +91,7 @@ class HdfVendorKconfigFile(object): def add_module(self, module_to_k_path_parts): module_k_part = '/'.join(module_to_k_path_parts) - index, line = self._find_line(module_k_part) + index, line = self._find_line("model/"+module_k_part) if line: return line = '\n%s/%s"\n' % (self.line_prefix, module_k_part) diff --git a/tools/hdf_dev_eco_tool/hdf_tool_settings.py b/tools/hdf_dev_eco_tool/hdf_tool_settings.py index d1f72412a0ae369dd1498930f3658d69da65ebb4..fff1c21a499bf629c6c62b7df64ed2cfe7133b99 100755 --- a/tools/hdf_dev_eco_tool/hdf_tool_settings.py +++ b/tools/hdf_dev_eco_tool/hdf_tool_settings.py @@ -122,3 +122,7 @@ class HdfToolSettings(object): if board_name in self.settings[key]: return self.settings[key][board_name]["patch_and_config"] return '' + + def get_board_list(self): + key = self.supported_boards_key + return list(self.settings[key].keys()) diff --git a/tools/hdf_dev_eco_tool/resources/create_model.config b/tools/hdf_dev_eco_tool/resources/create_model.config index 9e26dfeeb6e641a33dae4961196235bdb965b21b..2c63c0851048d8f7bff41ecf0f8cee05f52fd120 100755 --- a/tools/hdf_dev_eco_tool/resources/create_model.config +++ b/tools/hdf_dev_eco_tool/resources/create_model.config @@ -1 +1,2 @@ -{} \ No newline at end of file +{ +} diff --git a/tools/hdf_dev_eco_tool/resources/settings.json b/tools/hdf_dev_eco_tool/resources/settings.json index ecbf0e13764c3714fb33415e1df40e75685c643e..c38733ee51b040f1fe92973828129ce1d7742bf3 100755 --- a/tools/hdf_dev_eco_tool/resources/settings.json +++ b/tools/hdf_dev_eco_tool/resources/settings.json @@ -10,11 +10,6 @@ "hispark_taurus_linux": { "patch_and_config": ["hi3516dv300.patch", "hi3516dv300_small_defconfig", "hi3516dv300_standard_defconfig", "small_common_defconfig", "standard_common_defconfig"] - }, - "hispark_aries": { - "board_parent_path": "vendor/hisilicon/hispark_aries", - "dot_config_path": "kernel/liteos_a/tools/build/config", - "dot_configs": ["hispark_aries_clang_release.config", "hispark_aries_release.config", "hispark_aries_debug_shell.config"] } }, "drivers_path_relative_to_vendor": "drivers/framework",