Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT




Loading

Priority initialization

Posted by rafleury on 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;
}

Two questions:
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?

Thanks.

RE: Priority initialization

Posted by Richard on April 25, 2012
SVCall is only called to kick the scheduler off, so never called when the scheduler is actually running, so its priority is not set.

Regards.


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS