TPA · TI Project Assistant

一行命令,从 SysConfig 图形化配置出发,自动生成完整的 TI MSPM0 嵌入式项目。告别 CCS 手动配置。

仓库地址:GitHub | PyPI


安装

1
pip install ti-project-assistant

验证:

1
mspm0-init --version   # 或 -V

快速开始

1
2
3
4
5
6
7
8
9
# 1. 用 SysConfig GUI 配好芯片和引脚,保存 .syscfg 到空目录,然后:
mspm0-init

# 2. 构建
cmake --build build -j$(nproc)

# 3. VSCode 调试
code .
# 按 F5 → 选择 CMSIS-DAP / XDS110 / JLink

修改配置后:

1
mspm0-init regenerate    # 仅更新生成文件,src/ 下手写代码安全无虞

功能特性

特性 说明
🔌 芯片支持 SDK 中全部 58 款 MSPM0 芯片,运行时动态发现
🛠 调试器 CMSIS-DAP / XDS110 / JLink / none 四种模式
📁 项目结构 分层 inc//src/config/ 隔离自动生成代码
⚙️ CMake file(GLOB_RECURSE) 递归链接,arm-none-eabi-gcc 工具链
🖥 VSCode 集成 全套 .vscode/ 配置(launch / tasks / settings / c_cpp_properties)
🔄 regenerate 修改引脚后一键重生成,手写代码不受影响
🐙 Git 检测到 Git 时自动 init + .gitignore
🔘 状态栏按钮 配合 Task Buttons 插件,SysConfig / Build / Flash / Clean 一键操作
🌍 跨平台 Windows / Linux,PATH 优先自动发现工具链
🔍 自检 mspm0-init --check 一键诊断环境状态

环境依赖速查

Windows

依赖 版本 安装方式
Python ≥ 3.8 winget install Python.Python.3.12
ARM GCC 13.x+ 安装时勾选”添加到 PATH”,或将 bin\ 手动加入 PATH
CMake ≥ 3.13 winget install Kitware.CMake
Ninja 任意 winget install Ninja-build.Ninja
TI MSPM0 SDK 2.x 解压到 C:\ti\
TI SysConfig 1.x 解压到 C:\ti\
OpenOCD 1.5.x TI VSCode 插件自动安装 / TI 官网手动下载(CMSIS-DAP/XDS110 必装,JLink 可选)
arm-none-eabi-gdb 14.x MSys2: pacman -S mingw-w64-x86_64-gdb-multiarch / ARM 官方安装包自带 / TI VSCode 插件
JLink 7.x+ 安装后需手动将 bin\ 目录加入 PATH(JLink 用户必装)
Git 任意 winget install --id Git.Git -e --source winget

Linux

依赖 版本 安装方式
Python ≥ 3.8 系统自带 / sudo apt install python3
ARM GCC 13.x+ sudo apt install gcc-arm-none-eabi
CMake ≥ 3.13 sudo apt install cmake
Ninja 任意 sudo apt install ninja-build
TI MSPM0 SDK 2.x 解压到 ~/ti/
TI SysConfig 1.x 解压到 ~/ti/
OpenOCD 1.5.x TI VSCode 插件自动安装 / TI 官网手动下载(CMSIS-DAP/XDS110 必装,JLink 可选)
arm-none-eabi-gdb 14.x sudo apt install gdb-multiarch / ARM 官方安装包自带 / TI VSCode 插件
JLink 7.x+ .deb 包自动加入 PATH / .tar.gz 需手动添加 bin/ 到 PATH 或设 JLINK_DIR

CLI 快速索引

创建项目

1
2
3
4
mspm0-init                                    # 自动发现 .syscfg,原地创建
mspm0-init new -n my_project # 指定项目名
mspm0-init new myboard.syscfg -n proj -d xds110 # 完整指定
mspm0-init new --device MSPM0G3507 --package "LQFP-48(PT)" -n bare # 无 syscfg

重新生成

1
2
3
4
mspm0-init regenerate                         # 项目目录内执行
mspm0-init regenerate /path/to/proj # 指定路径
mspm0-init regenerate -d jlink # 更换调试器
mspm0-init regenerate -d none # 移除调试器

自检

1
2
3
mspm0-init --check                            # 环境诊断
mspm0-init --version # 版本号
mspm0-init --help # 完整帮助

全部参数

1
2
3
4
5
6
7
8
9
10
11
12
13
mspm0-init new [syscfg] -n NAME [选项]

-n, --name NAME 项目名称(必填)
-o, --output DIR 输出目录
-s, --sdk PATH MSPM0 SDK 路径
--sysconfig PATH SysConfig 安装目录
-d, --debugger TYPE cmsis-dap(默认)| xds110 | jlink | none
--jlink-path PATH JLink 安装路径
--device DEVICE 手动指定芯片型号
--package PACKAGE 手动指定封装
--dry-run 预览模式,不创建文件
--no-build 跳过构建验证
--no-git 跳过 Git 初始化

环境变量

全部可选。不设置时 TPA 从 PATH 自动发现。

变量 Windows 默认值 Linux 默认值 说明
MSPM0_SDK C:\ti\mspm0_sdk_* ~/ti/mspm0_sdk_* SDK 根目录
SYSCONFIG_DIR C:\ti\sysconfig_* ~/ti/sysconfig_* SysConfig 目录
TI_ROOT C:\ti ~/ti TI 工具根目录
OPENOCD_DIR PATH → TI 插件缓存 PATH → ~/.config/... OpenOCD 目录
GDB_DIR PATH → TI 插件缓存 PATH → ~/.config/... GDB 目录
JLINK_DIR PATH → C:\Program Files\SEGGER\JLink PATH → /opt/SEGGER/JLink* JLink 目录

工具解析优先级

1
2
3
4
5
1. CLI 参数          (--openocd / --gdb / --jlink-path)    ← 最高优先级
2. 环境变量 (OPENOCD_DIR / GDB_DIR / JLINK_DIR)
3. PATH (shutil.which) ← 推荐方式
4. TI 插件缓存 (~\.config\Texas Instruments\...)
5. 遗留路径 (TI_ROOT / CCS_BASE)

生成的项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
my_project/
├── CMakeLists.txt
├── .gitignore
├── my_project.syscfg # 原始 SysConfig 配置
├── config/ # 自动生成 — 请勿手动编辑
│ ├── ti_msp_dl_config.h
│ ├── ti_msp_dl_config.c
│ ├── device_linker.lds
│ └── device.opt
├── inc/ # 头文件
│ ├── main.h
│ ├── app/ # 应用层
│ ├── driver/ # 驱动
│ ├── modules/ # 功能模块
│ └── utils/ # 工具
├── src/ # 源码(在此写代码)
│ ├── main.c
│ ├── app/
│ ├── driver/
│ ├── modules/
│ └── utils/
├── lib/ # 本地静态库
├── excluded/ # 不参与编译的产物
├── build/ # 构建输出(ELF/HEX/BIN/MAP)
└── .vscode/
├── launch.json # 调试配置
├── tasks.json # 构建 + SysConfig + Flash
├── settings.json # Task Buttons 状态栏按钮
└── c_cpp_properties.json # IntelliSense

依赖关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
mspm0-init
├── SysConfig 1.x ────────────── 生成 ti_msp_dl_config.c/h、链接脚本
├── MSPM0 SDK 2.x
│ ├── driverlib.a ──────────── 硬件抽象层
│ ├── startup_*.c ──────────── 中断向量表 + 启动代码
│ ├── CMSIS Core ───────────── Cortex-M0+ 寄存器定义
│ └── DeviceFamily.h ──────── 芯片系列宏(58 款芯片动态发现)
├── arm-none-eabi-gcc ────────── 交叉编译
├── CMake + Ninja ───────────── 构建系统
├── OpenOCD (可选) ──────────── GDB Server + 烧录(cmsis-dap / xds110 必装)
├── JLink 7.x+ (可选) ───────── 原生 GDB Server + 烧录(jlink 模式,≥ 7.70)
├── arm-none-eabi-gdb ────────── 源码级调试
├── Git ──────────────────────── 版本控制
└── VS Code + Cortex-Debug ──── IDE 集成

支持的芯片

SDK 中的全部 58 款 MSPM0 芯片开箱即用。 TPA 通过运行时解析 SDK 自动发现芯片参数,无需手动添加型号。

系列 代表型号
MSPM0Gx5xx G3507, G3519, G3107, G1507, G1519 …
MSPM0Gx1xx G1105, G1106 …
MSPM0Lx3xx L1306, L1345, L2228 …
MSPM0Lx2xx L1227, L2227, L1228 …
MSPM0Cx1xx C1105, C1106 …
MSPM0Hx2xx H3215 …

📖 详细教程

本文档是快速索引参考。如需完整的手把手教程(含碎碎念、环境变量图形配置指南、Linux udev 规则、常见问题排查等),请参阅:

👉 Ti-Project-Assistant 使用教程

avatar
Harekasa
Harekasa的个人博客,分享技术、生活和兴趣爱好。
OMG its me !
Announcement
This is my Blog