Skip to content

Latest commit

 

History

History

Templates

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

CMSIS-Toolbox Templates

These generic templates show the file structure for different types of csolution projects and for integrating external build systems. They are not ready-to-build example projects; use them as a starting point for your own application.

To use a template, copy the content of its folder to your application folder. Then adapt the names, replace the placeholders, and add the required application content.

For guidance on creating an application from these templates, refer to Create Applications.

Template Types

Simple

The Simple template shows the basic structure of a solution containing one project. It is a starting point for a single executable image or library.

Multicore

The Multicore template contains one project for each processor in a multicore device. Target sets group the project images into Debug and Release applications. Select a set with --active MyTargetName@Debug or --active MyTargetName@Release.

TrustZone

The TrustZone template separates the secure and non-secure parts into projects and shows how the non-secure project uses the CMSE library generated by the secure project. Target sets group both images into Debug and Release applications. Select a set with --active MyTargetName@Debug or --active MyTargetName@Release.

UnitTest

The UnitTest template contains independent test projects that share common support through a reusable layer. It does not use target sets because the projects are separate test executables, typically used in CI. Use --context .Debug or --context .Release to select all matching test projects.

ZephyrWest

The ZephyrWest template integrates an existing Zephyr application using the West build system. The Zephyr workspace and application remain responsible for their sources and configuration.

NativeCMake

The NativeCMake template integrates an existing native CMake project using CMSIS-Toolbox 2.15.0 or higher. The native project remains responsible for its CMakeLists.txt, toolchain setup, build targets, and output images.

Pack Ownership

Pack declarations define which software packs are available within solution, project, or layer scope. Avoid duplicate or conflicting pack requirements so projects and layers remain reusable.

  • *.csolution.yml: specify hardware packs and packs shared by all projects.
  • *.cproject.yml: specify packs required by that project.
  • *.clayer.yml: specify packs required by the reusable layer so they are available to every project that uses it.