`mspm0-metapac` logo

`mspm0-metapac`

Free

Generate PACs for MSPM0 microcontrollers in Rust

FreeFree tier
Type
Open Source

About `mspm0-metapac`

mspm0-metapac is a Rust-based open-source tool that generates a Peripheral Access Crate (PAC) for MSPM0 microcontroller families. It produces clean machine-readable data including base chip information, packages, flash/RAM size, peripheral addresses and interrupts, GPIO pin function (PF) mappings, register blocks, DMA mappings, and per-package pinouts. The tool uses official TI data sources such as SysConfig metadata, SDK header files, and SVD files, and it provides guidance for adding new chips and peripherals. The generated PAC and JSON data are available in the associated mspm0-data-generated repository. This project is part of the mspm0-rs ecosystem and is listed in the rust-embedded/awesome-embedded-rust curated list.

Key Features

Base chip information extraction (packages, flash/RAM size)
Peripheral address and interrupt mapping
GPIO pin function (PF) mapping generation
Register block generation for all peripherals
DMA mapping support
Per-package pinout generation
Links to technical reference manuals and datasheets
Support for adding new chips and peripherals with detailed documentation
Uses official TI data sources (SysConfig, SDK headers, SVDs)

Pros & Cons

Pros
  • Automates tedious PAC generation for MSPM0 devices
  • Uses official TI data sources (SysConfig, SDK, SVDs) ensuring accuracy
  • Provides clean, machine-readable data suitable for code generation
  • Supports multiple MSPM0 families with cross-family peripheral support
  • Includes detailed instructions for extending support to new chips or peripherals
Cons
  • Work in progress: DMA mappings, register blocks for all peripherals, and PDF links are not fully complete
  • Requires manual effort when adding a new peripheral across all chip families
  • Depends on external data sources (SysConfig, SVDs) which may contain inconsistencies or errors

Best For

Embedded Rust development on MSPM0 microcontrollersAutomating PAC generation for MSPM0 familiesHardware abstraction layer generation for MSPM0Verifying SVD consistency across chip familiesCreating accurate register definitions for bare-metal Rust projects

FAQ

What is mspm0-metapac?
mspm0-metapac is a tool that generates a Peripheral Access Crate (PAC) for MSPM0 microcontroller families using clean machine-readable data derived from official TI sources.
What data sources does it use?
It uses SysConfig metadata from Code Composer Studio, mspm0-sdk header files for interrupt numbers and peripheral addresses, and MSPM0 SVD files for register blocks.
How can I add support for a new chip?
Update the data sources to include the new chip's SVD and SysConfig metadata, add the chip family and part numbers to parts.yaml, and if needed, add chip-specific register blocks and check the peripheral mapping in perimap.rs.