Ковыряю MeshBean ZigBee стек, который сейчас прибрал к рукам Atmel (честно скажу, этот стек имхо - УЖАСЕН!), проект сам по себе компилируется без ошибок, discovery options настроены через вызов цели discovery в мейкфайле. Проблема есть в одном месте - Eclipse не видит определения CS_NWK_ADDR_ID и схожих с ним: Symbol 'CS_NWK_ADDR_ID' could not be resolved. Привожу структуру исходников с этим определением. Файл configServer.h (подключается в том месте, где есть использование CS_NWK_ADDR_ID:
Код
typedef enum _CS_MemoryItemId_t
{
#define SEPARATOR(id)
#define DUMMY_MEMORY(id)
#define RAM_PARAMETER(id, addr) id,
#define FLASH_PARAMETER(id, addr)
#define MEMORY_REGION(id, addr)
#include "csParamTable.h"
#undef SEPARATOR
#undef DUMMY_MEMORY
#undef RAM_PARAMETER
#undef FLASH_PARAMETER
#undef MEMORY_REGION

  CS_FLASH_PARAMETERS_START_ID,
#define SEPARATOR(id)
#define DUMMY_MEMORY(id)
#define RAM_PARAMETER(id, addr)
#define FLASH_PARAMETER(id, addr) id,
#define MEMORY_REGION(id, addr)
#include "csParamTable.h"
#undef SEPARATOR
#undef DUMMY_MEMORY
#undef RAM_PARAMETER
#undef FLASH_PARAMETER
#undef MEMORY_REGION

#define SEPARATOR(id)
#define DUMMY_MEMORY(id) id,
#define RAM_PARAMETER(id, addr)
#define FLASH_PARAMETER(id, addr)
#define MEMORY_REGION(id, addr) id,
#include "csParamTable.h"
#undef SEPARATOR
#undef DUMMY_MEMORY
#undef RAM_PARAMETER
#undef FLASH_PARAMETER
#undef MEMORY_REGION

} CS_MemoryItemId_t;

Вот подключаемый в тело файл csParamTable.h:
Код
RAM_PARAMETER(CS_UID_ID, csPIB.macAttr.extAddr)
RAM_PARAMETER(CS_MAX_FRAME_TRANSMISSION_TIME_ID, csPIB.macAttr.maxFrameTransmissionTime)
RAM_PARAMETER(CS_MAC_TRANSACTION_TIME_ID, csSIB.csMacTransactionTime)
RAM_PARAMETER(CS_RF_TX_POWER_ID, csSIB.csRfTxPower)
RAM_PARAMETER(CS_MAX_NEIGHBOR_ROUTE_COST_ID, csNIB.maxNeighborRouteCost)
RAM_PARAMETER(CS_NWK_EXT_PANID_ID, csNIB.extendedPanId)
RAM_PARAMETER(CS_NWK_ADDR_ID, csNIB.networkAddress)
....

Суть сводится к тому, что по очереди id подставляются в enum тип сначала для всех RAM_PARAMETER, потом FLASH_PARAMETER и т.д.
То есть на выходе должны получить что-то типа:
Код
typedef enum _CS_MemoryItemId_t
{
  CS_UID_ID,
  CS_MAX_FRAME_TRANSMISSION_TIME_ID,
  CS_MAC_TRANSACTION_TIME_ID,
  CS_RF_TX_POWER_ID,
  CS_MAX_NEIGHBOR_ROUTE_COST_ID,
  CS_NWK_EXT_PANID_ID,
  [b]CS_NWK_ADDR_ID[/b],
  ...,
  CS_FLASH_PARAMETERS_START_ID,
  ...
} CS_MemoryItemId_t;

Можно ли Eclipse как-то заставить всё же видеть такое определение? Или подскажите, где ещё может быть причина.

UPD: rolleyes.gif Как всегда, чудеса случаются не там, где их ждёшь. Уж не знаю почему, но если делать Index - Rebuild (как я всегда делаю), то всё кроме этих определений в Eclipse распознаётся. А вот если после Index-Rebuild запустить Index - Freshen All Files, то также и эти определения распознаются laughing.gif А если снова запустить Index-Rebuild, то эти определения снова теряются в Eclipse sm.gif Мотайте на ус!
Тему можно закрывать.