在IAR中调试stm32工程文件时,出现的问题
来源:互联网 发布:tell me why网络歌曲 编辑:程序博客网 时间:2024/04/29 06:23
参考:http://www.emcu.it/ARM_Compiler/IAR/IAR_tips_and_tricks.html
Error[Pe147]: declaration is incompatible with "__nounwind __interwork __softfp unsigned long __get_PSP(void)" (declared at line 52 of "D:\Program Files\IAR E:\project\ARMuDisk\projectperiph\STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1084
MSIS build problems with IAR Embedded Workbench ver. 6.30.6
If you try to use the STM32 Library examples with IAR 6.30.6 you get a loot of errors.
Below there is the solution.
The customer's file:
...\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h
is a very old version of CMSIS (V1.30 from 2009) with no adaptations for IAR Embedded Workbench for ARM.
It is not possible to use this old header file with EWARM 6.30.6.
Included and integrated in IAR Embedded Workbench for ARM 6.30.6 is "core_cm3.h" version V2.11 from 2011.
See the directory:
<EWARM>\arm\CMSIS\Include\core_cm3.h
To take advantage of this new, improved CMSIS library, just select:
Project -> Options -> General Options -> Library Configuration -> Use CMSIS
The fix for this project as described by Technical Note 75890:
http://supp.iar.com/Support/?note=75890
is to:
A. Rename the outdated CMSIS file "...\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h" to "core_cm3.h.old" (for example)
B. Enable CMSIS: Project -> Options -> General Options -> Library Configuration -> Use CMSIS
Below there is the solution.
The customer's file:
...\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h
is a very old version of CMSIS (V1.30 from 2009) with no adaptations for IAR Embedded Workbench for ARM.
It is not possible to use this old header file with EWARM 6.30.6.
Included and integrated in IAR Embedded Workbench for ARM 6.30.6 is "core_cm3.h" version V2.11 from 2011.
See the directory:
<EWARM>\arm\CMSIS\Include\core_cm3.h
To take advantage of this new, improved CMSIS library, just select:
Project -> Options -> General Options -> Library Configuration -> Use CMSIS
The fix for this project as described by Technical Note 75890:
http://supp.iar.com/Support/?note=75890
is to:
A. Rename the outdated CMSIS file "...\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h" to "core_cm3.h.old" (for example)
B. Enable CMSIS: Project -> Options -> General Options -> Library Configuration -> Use CMSIS
Index
-
CMSIS build problems with IAR Embedded Workbench ver. 6.20
If you use IAR release 6.20 and STM Library 3.5 you probably have a lot of errors (see below).
...........
...........
Error[Og006]: Syntax error in inline assembly: "Error[446]: The selected cpu/core does not support this status register" C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c 268
Error[Og006]: Syntax error in inline assembly: "Error[438]: This instruction is not available in the selected cpu/core" C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c 324
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __RBIT(unsigned long)" (declared at line 174 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1134
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __STREXH(unsigned short, unsigned short *)" (declared at line 182 of "C:\ C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1186
Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
...........
...........
This is caused to the fact that IAR now incorporate CMSIS files that are also inside the STM Library.
This problem is known and the IAR solution is here (html page) or here (pdf).
My solution is: commenting the line 93 in the file core_cm3.c, see below.
It is not an elegant solution but it work.
...........
...........
Error[Og006]: Syntax error in inline assembly: "Error[446]: The selected cpu/core does not support this status register" C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c 268
Error[Og006]: Syntax error in inline assembly: "Error[438]: This instruction is not available in the selected cpu/core" C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c 324
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __RBIT(unsigned long)" (declared at line 174 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1134
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __REV16(unsigned long)" (declared at line 173 of "C:\Program Files\IAR C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1124
Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
Error[Pe147]: declaration is incompatible with "__thumb __softfp unsigned long __STREXH(unsigned short, unsigned short *)" (declared at line 182 of "C:\ C:\TraningSTM-Castelletto-F200-052011\Copia\Examples\LABS\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h 1186
Program Files\IAR Systems\Embedded Workbench 6.0 Kickstart_2\arm\inc\c\intrinsics.h")
...........
...........
This is caused to the fact that IAR now incorporate CMSIS files that are also inside the STM Library.
This problem is known and the IAR solution is here (html page) or here (pdf).
My solution is: commenting the line 93 in the file core_cm3.c, see below.
It is not an elegant solution but it work.
- 在IAR中调试stm32工程文件时,出现的问题
- IAR 环境下基于JLINK在RAM中调试STM32
- 工程调试中出现的问题
- 关于用IAR建立 STM32工程的问题
- IAR新建STM32工程遇见的问题以及解…
- 在IAR调试stm32中断偏移的奇怪现象
- iar for stm32建立工程时添加自带库的问题
- IAR新建stm32工程
- 关于在eclipse中 在工程,项目,文件,包,类前面出现红色感叹号的问题
- 九九的STM32笔记(八)IAR平台,在内存中调试STM32
- STM32 IAR调试的详细步骤
- eclipse中web工程调试出现404的问题
- 分别在IAR for STM32、IAR for STM8、MDK中重定向printf的方法
- 在iar环境下,把一个普通的stm32工程上移植入ucosii
- SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(3)-IAR Linker文件分析
- IAR安装调试的问题
- IAR中创建STM32工程步骤(寄存器版本)
- STM32 IAR无法调试下载bin文件到芯片
- WPF实现类似MDI子窗体的功能
- escape()、encodeURI()、encodeURIComponent()区别详解
- 控制文件(control)被误删恢复方法(ORA-00283/ORA-01610的问题)
- Ubuntu init启动流程分析
- TagSupport与BodyTagSupport的区别
- 在IAR中调试stm32工程文件时,出现的问题
- Win7/XP 平台VS2010安装Visual Assist X
- OCP-1Z0-053-V12.02-456题
- sqlserver还原成功但是数据库上一直显示正在还原
- Multiple errors occurred while copying the files
- 0x80070570 文件或目录损坏且无法读取 CHKDSK 修复方法
- CoreText 相关知识
- 理解函数的默认函数
- jQuery 2.0.3 源码翻译(持续更新...)