Есть один важный момент. Забыл описать. Если камень новый, не запаяный в демобоарде, у него нет внутри IEEE адреса. У меня этот адрес сам иногда слетал при отладке. Если внутри камня нормального адреса нет - работы не будет. Я сильно в исходнике не разбирался, поставил заплатки. Причем это можно автоматизировать, но мне этого не было нужно. Что я делал в файле ZMain.c скачанного стека. Завел глобальные переменные
Код
//static unsigned char ieeeadnew1[8]={0x53,0x17,0x05,0x00,0x00,0x4b,0x12,0x00};//@@@@@
//static unsigned char ieeeadnew2[8]={0x94,0x17,0x05,0x00,0x00,0x4b,0x12,0x00};//@@@@@
и в функции "ZSEG int main( void )" добавил (моя строка отмечена //@@@@ в конце)
Код
// Initialize NV System
osal_nv_init( NULL );
//osal_nv_write( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &ieeeadnew );//@@@@@
// Determine the extended address
zmain_ext_addr();
и если вижу, что адрес слетел раскоментирую строку с соответствующим IEEEадресом и вызов функции записи этого адреса во флеш. Может моя заплатка наведет на мысль как сделать лучше. Я разбираться не хотел.