vPortYieldProcessor impelemntation

alzomor wrote on Thursday, April 08, 2010:

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

alzomor wrote on Thursday, April 08, 2010:

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 */

alzomor wrote on Thursday, April 08, 2010:

I am sorry It seams that the interrupt vector is not copied correctly