Цитата(GetSmart @ Jun 7 2006, 15:23)

Вызывать из прерываний IAP конечно можно. Однако.
я вот сечас думаю а чт опроизойдет после выполнения __enable_interrupt(); в функции flashWrite();?
прерывания должны разрешиться, а значит возможны вложенные прерывания
нет ли здесь какой заковырки?
Цитата(GetSmart @ Jun 7 2006, 15:23)

Цитата
typedef void (*IAP)(unsigned long *,unsigned long *);
IAP iap_entry =(IAP) IAP_LOCATION;
исправьте на
typedef void (__interwork *IAP)(unsigned long *,unsigned long *);
IAP iap_entry =(IAP) IAP_LOCATION;
а это точно нужно? у меня в general options IARа стоит generete interwork code
+ весь код у меня в режиме Trumb (тамже в general options - processor mode )
Цитата(GetSmart @ Jun 7 2006, 15:23)

Хотя прерывание не исправляйте. Чё-то у Вас оно как-то неуклюже написано. И лучше не напрягаться, а то долго объяснять мне придётся что к чему.
Почему-то нашёл только один вектор для таймера.
всмысле Interrupt.cpp
это один вектор на все прерывания - от уратов, таймеров, i2c
-------------------------добавлено
перенес функцию writeflash() из прерывания в main
и пререстало ресетить
что бы это занчило?