Migrating CMSIS-Packs to CMSIS v6
Who is this for?
This is an advanced topic for maintainers of CMSIS-Packs with device support.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Migrate a CMSIS v5-based CMSIS-Pack with device support to CMSIS v6.
- Update example projects.
Prerequisites
Before starting, you will need the following:
- A good understanding of CMSIS-Packs .
- A CMSIS-Pack that contains device support and was created for CMSIS v5.
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll migrate a CMSIS v5-based CMSIS-Pack with device support to CMSIS v6. First, you’ll confirm the toolchain, replace assembly startup code with C files, and create scatter files. Then, you’ll update example projects from Arm Compiler 5 to version 6 in µVision and convert them to the CMSIS-Toolbox
csolution and cproject formats.Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
Use Arm Compiler for Embedded v6. CMSIS v6 also supports Arm GNU Toolchain v12 and later, LLVM v16 and later, and IAR Embedded Workbench for Arm v9.30 and later.
Replace assembly-based startup code with C-based startup files and create scatter files. Complete these updates before migrating example projects.
Install the newly created device family pack, open Options for Target - Target, and set Use default compiler version 6. Then, open the C/C++ [AC6] tab and set the appropriate defines.
Convert to the new standard after migrating to Arm Compiler 6. The conversion targets the
csolution and cproject format, so you should see csolution and cproject files in your project.Review the C/C++ [AC6] settings and adjust your defines and warning configuration. It’s good practice to revisit compiler warnings after changing the compiler version.