Skip to main content

TI MSPM0 one-click project init tool — bootstrap embedded projects from SysConfig

Project description

TI Project Assistant(TI 项目助手)

English version

Platform Python License MSPM0 PyPI

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


安装

pip install ti-project-assistant

安装完成后,mspm0-init 命令即可在终端中使用(Windows / Linux / macOS)。

验证安装:

mspm0-init --version     # 或 -V,输出版本号确认安装成功

快速开始

# 1. 用 SysConfig GUI 配好芯片和引脚,保存 .syscfg 到空目录,然后:
mspm0-init

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

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

修改配置后:

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

功能

子命令 用途
(无参数) 自动发现当前目录 .syscfg,原地创建项目
new .syscfg 创建新项目
regenerate 修改引脚/外设配置后重新生成代码,不改动手写代码
check 自检开发环境:arm-gcc、CMake、SysConfig、SDK、OpenOCD 等工具链状态
--version / -V 显示当前版本号,用于验证安装

脚本自动完成:

  • 调用 SysConfig CLI 生成 ti_msp_dl_config.c/h、链接脚本
  • 动态解析 SDK,自动匹配 全部 58 款 MSPM0 芯片的启动文件、driverlib、内存布局(无需硬编码)
  • 创建标准分层项目目录结构(config/src/app/src/modules/src/utils/
  • 生成 CMakeLists.txtfile(GLOB_RECURSE) 递归链接,arm-none-eabi-gcc 工具链)
  • 生成 .vscode/ 全套配置(launch.json / tasks.json / settings.json / c_cpp_properties.json
  • 内置 ⚙️ 打开 TI SysConfig VSCode 任务,一键启动图形化配置
  • 支持 Task Buttons 插件,状态栏直接点击 SysConfig / Build / Clean
  • 支持 4 种调试器:CMSIS-DAP、XDS110、JLink(原生 Segger GDB Server)、无调试器
  • 跨平台工具自动发现:可执行工具优先从 PATH 读取(Windows/Linux/macOS 一致),环境变量作为回退
  • 自动 cmake configure + build 验证
  • 自动 git init + 写入 .gitignore(检测到 Git 已安装时启用,可用 --no-git 跳过)

依赖安装

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 (TI 定制) 1.3.x 从 PATH 自动发现,或 TI VSCode 插件自动安装
arm-none-eabi-gdb 14.x 从 PATH 自动发现,或 apt install gdb-multiarch,或 TI VSCode 插件
JLink (可选) 7.x+ SEGGER 官网 → 安装后自动加入 PATH

一行装完基础工具:

sudo apt install python3 gcc-arm-none-eabi cmake ninja-build

Windows

依赖 版本 安装方式
Python ≥ 3.8 python.orgwinget install Python.Python.3.12
ARM GCC 13.x ARM 官网 → 把 bin\ 加入 PATH
CMake ≥ 3.13 cmake.orgwinget install Kitware.CMake
Ninja 任意 ninja-build.orgwinget install Ninja-build.Ninja
TI MSPM0 SDK 2.x 下载 → 解压到 C:\ti\
TI SysConfig 1.x 下载 → 解压到 C:\ti\
OpenOCD (TI 定制) 1.3.x 从 PATH 自动发现,或 TI VSCode 插件自动安装
arm-none-eabi-gdb 14.x 从 PATH 自动发现,或 TI VSCode 插件自动安装
JLink (可选) 7.x+ SEGGER 官网 → 安装后自动加入 PATH

环境变量

全部可选。不设置时脚本从 PATH 自动发现可执行工具,或搜索 TI 工具目录。

变量 Linux 默认值 Windows 默认值 说明
MSPM0_SDK ~/ti/mspm0_sdk_* C:\ti\mspm0_sdk_* MSPM0 SDK 根目录
SYSCONFIG_DIR ~/ti/sysconfig_* C:\ti\sysconfig_* SysConfig 安装目录
TI_ROOT ~/ti C:\ti 所有 TI 工具的根目录
OPENOCD_DIR PATH → ~/.config/.../openocd/* PATH → C:\ti\ccs_base\...\openocd.exe OpenOCD 目录(PATH 优先,此处为回退)
GDB_DIR PATH → ~/.config/.../gdb/* PATH → C:\ti\ccs_base\...\arm-none-eabi-gdb.exe GDB 目录(PATH 优先,此处为回退)
JLINK_DIR PATH → /opt/SEGGER/JLink* PATH → C:\Program Files\SEGGER\JLink JLink 安装目录(PATH 优先,此处为回退)

工具解析优先级(所有可执行工具统一)

1. CLI 参数           (--openocd / --gdb / --jlink-path)    ← 显式指定
2. 环境变量           (OPENOCD_DIR / GDB_DIR / JLINK_DIR)    ← 手动配置
3. PATH               (shutil.which)                         ← 跨平台自动发现
4. TI 插件缓存 / 平台特定路径                                ← 兜底扫描
5. 历史遗留路径       (TI_ROOT / CCS_BASE)                   ← 最后手段

推荐配置

Linux — 加入 ~/.zshrc~/.bashrc

export MSPM0_SDK=~/ti/mspm0_sdk_2_10_00_04
export SYSCONFIG_DIR=~/ti/sysconfig_1.27.1

Windows — 在系统环境变量或 PowerShell 中设置:

$env:MSPM0_SDK = "C:\ti\mspm0_sdk_2_10_00_04"
$env:SYSCONFIG_DIR = "C:\ti\sysconfig_1.27.1"
$env:TI_ROOT = "C:\ti"

使用详解

创建新项目

# 最简单:在只有 .syscfg 的目录下直接运行
mspm0-init

# 自动发现当前目录的 .syscfg
mspm0-init new -n my_project

# 手动指定 syscfg 文件
mspm0-init new myboard.syscfg -n my_project -d xds110

# 无 syscfg,纯裸机起点
mspm0-init new --device MSPM0G3507 --package "LQFP-48(PT)" -n bare_start

# 跳过 Git 初始化
mspm0-init new -n my_project --no-git

重新生成配置

mspm0-init regenerate               # 在项目目录内执行
mspm0-init regenerate /path/to/proj # 指定项目路径

regenerate 会备份旧文件到 .sysconfig_backup/,可通过 --no-backup 跳过。

更换调试器无需重建项目:

mspm0-init regenerate -d xds110        # 从 CMSIS-DAP 切换到 XDS110
mspm0-init regenerate -d jlink          # 切换到 JLink(原生 Segger GDB Server)

全部参数

mspm0-init new [syscfg] -n NAME [选项]

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

mspm0-init regenerate [项目目录] [选项]

  -d, --debugger TYPE    更换调试器:cmsis-dap | xds110 | jlink | none
  --jlink-path PATH      JLink 安装路径(可选,PATH 优先)
  --no-build             跳过重编译
  --no-backup            不备份旧文件
  --dry-run              预览模式
  --no-git               禁用 Git 自动初始化

通用选项:

  --version, -V           显示版本号并退出
  --check                 自检开发环境
  -h, --help              显示完整帮助

生成的项目结构

my_project/
├── CMakeLists.txt              # CMake 构建定义
├── .gitignore                  # Git 忽略规则(自动生成)
├── 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/                   # 不参与编译的 SysConfig 产物
├── build/                      # 构建输出(ELF / HEX / BIN / MAP)
└── .vscode/
    ├── launch.json             # 调试配置(CMSIS-DAP / XDS110 / JLink)
    ├── tasks.json              # 构建任务 + 打开 SysConfig
    ├── settings.json           # Task Buttons 状态栏按钮
    └── c_cpp_properties.json   # IntelliSense 配置

支持的芯片

SDK 中的全部 58 款 MSPM0 芯片开箱即用。 无需手动添加芯片型号。

工具通过运行时解析 SDK 的 DeviceFamily.h、启动文件目录、预编译链接脚本和 macros.tirex.json 自动发现芯片参数,包括 Flash/SRAM 布局、启动文件、driverlib 路径等。

只要 TI MSPM0 SDK 支持的芯片,mspm0-init 就能自动识别。

支持的系列包括:

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

查看 SDK 完整设备列表 →


依赖关系

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

开发

git clone git@github.com:AndyYang12345/Ti-Project-Assistant.git
cd ti-project-assistant

# 可编辑安装(推荐,修改即时生效)
pip install -e .

版本号由 git tag 驱动(hatch-vcs),无需手动修改源文件。构建时自动从 tag 提取版本。

发布流程

git tag vX.Y.Z && git push origin vX.Y.Z

推送 tag 后 GitHub Actions 自动构建 wheel 并发布到 PyPI。无需手动运行 build 或 twine。

许可证

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ti_project_assistant-1.0.3.tar.gz (40.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ti_project_assistant-1.0.3-py3-none-any.whl (37.5 kB view details)

Uploaded Python 3

File details

Details for the file ti_project_assistant-1.0.3.tar.gz.

File metadata

  • Download URL: ti_project_assistant-1.0.3.tar.gz
  • Upload date:
  • Size: 40.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ti_project_assistant-1.0.3.tar.gz
Algorithm Hash digest
SHA256 fac9df5a7ada1ebf1e0cad5845699adcd734d2cbc785e1db2f541c3fcb78f6b4
MD5 2fc403f9b53d5bef3f3fc1e8012cb083
BLAKE2b-256 90bfdb638588c8e458c4b0979372ca20cd614de7180b638b1cb8271931cc8e4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ti_project_assistant-1.0.3.tar.gz:

Publisher: publish.yml on AndyYang12345/Ti-Project-Assistant

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ti_project_assistant-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for ti_project_assistant-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 90696965ddcae0e6a21d42fbf4943e228a4fe60365744ac9ccadef24b43e33c0
MD5 07b2c514e41702232dcfc9a68e151b4e
BLAKE2b-256 89a6872ecc979f7ef20bfa639f043abeaaaa6029d4e13b451d0dd68714ba7819

See more details on using hashes here.

Provenance

The following attestation bundles were made for ti_project_assistant-1.0.3-py3-none-any.whl:

Publisher: publish.yml on AndyYang12345/Ti-Project-Assistant

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page