在IAR下对两个工程合并,编译出现未知错误。。


我是嵌入式刚开学的新手
在我们嵌入式课程上面,我们通过IAR对NXP LPC2478进行开发和编译学习。。
课程中收到了一些实验例程,其中就包括LCD 和 SD卡读取的相关例子。。
在学习中,我希望把SD卡读写和LCD显示整合在一起,能实现读取SD卡中数据显示在LCD屏幕的功能。。

在两个工程合并中,我用LCD的例子为基础,依次添加SD卡中相关的.c文件和.h文件。。。在添加SD卡的例子过程中,出现的未知错误,添加mmc.c的时候编译出错,出错提示如下

   
  Error[Pa055]: expected a type attribute C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734
  

Error[Pe079]: expected a type specifier C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734

Error[Pe040]: expected an identifier C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734

Error[Pe168]: a function type is not allowed here C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 2734

Error[Pe147]: declaration is incompatible with "union <unnamed> volatile _A_<error>" (declared at line 4079) C:\Program Files\IAR Systems\Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h 4080

等这几类错误,一共一百多个错误,查找的源头是

Embedded Workbench 5.4 Evaluation\arm\inc\NXP\iolpc2460.h
在添加各个.c时编译时没有问题的,但是在main函数 #include “mmc.h” 时 就是会出现错误。
我在整合时看到,SD卡的例子用的头文件时 而 LCD则用的是另外的头文件“LPC23XX.h”,“LPC2468.h”

所以在此希望高人能帮助下我,谢谢。。

嵌入式

hyuna 11 years, 5 months ago

猜测是重复定义造成的。
把头文件都统一成一个试试,根据芯片型号看看用哪个头文件合适,都统一成一个。

chen226 answered 11 years, 5 months ago

Your Answer