嵌入式项目结构生成脚本(python)

软件开发大郭
0 评论
/
3 阅读
/
6199 字
29 2023-11

需求说明

嵌入式项目结构生成脚本 CreateHAL.py

代码内容

import os

# 架构目录列表
directories = [
    ("firmware", "嵌入式固件相关代码"),
    ("firmware/core", "核心功能代码"),
    ("firmware/drivers", "驱动程序"),
    ("firmware/ui", "用户界面相关代码"),
    ("firmware/simulator", "模拟器代码"),
    ("firmware/business_logic", "业务逻辑代码"),
    ("firmware/config", "配置文件"),
    ("firmware/config/hardware_config", "硬件配置文件"),
    ("firmware/config/system_config", "系统配置文件"),
    ("firmware/sdks", "软件开发工具包"),
    ("firmware/sdks/chip1_sdk", "芯片1的SDK"),
    ("firmware/sdks/chip2_sdk", "芯片2的SDK"),
    ("firmware/scripts", "脚本工具"),
    ("firmware/scripts/build_scripts", "构建脚本"),
    ("firmware/scripts/debug_tools", "调试工具脚本"),
    ("firmware/tests", "测试代码"),
    ("firmware/tests/unit_tests", "单元测试"),
    ("firmware/tests/integration_tests", "集成测试"),
    ("firmware/tests/system_tests", "系统测试"),
    ("firmware/third_party", "第三方库"),
    ("firmware/projects", "项目文件"),
    ("firmware/projects/eclipse", "Eclipse项目文件"),
    ("firmware/projects/codeblocks", "CodeBlocks项目文件"),
    ("firmware/projects/keil", "Keil项目文件"),
    ("firmware/projects/gcc", "GCC项目文件"),
    ("mechanical_design", "机械设计文件"),
    ("ui_design", "UI设计文件"),
    ("pc_application", "上位机程序相关代码"),
    ("communication_interface", "通讯接口说明文档"),  # 新增通讯接口说明文档目录
    ("documentation", "文档"),
    ("documentation/requirements", "需求文档"),
    ("documentation/test_reports", "测试报告"),
    ("documentation/coding_standards", "开发规范"),
    ("documentation/design", "设计文档"),  # 新增设计文档目录
    ("documentation/design/system", "系统设计文档"),
    ("documentation/design/hardware", "硬件设计文档"),
    ("documentation/design/software", "软件设计文档"),
    ("documentation/test", "测试文档"),
    ("documentation/test/unit", "单元测试文档"),
    ("documentation/test/integration", "集成测试文档"),
    ("documentation/test/system", "系统测试文档"),
    ("documentation/user_manual", "用户手册"),
    ("documentation/api_reference", "API参考文档"),
    ("documentation/release_notes", "发布说明"),
    ("documentation/project_management", "项目管理文档"),
    ("documentation/project_management/project_plan", "项目计划"),
    ("documentation/project_management/risk_management", "风险管理文档"),
    ("documentation/coding_standards", "开发规范"),
    ("documentation/hardware_reference", "硬件参考文档"),  # 新增硬件参考文档目录
    ("documentation/software_reference", "软件参考文档"),  # 新增软件参考文档目录
]

# 基础路径 - 根据需要调整
base_path = "HAL_Architecture"

# 生成目录树文本
def generate_tree_text(dirs, prefix=""):
    tree_text = ""
    for i, (dir, desc) in enumerate(dirs):
        is_last = i == len(dirs) - 1
        tree_text += f"{prefix}{'`-- ' if is_last else '|-- '}{dir}/ ({desc})\n"
        if os.path.isdir(dir):
            tree_text += generate_subtree_text(dir, is_last, prefix + ("    " if is_last else "|   "))
    return tree_text

# 递归生成子目录树文本
def generate_subtree_text(base, is_last, prefix):
    tree_text = ""
    entries = sorted(os.listdir(base))
    for i, entry in enumerate(entries):
        entry_path = os.path.join(base, entry)
        is_entry_last = i == len(entries) - 1
        tree_text += f"{prefix}{'`-- ' if is_last and is_entry_last else '|-- '}{entry}/\n"
        if os.path.isdir(entry_path):
            tree_text += generate_subtree_text(entry_path, is_entry_last, prefix + ("    " if is_entry_last else "|   "))
    return tree_text

# 创建目录
def create_directories(dirs):
    for dir, desc in dirs:
        path = os.path.join(base_path, dir)
        os.makedirs(path, exist_ok=True)
        print(f"已创建目录: {path} ({desc})")

# 创建 README.md
def create_readme(dirs):
    readme_path = os.path.join(base_path, "README.md")
    with open(readme_path, "w", encoding="utf-8") as readme_file:
        readme_file.write("# HAL Architecture\n\n这是用于嵌入式系统的 HAL 架构。\n\n## 目录结构\n")
        readme_file.write("```plaintext\n")
        readme_file.write(generate_tree_text(dirs))
        readme_file.write("```\n请参考每个目录的 README 文件以获取更多详细信息。\n")
        readme_file.write("\n## 嵌入式开发流程\n")
        readme_file.write("1. **需求分析:** 在项目开始阶段,明确定义系统的功能和性能需求。\n")
        readme_file.write("2. **系统设计:** 根据需求进行系统设计,包括硬件和软件的设计。\n")
        readme_file.write("3. **硬件开发:** 实现硬件设计,包括电路设计、PCB设计和原型制作。\n")
        readme_file.write("4. **嵌入式软件开发:** 开发嵌入式系统的固件和软件。\n")
        readme_file.write("5. **集成与测试:** 将硬件和软件集成到最终系统中,并进行各种测试,包括单元测试、集成测试和系统测试。\n")
        readme_file.write("6. **验证与调试:** 验证系统的正确性和性能,解决可能出现的问题。\n")
        readme_file.write("7. **认证与合规性:** 确保系统符合相关法规和标准,进行必要的认证。\n")
        readme_file.write("8. **生产与部署:** 生产系统并部署到目标环境。\n")
        readme_file.write("\n**注意:** 每个目录的具体内容和用途,请参考相应目录的 README 文件。\n")
        readme_file.write("\n---\n")
        readme_file.write("感谢使用 HAL Architecture!")


# 创建目录
create_directories(directories)

# 创建 README.md
create_readme(directories)

print("HAL architecture directories and README created successfully.")
标签:
    暂无数据