你好:
现在正在开发一个工程,是以前成熟的工程修改的,把以前的一些函数去掉了又编了一些程序进去,开发环境是CCS3.3,芯片是2812,出现的问题是:由于原来的工程主函数中除了包含<stdio.h>、"DSP281x_Device.h"等还包含了.c文件,此.c文件是用户编写的,我在网上了解这样编写不规范,我就在source文件夹下添加了.c文件,把主函数中的include .c去掉了,又把用户定义的头文件加到了这些.c文件中,但是出现了所有的特殊功能寄存器无定义的情况:
"XH_AD.c", line 32: error: identifier "EvaRegs" is undefined
"XH_AD.c", line 33: error: identifier "PieCtrlRegs" is undefined
"XH_AD.c", line 37: error: identifier "GpioDataRegs" is undefined
"XH_AD.c", line 118: error: identifier "EvaRegs" is undefined
"XH_AD.c", line 119: error: identifier "PieCtrlRegs" is undefined
5 errors detected in the compilation of "XH_AD.c".
等,而且每用到一次寄存器就会报一次错。device.h文件中包含了
#include "DSP281x_SysCtrl.h" // System Control/Power Modes
#include "DSP281x_DevEmu.h" // Device Emulation Registers
#include "DSP281x_Xintf.h" // External Interface Registers
#include "DSP281x_CpuTimers.h" // 32-bit CPU Timers
#include "DSP281x_PieCtrl.h" // PIE Control Registers
#include "DSP281x_PieVect.h" // PIE Vector Table
#include "DSP281x_Spi.h" // SPI Registers
#include "DSP281x_Sci.h" // SCI Registers
#include "DSP281x_Mcbsp.h" // McBSP Registers
#include "DSP281x_ECan.h" // Enhanced eCAN Registers
#include "DSP281x_Gpio.h" // General Purpose I/O Registers
#include "DSP281x_Ev.h" // Event Manager Registers
#include "DSP281x_Adc.h" // ADC Registers
#include "DSP281x_XIntrupt.h" // External Interrupts
#include "IQmathLib.h"
#include "DSP281x_DefaultIsr.h"
检查过应该没有错吧。。而且Ev.h文件中也有对EvaRegs等的extern定义,实在是不知道是为什么, 我也曾经尝试在.c文件中包含device.h文件,但是有500多个错误 说我的每一个变量重复定义:error: symbol _Ku_in is defined multiple times:
E:\Object_Workspace\DSP\XH_Tst_DSP_Pro\Pro_XH_Tst\Debug\Main_NonBIOS.obj and E:\Object_Workspace\DSP\XH_Tst_DSP_Pro\Pro_XH_Tst\Debug\XH_Calc.obj 等错误。。
总的来说,现在主函数中有include.c就没事,没有include.c就会出错,请帮忙解决一下,谢谢!!!!
