**** Advance Notice ****

This site will be closed on 31 December 2015,

Important Information for users of NXP LPCXpresso

This site is for users of Code Red branded products.

NXP LPCXpresso users should visit the LPCXpresso FAQ's for up-to-date information relevant to that product.

Differences between revisions 3 and 4
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:

== Updating projects to use CMSIS 2.0 library projects ==
Please see the FAQ [[cmsis130to200|Updating projects from CMSIS 1.30 to CMSIS 2.0]]

hash acl All:read

Differences between CMSIS 1.30 and 2.00

Version 4 of the Code Red IDE introduced support for CMSIS 2.0. The differences between CMSIS 1.30 and CMSIS 2.00 can be categorized at two levels - the functionality provided by CMSIS as defined by ARM, and the way that the Code Red IDE supports CMSIS.

Changes at the ARM level

The main differences between CMSIS 1.3 and 2.0 as supplied by ARM are as follows:

  • CMSIS now supports Cortex-M4 in addition to Cortex-M3 and M0 parts.
  • CMSIS now provides a library of DSP functions. Although this is primarily aimed at making use of the DSP functionality provided by Cortex-M4, an implementation is also provided for Cortex-M3 and is planned by ARM for Cortex-M0. For more details, please see the FAQ CMSIS DSP Library.

  • New core_cmFunc.h and core_cmInst.h files have been introduced, with some of the functionality previously implemented in core_cmX.c and core_cmX.h moving into these new files. As part of this change, when built using GNU tools (as used by the Code Red IDE), access to much Cortex processor core functionality is now implemented using functions (which will always be inlined) defined within header files, rather than as source code. This should help to reduce code size when such core functions are used by your application.

Changes at the Code Red level

Support for additional MCUs

When support for new MCUs is being added to the Code Red IDE, CMSIS library projects will be created using CMSIS 2.0 rather than CMSIS 1.3. Note that CMSIS 1.3 based libraries will continue to be supplied where these previously existed (though these will no longer be updated).


Code within CMSIS 2.0 library projects is now built at optimisation level -Os for both Debug and Release builds. Typically there is little need to debug the code within the CMSIS library projects, and building them at -Os can therefore provide a useful code size saving without hindering debugging of application code. If required, the optimization level can be easily changed by the user.

Updated project wizards

The project wizards now allow the selection of a specific version of the CMSIS library, as well as enabling/disabling the use of the CMSIS library project. This allows new projects to be created which use either CMSIS 1.30 or 2.00 as required.

In addition, the project wizards also allow the choice of whether to use the DPS library portion of CMSIS 2.00 (where applicable).


The CMSIS documentation (as produced by ARM) is no longer shipped inside each CMSIS 2.00 library project. Instead it can be accessed using the built in help system of the Code Red IDE via

Help -> Help Contents -> Code Red Product Documentation -> CMSIS

Updating projects to use CMSIS 2.0 library projects

Please see the FAQ Updating projects from CMSIS 1.30 to CMSIS 2.0

cmsis200differences (last edited 2011-03-28 16:30:41 by CrSupportAb)