keil或IAR出现错误declaration is incompatible

错误来源

.\ECAT\inc\STM32appl.h(38): error: #147: declaration is incompatible with "unsigned shortnPdInputSize" (declared at line 396 of ".\ECAT\inc\ecatslv.h")

  extern UINT16 nPdInputSize;

.\ECAT\inc\STM32appl.h(39): error: #147: declaration is incompatible with "unsigned short nPdOutputSize" (declaredat line 398 of ".\ECAT\inc\ecatslv.h")

翻译:声明是不相容的

描述:在函数还没有声明之前就已经使用了.多出现在两种情况:第一种,函数体还没有写,就已经用到了它,这种情况多出现在写一个程序的大体结构中,只是简单写一下框架.第二种情况比较常见,函数a调用函数b,但函数b的函数体在函数a的下面:
void a(void) //函数a的实体
{
       b(); //调用函数b
}

void b(void) //函数b的实体
{
}
这样如果点编译,就会产生

我已经依据此方法解决该问题。。。

但是在st官方的解决方法中,不是这样的。

core_cm3.h文件太老了,2009年的,与新版本的IAR6.3不兼容,IAR 6.3用的是2011年的,使用IAR自带的就行了
1,把老的core_cm3.h去掉,删除,或者改成core_cm3.h.old。
2,Project ->Options -> General Options -> Library Configuration -> Use CMSIS,右下角的选项中选择 use CMSIS

具体内容在网址

http://www.emcu.it/ARM_Compiler/IAR/IAR_tips_and_tricks.html

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
KeilIAR是两个常用的ARM嵌入式开发工具。下面将分别介绍KeilIAR的编译环境及项目搭建方法。 一、Keil编译环境及项目搭建 1. 安装Keil软件:从官网下载Keil软件并安装,安装过程中需要输入许可证文件。 2. 创建工程:在Keil中选择“File”->“New”->“Project”创建一个新的工程,选择好芯片类型和工程存储位置。 3. 添加源文件:在新建的工程中添加需要的源文件,可以在“Project”->“Add Existing Source Files”中添加。 4. 配置工程属性:在“Project”->“Options for Target”中配置工程属性,包括芯片类型、编译器类型、输出路径等。 5. 编译工程:在Keil中选择“Project”->“Build Target”编译工程,编译成功后会生成.hex或.bin文件。 二、IAR编译环境及项目搭建 1. 安装IAR软件:从官网下载IAR软件并安装,安装过程中需要输入许可证文件。 2. 创建工程:在IAR中选择“File”->“New”->“Project”创建一个新的工程,选择好芯片类型和工程存储位置。 3. 添加源文件:在新建的工程中添加需要的源文件,可以在“Project”->“Add Files”中添加。 4. 配置工程属性:在“Project”->“Options”中配置工程属性,包括芯片类型、编译器类型、输出路径等。 5. 编译工程:在IAR中选择“Project”->“Make”编译工程,编译成功后会生成.hex或.bin文件。 以上是KeilIAR的编译环境及项目搭建方法,希望对大家有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值