你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

支持的开发环境IDE支持:一键生成多IDE工程项目结构示例

发布时间:2025-09-06

浏览次数:0

这个网址指向一个名为项目生成器的Python软件包,它可以在PyPI平台上找到,这个平台是Python包索引的简称

支持的开发环境

IDE支持:

一份配置,十种工程!

安装和环境配置第一步:安装环境

# 支持Python 2.7.x 或 3.x.x
python --version

第二步:安装

pip install project-generator

安装完成后你会得到:

实战演示:一键生成多IDE工程项目结构示例

我们以官方的GPIO演示项目为例:

project_root/
主配置文件位于 projects.yaml 文件中,包含了核心设置信息
记录目录,包含子设置目录
│   ├── frdm_k64f配置文件
│   ├── frdm_kl25z设置文件
│   └── frdm_kl46z.yaml文件,它针对KL46Z开发板进行设定
源代码文件存放于source目录下
    ├── main.c
    ├── gpio.c
    └── gpio.h

配置文件解析主配置文件 .yaml

projects:
  gpio_demo_frdmk64f:
    - records/frdm_k64f.yaml
  gpio_demo_frdmkl25z:
    - records/frdm_kl25z.yaml
  gpio_demo_frdmkl46z:
    - records/frdm_kl46z.yaml

作用:定义项目名称和对应的配置文件

详细配置文件示例

# frdm_k64f.yaml
common:
    sources:
        - source/main.c
        - source/gpio.c
    includes:
        - source/
    
target:
    name: frdmk64f
    core: Cortex-M4F
    
tool_specific:
    uvision:
        misc:
            optimization: O2
    iar_arm:
        misc:
            optimization: high

一键生成多种工程生成Keil工程

progen 执行生成操作,依据 projects.yaml 文件,针对 gpio_demo_frdmk64f 项目,采用 uvision 工具链进行构建

结果:

生成IAR工程

progen 开始处理,依据 projects.yaml 文件,针对 gpio_demo_frdmk64f 项目,选用 iar_arm 工具链进行构建

结果:

生成GCC

progen运用projects.yaml文件,针对gpio_demo_frdmk64f项目,选用gcc_arm工具链执行生成操作

结果:

高级功能:自定义目标平台扩展芯片支持

的芯片支持库位于:

Python的安装目录下,Lib文件夹内,site-packages子文件夹中,project_generator_definitions文件夹里,target文件夹位于该路径下

添加新芯片支持

# 新芯片配置文件
name: my_custom_chip
core: Cortex-M4
ram:
    start: 0x20000000
    size: 0x20000
flash:
    start: 0x08000000
    size: 0x100000

自定义编译选项

tool_specific:
    uvision:
        misc:
            - c_flags: ["-O2", "-g"]
            - asm_flags: ["-g"]
            - ld_flags: ["--map"]
    gcc_arm:
        misc:

project_generator_ide_support_configurable_project_structure_sublime text 3 c

编译器标志选项包括,"-Wall"和"-Wextra" ld_flags选项包含两个参数,第一个参数是-Wl,第二个参数是--gc-sections

实际应用场景场景一:多人协作开发

痛点:团队成员使用不同的IDE

解决方案:

# 每个人生成自己的IDE工程
progen 创建 -以 project.yaml 为模板 -项目名为 main_project -目标为 uvision
启动生成进程,依据项目配置文件,指定项目名称,采用iar_arm工具链
启动程序生成项目文件,指定配置文件为project.yaml,项目名称设定为main_project,编译器选用gcc_arm版本

场景二:开源项目发布

需求:为开源项目提供多种IDE支持

解决方案:

# 批量生成所有支持的IDE工程
对于 uvision, iar_arm, gcc_arm, cmake 这几个工具链,依次进行操作
生成项目配置文件,命名为开源项目,并指定开发环境为ide
done

场景三:客户定制需求

情况:不同客户使用不同的开发环境

解决方案:

进阶使用技巧条件编译支持

common:
    macros:
        - DEBUG=1
        - USE_HAL_DRIVER
    
target_specific:
    uvision:
        macros:
            - KEIL_BUILD=1
    iar_arm:
        macros:
            - IAR_BUILD=1

多配置管理

# debug配置
debug:
    macros:
        - DEBUG=1
        - LOG_LEVEL=3
    c_flags:
        - "-O0"
        - "-g3"
# release配置  
release:
    macros:
        - NDEBUG=1
        - LOG_LEVEL=1
    c_flags:
        - "-O2"
        - "-DNDEBUG"

脚本自动化

#!/usr/bin/env python
# 自动生成所有IDE工程的脚本
import subprocess
import os
工具列表包括uvision, iar_arm, gcc_arm, cmake这些项目名称
项目清单包括项目A, 项目B, 项目C
for project in projects:
    for ide in ides:
命令行指令为 progen 生成功能,依据项目配置文件,指定项目名称与集成开发环境,具体参数包括文件路径为 projects.yaml,项目标识为当前项目,目标为指定集成开发环境
执行该命令行指令,借助shell环境完成运行过程
已创建{project},用于{ide}

分析其长处与短处,需要明确其有利条件,也要认识其不足之处,应当提出应用指导,要说明适用的环境,也要指出不适宜的场合,应当遵循有效做法,关于文件管理,要注意结构安排

project_configs/
├── general/              # 常规设置文件
│   ├── 基础设定文件   # 核心参数
│   └── 调试设置文件    # 用来调试的配置文件
├── destinations/       # 指定接收设备目录
│   ├── 针对STM32F4系列的配置文件yaml格式
│   └── 那个以F7为后缀的配置文件  # 专门针对F7系列
项目目录, 包含相关设置, 使用路径为 projects/
    ├── bootloader.yaml # 引导程序
    └── application.yaml # 应用程序

总结

它虽非声名显赫的软件,却是嵌入式项目规划不可或缺的宝贵资源。

你的看法

你觉得这种"一次配置sublime text 3 c,多次生成"的理念怎么样?

在多IDE协作中还遇到过哪些问题?

还知道哪些类似的项目管理工具?

如果你也被多IDE工程管理困扰过sublime text 3 c,一定要试试!

如有侵权请联系删除!

13262879759

微信二维码