uvprojx converter uv2csolution

The uv2csolution project file converter allows users of µVision to migrate to the new project format CMSIS solution required by CMSIS-Toolbox.

Usage

Usage:
  uv2csolution <project.uvprojx | multiproject.uvmpw> | [flags]

Flags:
  -d, --dir string   Change output directory for csolution.yml and vcpkg-configuration.json file (e.g. ../ for parent directory)
  -h, --help         Print usage
  -V, --version      Print version

Optimization level conversion

As the CMSIS-Toolbox supports multiple toolchains (Arm Compiler, IAR, GCC, LLVM), the optimize: node has "generic" levels rather than toolchain specific command line flags. When mapping from µVision, multiple values need to be mapped to a single YML value.

The following table shoes the conversion done by uv2csolution:

µVision CMSIS Solution
-O0, <default> optimize: none
-O1 optimize: none
-O2 optimize: speed
-O3 optimize: speed
-Ofast optimize: speed
-Os balanced optimize: balanced
-Oz image size optimize: size
-Omax optimize: balanced

Attention

If in µVision Options for Target - Output - Debug Information is selected, optimize: debug is set to ensure best possible debug experience. Please uncheck that option to enable optimization level conversion based on the table above.

Note

There is always the possibility to specify toolchain specific command line options using the misc: node in case the generic abstractions lack granularity.

Examples

Simple conversion

uv2csolution MyProject.uvprojx

This step generates the following files:

  • MyProject.csolution.yaml
  • MyProject.cproject.yaml
  • vcpkg-configuration.json

Multi-project workspace conversion

uv2csolution MyProject.uvmpw

This step generates the following files:

  • MyProject.csolution.yaml
  • ./MyProject1/MyProject1.cproject.yaml
  • ./MyProject2/MyProject2.cproject.yaml
  • More cproject files in separate directories, depending on the number of projects in the multi-project workspace.
  • vcpkg-configuration.json