anonymous wrote on Tuesday, April 24, 2012:
Im using the Cortex M3 port of freeRTOS (specifically the lpc1763) and using Rowley Crossworks.
Ive been diving into the interrupt priorities of my application lately to be sure I understand everything is running as i intend. Following the code around for a while and I ran into the following lines:
portBASE_TYPE xPortStartScheduler( void )
/* Make PendSV, CallSV and SysTick the same priroity as the kernel. */
*(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI;
*(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI;
1) The register is defined as portNVIC_SYSPRI2, but the register its pointing to is the 3rd system priority handler, so the name is perhaps a bit misleading. Not really my main question though….just an observation.
2) In the comment it says the CallSV priority is set, but I dont see where that instruction happens, in fact… in my program memory it is currently 0. Could this negatively affect my application? I saw a note on another post that CallSV is only used to start the scheduler, so maybe this is ok?