element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Blog MSPM0 project with VS Code, CMake and GCC - part 6: empty "template" project
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: Jan Cumps
  • Date Created: 12 Sep 2026 2:32 PM Date Created
  • Views 16 views
  • Likes 0 likes
  • Comments 0 comments
  • MSPM0L1105
  • gcc
  • MSPM0
  • easyL1105
  • VS Code
  • cmake
  • MSPM0L1306
  • vscode
Related
Recommended

MSPM0 project with VS Code, CMake and GCC - part 6: empty "template" project

Jan Cumps
Jan Cumps
12 Sep 2026

In this blog series, I build a Texas Instruments MSPM0 example with VS Code as IDE, and CMake as build infrastructure.
In the previous posts, I created an end to end flow, from install over build to debug, tested on LaunchPad and EasyL1105 kit.
In post 6, I try to make an easy start point. An empty project, and the steps to adapt it for your project.

The previous posts tackled a few aspects at a time. And following them from start to end gives you a working project. This one is single shot: minimal steps, starting from a preconfigured template project.

This blog assumes that you have (see previous posts for detailed instructions):

  • GCC cross compiler for arm (arm-none-eabi), V14.2 or higher.
  • CMake 3.29 or higher
  • Ninja v1.13.1 or higher.
  • TI SysConfig
  • mspm0 SDK 2.11 or higher
  • Microsoft CMake Tookit for VS Code extension
  • TI Embedded Development For VS Code
  • TI Cortex-Debug: Device Support Pack - Texas Instruments MSPM0 (can be installed form TI Embedded Development)
  • TI Embedded Debug for VS Code (can be installed form TI Embedded Development)

If you have a lower version of some components, you can try if it works. You may have to make some changes in that case.

It also assumes that you have these entries in your workspace settings  (see previous posts for detailed instructions):

,
	"settings": {
		"cmake.cmakePath": "C:/Users/jancu/.pico-sdk/cmake/v4.2.1/bin/cmake.exe",
		"cmake.generator": "Ninja",
		"cmake.environment": {
			"CMAKE_PROGRAM_PATH": "C:/Users/jancu/.pico-sdk/ninja/v1.13.2/ninja.exe",
			"SYSCONFIG_CLI": "C:/ti/sysconfig_1.28.1/sysconfig_cli.bat",
			"SDK_ROOT": "C:/ti/mspm0_sdk_2_11_00_07"
		},
		"cmake.enableTraceLogging": false,
		"cmake.loggingLevel": "info",
		"ti-embedded-debug.armToolchainPath": "c:/Users/jancu/Documents/toolchains/arm-gnu-toolchain-15.2.rel1-mingw-w64-i686-arm-none-eabi/bin",
		"cortex-debug.armToolchainPath": "c:/Users/jancu/Documents/toolchains/arm-gnu-toolchain-15.2.rel1-mingw-w64-i686-arm-none-eabi/bin"
	}

If you happen to use the Raspberry Pico VS Code extension, you will already have GCC, CMake and Ninja. They are all installed by that extension.
Check for <USERHOME>/.pico-sdk on your computer.

SysConfig can be downloaded from TI. The MSPM0 SDK can be cloned from GitHub.

You install the VS Code extensions in the IDE, like any other extension.

You will have to adapt to your installation(s).

To get at the JSON file, select Settings -> Workspace -> Open Settings (JSON)

Let's call our project mspm0_e14.

1: download project and add it to your workspace

A zipped VS Code project is attached at the end of this post. Download and unzip it to a place of your choice.

  • Rename the resulting folder to your project name: mspm0_e14.
  • rename mspm0_empty.c to mspm0_e14.c
  • rename mspm0_empty.syscfg to mspm0_e14.syscfg
  • adapt .vscode/settings.json to your installation
  • the SysConfig file is configured for a MSPM0L1306 Launchpad. Change that to your device via the SysConfig GUI.

In VS Code, select File -> Add Folder to Workspace, and select the mspm0_e14

If VS Code asks for the toolchain, select your cross compiler. If you don't do it now, you still have a chance to select (and change) in the next step.

2: Open the project in CMake Toolkit, configure, build

Select the CMake Toolkit, and select the folder you just added to the workspace.

image

You can also change the toolchain if needed.

Configure the project, by clicking on the button that appears when you hover over Configure.

Then build, by clicking on the button that appears when you hover over Build.

The project will generate 2 firmware binaries. One for loading by a debugger, the other a .hex for shabaz' bootloader.

3: Debug

This step requires that you have a debugger, either on your LaunchPad, or a standalone XSD110

Select the VS Code Run and Debug button. There will be an entry for TI Embedded Debug.

image

The debugger will stop at the first executable line of code in main()

4: make your own design

When step 1 - 3 work, you have a good baseline to start building your own design.

Use SysConfig to select and configure your peripherals (GPIO, I2C, UART, ...).

If you add files to your project, take care to add them to the CMakeLists.txt. Typically in this section:

# C files
set(SOURCES

If you create  header files in subfolders, add these subfolders in this section:
# Directories searched for header files
include_directories(

If you add libraries via the SysConfig GUI, the CMake script will find them. If you want to add other libraries, adapt these two sections:

target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE
)

# Libraries and linker command files
target_link_libraries( ${CMAKE_PROJECT_NAME} PRIVATE
)

Good luck!

attachment: the VS Code project mspm0_empty_20260912.zip

post 5:  MSPM0 project with VS Code, CMake and GCC - part 5: Open .syscfg file in SysConfig GUI 

part of the EasyL1105 series. all posts

  • Sign in to reply
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube