Hi
I am currently working on porting FreeRTOS to AT91SAm7A1 processor.
While navigating the code I found that vPortYieldProcessor is defined as SWI
and in boot.s I found that the SWI handler is pointing to vPortYieldProcessor
which makes an endless loop.
Am I right or there something that I can’t understand?
Salam
Hossam Alzomor
vPortYieldProcessor impelemntation
vPortYieldProcessor impelemntation
in portisr.c
/* ISR to handle manual context switches (from a call to taskYIELD()). */
void vPortYieldProcessor( void ) __attribute__((interrupt(”SWI”), naked));
and in boot.s
@ address 0x00000008 ldr pc, _swi /* SWI – _swi */
and
_swi: .word vPortYieldProcessor /* SWI */
/* ISR to handle manual context switches (from a call to taskYIELD()). */
void vPortYieldProcessor( void ) __attribute__((interrupt(”SWI”), naked));
and in boot.s
@ address 0x00000008 ldr pc, _swi /* SWI – _swi */
and
_swi: .word vPortYieldProcessor /* SWI */
vPortYieldProcessor impelemntation
I am sorry It seams that the interrupt vector is not copied correctly