CMSIS-Build: ccmerge: Config File Updater

| CMSIS-Build Version 0.9.0 (beta) Tools, software frameworks, and work flows for productivity with CMSIS based projects

- Main Page
- Usage and Description

All Pages
ccmerge: Config File Updater

The ccmerge tool supports the update process for configuration files that use Configuration Wizard Annotations. The tool takes the configuration file located in the CMSIS Pack (pfile) and merges the configuration information extracted from the configuration file located in the current project (cfile). If the merge succeeds the result is written to 'cfile' after a copy of 'cfile' has been stored as 'cfile.nnnn'.

It is called from the Bash command line with the following syntax:

ccmerge has the following command invocation:

ccmerge -pfile <name_of_pack_cfgfile> -cfile <name_of_current_cfgfile> [-merge] [-details]

ccmerge helps to update the setup of software components as it merges options from a previous configuration file version to a new version.

Option | Description
--- | ---
-pfile <name_of_pack_cfgfile> | File path of the configuration file from a pack
-cfile <name_of_current_cfgfile> | File path of the current config file in a project
-merge | Execute merge: the current 'cfile' will be saved as 'cfile.nnnn' then 'cfile' will be updated and overwritten.
-details | Create a log file: the name will be that of 'cfile' with an extension '.mlog' added to 'cfile'. The log file will contain info about merged items and their location or warning and error messages when processing fails.

When -details is specified without -merge, then a .mlog file will be created that shows the differences of the config values but no actual merge takes place.

When ccmerge detects that 'cfile' and 'pfile' are incompatible then an error message is shown and the merge is not executed.

Note
  A filepath name can be specified without surrounding " characters as long as it does not contain any space or other special characters. It must be enclosed by " characters when the filepath name contains one or more spaces or other special characters.

# Usage Example

ccmerge -pfile $CMSIS_PACK_ROOT/ARM/CMSIS/5.6.0/CMSIS/RTOS2/RTX/Config/RTX_Config.h -cfile RTE/CMSIS/RTX_Config.h -merge

# Error Messages

Type | Message | Action
--- | --- | ---
ERROR | -cfile - missing filename | See usage and correct the argument.
ERROR | -cfile: duplicate specification | See usage and correct the argument.
ERROR | -pfile - missing filename | See usage and correct the argument.
ERROR | -pfile: duplicate specification | See usage and correct the argument.
ERROR | unknown command option | See usage and correct the argument.
ERROR | Error - cannot open s file | Check input files.
ERROR | Error - different types of configuration options | Check input files.
ERROR | Error: vector.AddCitem() failed - out of memory. | Ensure you have enough memory available.
ERROR | FATAL-ERROR: Out of Memory | Ensure you have enough memory available.
ERROR | ccmerge failed, d Error(s) found. | Check log file.
WARNING | ccmerge command line warning: duplicate '-s' ignored | See usage and correct the argument.
INFO | Note: '-merge' not specified, checking files only. | For information only.
INFO | Note: no config annotations in pfile | For information only.
INFO | Note: no config annotations in cfile | For information only.
INFO | ccmerge completed, 0 Error(s), 0 Warning(s), 'cfile' left unchanged. | For information only.
INFO | ccmerge completed, d Error(s), d Warning(s), d items merged. | For information only.