он универсальный вот этот код процессор делает автоматически если разместить
по 0x18 тот операнд, который Вы хотите
void (*interrupt_function)();
unsigned int vector;
vector = VICVectAddr; // Get interrupt vector.
interrupt_function = (void(*)())vector;
(*interrupt_function)(); // Call vectored interrupt function.
а asm исходник будет выглядеть так примерно
только не пытайсеь засунуть его в IAR - этот код из ADS 1.2
но логика я думаю понятна. Можно переделать под IAR
AREA Vect, CODE, READONLY
ENTRY
LDR PC, Reset_Addr
LDR PC, Undefined_Addr
LDR PC, SWI_Addr
LDR PC, Prefetch_Addr
LDR PC, Abort_Addr
NOP ; Reserved vector
LDR PC, [PC,#-0xFF0]
LDR PC, FIQ_Addr
IMPORT Reset_Handler ; In Crt0.s
Reset_Addr DCD Reset_Handler
Undefined_Addr DCD Undefined_Handler
SWI_Addr DCD SWI_Handler
Prefetch_Addr DCD Prefetch_Handler
Abort_Addr DCD Abort_Handler
FIQ_Addr DCD FIQ_Handler
; ************************
; Exception Handlers
; ************************
; The following dummy handlers do not do anything useful in this example.
; They are set up here for completeness.
Undefined_Handler
B Undefined_Handler
SWI_Handler
B SWI_Handler
Prefetch_Handler
B Prefetch_Handler
Abort_Handler
B Abort_Handler
FIQ_Handler
B FIQ_Handler
END
-
- Ответ: dmyl(343 знак., 08.09.2005 17:38,
)
- Ответ: dmyl(343 знак., 08.09.2005 17:38,