Ashish:
I finally found out why I had undefined symbols when I tried your suggestion to put EMACSnow.c and EMACSnow.h in my project. For some reason, we had set up "ccs" as a globally defined preprocessor symbol.
Here is what you get:
Description Resource Path Location Type
#20 identifier "tEMACWakeUpFrameFilter" is undefined .ccsproject /SAB_BSP line 1008, external location: C:\ti\tirtos_tivac_2_00_01_23\products\TivaWare_C_Series-2.1.0.12573c\driverlib\emac.h C/C++ Problem
Description Resource Path Location Type
#66 expected a ";" .ccsproject /SAB_BSP line 864, external location: C:\ti\tirtos_tivac_2_00_01_23\products\TivaWare_C_Series-2.1.0.12573c\driverlib\emac.h C/C++ Problem
Description Resource Path Location Type
#80 expected a type specifier .ccsproject /SAB_BSP line 864, external location: C:\ti\tirtos_tivac_2_00_01_23\products\TivaWare_C_Series-2.1.0.12573c\driverlib\emac.h C/C++ Problem
This comes comes from this definition:
//
//! Determines the byte offset within the frame at which the filter starts
//! examining bytes. The minimum value for each offset is 12. The first
//! byte of a frame is offset 0.
//
uint8_t pui8Offset[4];
//
//! The CRC16 value that is expected for each filter if it passes. The
//! CRC is calculated using all bytes indicated by the filter's mask.
//
uint16_t pui16CRC[4];
}
#if defined(ccs) || \
defined(codered) || \
defined(gcc) || \
defined(rvmdk) || \
defined(__ARMCC_VERSION) || \
defined(sourcerygxx)
__attribute__ ((packed)) tEMACWakeUpFrameFilter;
#else
tEMACWakeUpFrameFilter;
#endif
Obviously the compiler is different between building the driver library from the command line and building in the IDE. Not sure why defining that we are working under CCS would cause the compiler to barf on "__attribute__ ((packed))", but it does. So, do not do that!
Ray