注册 登录
查看: 2049|回复: 13

[其他] IAR 编译错误解决方法

[复制链接]
发表于 2013-8-28 00:24:45 | 显示全部楼层 |阅读模式
本帖最后由 问题少女 于 2013-9-12 17:53 编辑

学 k60 ,遇到不少问题,记一下

IAR编译时提示这样的错误:
Error[Pe147]: declaration is incompatible with "__interwork __softfp void rtc_set_alarm(uint32)" (declared at line 26 of ……

解决方法:函数的声明 和 定义不一样,导致冲突。改成一致即可。


提示警告:
Warning[Pe068]: integer conversion resulted in a change of sign
原因是 我的代码里有 0xFF << 8 , 0xFF  估计在 IAR 里是 有符号类型来存储,导致编译提示警告
解决方法:改成  0xFFu << 8 ,多加了个 u 表示 unsigned ,即无符号类型。这样就没警告了


回复

使用道具 举报

发表于 2013-8-28 13:14:21 | 显示全部楼层
这东西,习惯百度解决
回复 支持 反对

使用道具 举报

发表于 2013-8-28 15:00:38 | 显示全部楼层
比妹子还漂亮,赞一个
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-29 15:04:51 | 显示全部楼层
修改山外哥的代码后,编译出错

IAR编译时提示这样的错误:
Warning[Pe223]: function "dac_once_init" declared implicitly ……main.c 32

我发现 我有在 头文件里加入了声明了,声明类型与定义也一直,就是编译出错。
最后发现,是 没把头文件 #include 到 main 函数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-29 22:39:52 | 显示全部楼层
Error[Pe101]: "ptxn" has already been declared in the current scope (at line 30) ……35

定义一个局部变量,结果 形参里也有一个重名的变量,导致编译出错,改过即可
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 11:13:47 | 显示全部楼层
Error[Pe141]: unnamed prototyped parameters not allowed when body is present …… 25

晕倒,函数形参,漏了写 形参名
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-30 17:16:56 | 显示全部楼层
本帖最后由 问题少女 于 2013-9-17 22:24 编辑

o(︶︿︶)o 唉,问题真多


Warning[Pa050]: non-native end of line sequence detected (this diagnostic is only issued once) …… 40

这问题,真难发现,一行代码,在IAR 上看上去是 空格,实际上 其他乱码的符号(不显示的字符)。用 UEStudio 看,发现 字符 是 0x0D 和 0x0A ,而不是 空格 0x20 。
把那行的多余的空格删掉,才发现这问题。已经编译没错了

======
2013.09.17 补:
晕倒,做山外哥 SD 卡例程的时候,复制 :
#define BUFF_SIZE   100
又出现上面这经过,删掉 100 后面的 所谓 空格即解决。



回复 支持 反对

使用道具 举报

发表于 2013-9-11 20:13:23 | 显示全部楼层
iar移植后,下载程序提示stack pointer is setup to incorrect alignment.stack addr=0xAAAAA,不知道如何修改icf文件
回复 支持 反对

使用道具 举报

发表于 2013-9-11 20:13:52 | 显示全部楼层
望高手指教
回复 支持 反对

使用道具 举报

发表于 2013-9-12 13:10:06 | 显示全部楼层
我的天空 发表于 2013-9-11 20:13
iar移植后,下载程序提示stack pointer is setup to incorrect alignment.stack addr=0xAAAAA,不知道如何修 ...

用什么样的 芯片 ,就选择 对应的 icf 文件即可。
不过出现 stack addr=0xAAAAA ,是中断向量表里没配置好吗?
可以试试 rebuild 工程看看。

我们没出现过这问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-8 00:39:21 | 显示全部楼层
艹,再出现杯具的情况

编译器 提示 :Error[Pe077]: this declaration has no storage class or type specifier

原因是,头文件 的包含顺序导致 有个 宏定义 没在前面定义好,从而导致 编译器提示 这个 宏定义 不属于任何 结构体 和 类型。

解决方法 当然是调整 头文件 的顺序,使得 这个宏定义 在调用前已经声明好
回复 支持 反对

使用道具 举报

发表于 2013-11-4 14:27:29 | 显示全部楼层
山外メ雲ジ 发表于 2013-9-12 13:10
用什么样的 芯片 ,就选择 对应的 icf 文件即可。
不过出现 stack addr=0xAAAAA ,是中断向量表里没配置 ...

谢啦,用IAR问题太多,又用回KEIL了
回复 支持 反对

使用道具 举报

发表于 2013-11-18 12:35:08 | 显示全部楼层
我也来发一个吧:

Error[Pe159]: declaration is incompatible with previous "abs_diff" (declared at line 78)


这个函数在前面调用,在后面定义,导致出错。
在前面声明一下即可

回复 支持 反对

使用道具 举报

发表于 2013-11-18 13:20:20 | 显示全部楼层
还是很不错的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部