Цитата(asav @ Apr 26 2006, 07:22)

А ECOS (embedded Configurable OS) я приплел потому, что там используется сигвиновский компилятор, который дает другой ассемблерный код, чем IAR. Посему, в частности, для работы с IAP способ, описанный в мануале для LPC2294 с Philips'а, не работает. Пришлось писать на ASM'е и потом из C-шной проги вызывать процедуру обращения к IAP.
Там в мануале действительно отфонарно написано. Я сделал вызов по простому и на мой взгляд
переносимо:
Код
// IAP Structure
struct s_iap {
ulong cmd; // Command
ulong par[4]; // Parameters
ulong status;
ulong result;
}Iap;
// IAP Execute
static void iap_exec( struct s_iap *iap_struct );
//---------------------------------------------------------------------------
//
//---------------------------------------------------------------------------
__thumb void iap_exec( struct s_iap *iaps )
{
#define IAP_LOCATION 0x7FFFFFF1
((void(*)( ulong *, ulong *))IAP_LOCATION)( (ulong *)iaps, ((ulong*)iaps) + 5 );
//bprintf( "CMD=%08X params=%08X %08X %08X %08X\n ST=%08X result=%08X",
// iaps->cmd, iaps->par[0], iaps->par[1], iaps->par[2], iaps->par[3],
// iaps->status, iaps->result );
}