发布时间: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:

编译器标志选项包括,"-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,一定要试试!
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码