打印

求助,IAR 6.20 无论编译什么项目都提示错误

[复制链接]
13435|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
打开一个别人编译正常的项目(用IAR5.5建立的),编译时提示如下错误:

Error[Pe147]: declaration is incompatible with "__interwork __softfp unsigned long __get_PSP(void)"
(declared at line 52 of "xx:\IAR Systems6\Embedded Workbench 6.0\arm\inc\c\intrinsics.h")

FILE:
  xx:\CMSIS\CM3\CoreSupport\core_cm3.h 1084

==========================================

intrinsics.h文件中报错处的内容:
    __intrinsic unsigned long __get_PSP( void );

core_cm3.h文件名中报错处的内容:
    extern uint32_t __get_PSP(void);

好像唯一的区别就是 unsinged long 和 uint32_t

类似的错误有几百个。。。

请问各位高手该从何处入手解决问题捏。。。
沙发
上官金虹| | 2011-7-19 10:07 | 只看该作者
把CMSIS\CM3\CoreSupport\删掉。
用IAR自带的CMSIS。

使用特权

评论回复
板凳
coolie2009|  楼主 | 2011-7-19 10:33 | 只看该作者
感谢楼上,我请你喝酒!:lol

使用特权

评论回复
地板
coolie2009|  楼主 | 2011-7-19 10:50 | 只看该作者
再问一下楼上高手,我编译后出现一个 *.out文件,怎么才能让它输出hex文件呢?

使用特权

评论回复
5
上官金虹| | 2011-7-19 11:12 | 只看该作者
Converter options

Image0345.JPG (21.39 KB )

Image0345.JPG

使用特权

评论回复
6
coolie2009|  楼主 | 2011-7-19 11:16 | 只看该作者
找到了,谢谢

使用特权

评论回复
7
coolie2009|  楼主 | 2011-7-19 18:04 | 只看该作者
高手还在吗?怎么在IAR中使用标准C函数 gmtime、mktime等。

以前用4.42的时候可以用的,现在用6.2发现全变成未定义了。

而且把6.2工程里一些c文件和h文件加入4.42的项目中,原来使用这些函数正常的地方,也开始报错了。。。

使用特权

评论回复
8
上官金虹| | 2011-7-19 18:10 | 只看该作者
gmtime、mktime 没用过。
可能是库设置不对。

楼主可以上传一个反映错误的最小工程。

使用特权

评论回复
9
香水城| | 2011-7-19 18:24 | 只看该作者
高手还在吗?怎么在IAR中使用标准C函数 gmtime、mktime等。

以前用4.42的时候可以用的,现在用6.2发现全变成未定义了。

而且把6.2工程里一些c文件和h文件加入4.42的项目中,原来使用这些函数正常的地方,也开始报 ...
coolie2009 发表于 2011-7-19 18:04


建议你查查IAR的手册,看看调用这些函数需要包含哪些头文件,或自己到IAR的头文件目录中搜索一下,看看哪个头文件中有这些函数的原型说明。

使用特权

评论回复
10
coolie2009|  楼主 | 2011-7-19 18:29 | 只看该作者
建议你查查IAR的手册,看看调用这些函数需要包含哪些头文件,或自己到IAR的头文件目录中搜索一下,看看哪个头文件中有这些函数的原型说明。
香水城 发表于 2011-7-19 18:24


头文件 time.h已经包含了。。。

不过里面定义在一个宏判断之内:

#if !defined(_NO_DEFINITIONS_IN_HEADER_FILES) && !__AEABI_PORTABILITY_INTERNAL_LEVEL

使用特权

评论回复
11
coolie2009|  楼主 | 2011-7-19 18:32 | 只看该作者
不好意思,找到原因了,原来项目里还有另外一个“time.h”的文件。怎么能让编译器知道我是要include哪个呢? 用绝对路径吗?

另外一个存在于一个开源系统中,也不好去改它的名字。

使用特权

评论回复
12
dlyltm| | 2011-7-22 16:25 | 只看该作者
请问楼主,IAR 6.2的和谐文件有吗?能否发一个给我:hnltm@126.com

使用特权

评论回复
13
afanti| | 2011-7-22 16:50 | 只看该作者
上官兄,请教一下,我用你在5楼的方法,生成hex的文件在用Flash Loader烧写时,出现了:address not allowed,转换成bin文件也是类似的情况,这是为何?那个地方不对了?谢谢兄长~~~

使用特权

评论回复
14
afanti| | 2011-7-23 08:39 | 只看该作者
我又查了一下,生成的Hex文件的第一行如下:
:1000000018040020E5040000570400005904000013

表明代码地址是从0x0000开始的,这样不对啊!!!!

使用特权

评论回复
15
kingsabbit| | 2014-11-12 23:14 | 只看该作者
建议这么做:

把core_cm3.h里面这句给注释掉,然后加上一句
#if defined (__ICCARM__)
//#include <intrinsics.h>                     /* IAR Intrinsics   */
__intrinsic void __DSB(void);
#endif
完全没有任何警告和错误。

使用特权

评论回复
16
jackwmj1| | 2015-5-6 23:57 | 只看该作者
kingsabbit 发表于 2014-11-12 23:14
建议这么做:

把core_cm3.h里面这句给注释掉,然后加上一句

十五楼帮了大忙:lol

使用特权

评论回复
17
kingsabbit| | 2015-7-16 23:32 | 只看该作者
jackwmj1 发表于 2015-5-6 23:57
十五楼帮了大忙

这个是试过才知道的

使用特权

评论回复
18
lijunyu2005| | 2015-9-19 16:47 | 只看该作者
感谢一下15楼

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

39

帖子

1

粉丝