TN0830
Technical note
How to use EWARM 6.2x
with projects built with EWARM 6.1 and previous versions
Introduction
Since EWARM version 6.2, the compiler adds new intrinsics for the CMSIS library that
improve the compiler performance in terms of optimization. These intrinsics may break
CMSIS header files included in STM32 firmware packages built with older EWARM
versions.
To be in line with this change, this technical note describes the steps required to use
EWARM 6.2x with projects built with EWARM 6.1 and previous versions.
October 2011
Doc ID 022329 Rev 1
1/6
www.st.com
Contents
TN0830
Contents
1
2
Opening previous EWARM projects with EWARM 6.2 . . . . . . . . . . . . . . 3
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2/6
Doc ID 022329 Rev 1
TN0830
Opening previous EWARM projects with EWARM 6.2
1
Opening previous EWARM projects with EWARM 6.2
When using EWARM 6.2x to open projects built with EWARM 6.1 and previous, the
following compilation errors are generated due to double CMSIS definitions:
Error[Pe147]: declaration is incompatible with "__interwork
__softfp unsigned long __get_PSP(void)" (declared at line 52 of
"C:\Program Files\IAR
C:\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h
To overcome this issue:
1.
Check the "Use CMSIS" option from
Project options
>
General Options
>
Library
Configuration:
Use CMSIS option
Figure 1.
2.
Remove all CMSIS header files from your project by removing:
“$PROJ_DIR$\..\..\..\Libraries\CMSIS\CM3\CoreSupport” from [Project>Options>C/C++
Compiler>Preprocessor]
Doc ID 022329 Rev 1
3/6
Opening previous EWARM projects with EWARM 6.2
Figure 2.
Remove all CMSIS header files from your project
TN0830
4/6
Doc ID 022329 Rev 1
TN0830
Revision history
2
Revision history
Table 1.
Date
20-Oct-2011
Document revision history
Revision
1
Initial release.
Changes
Doc ID 022329 Rev 1
5/6