Quality RTOS & Embedded Software

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


Loading

Awake a task from a non-maskable interrupt

Posted by genarisimo23 on November 19, 2013

Hi,

I'm using a non maskable interrupts which priority is above configMAXSYSCALLINTERRUPT_PRIORITY parameter, since interrupt source can't be delayed by the kernel itself. My question is, how can awake or signal a task from a non maskable interrupt? I know that i can't use any Kernel API.

Thanks in advance


Awake a task from a non-maskable interrupt

Posted by richardbarry on November 19, 2013

You cannot do it safely by using any kernel mechanism, in case a lower priority interrupt or a task was already manipulating the kernel data structures.

You don't say which architecture you are using so I can't give any definitive suggestions, but it may be possible to pend a lower priority interrupt that is at or below configMAXSYSCALLINTERRUPT_PRIORITY, then perform the wake operation from there. The lower priority interrupt should execute after the NMI, before any task level code executes.

Regards.


Awake a task from a non-maskable interrupt

Posted by genarisimo23 on November 19, 2013

Thanks for your info Richard, i'm using Kinetis K20 based on Cortex-M4 architecture. The NMI interrupt is from a Timer and has "0" priority. How can i pend interrupt from Timer's ISR? This new interrupt is a software interrupt or from another peripheral?

Thanks


Awake a task from a non-maskable interrupt

Posted by edwards3 on November 19, 2013

All interrupts on Cortex chips can be pended in software. Look up the NVIC hardware manual on the ARM website. It is probably included in the Cortex M3 documentation. You are looking for a Set Pend register, and just need to set a bit in the register then write a handler for the interrupt. There is bound to be lots of interrupts you dont need and can use for this purpose.


Awake a task from a non-maskable interrupt

Posted by genarisimo23 on November 19, 2013

Lot of thanks MEdwards i'll take a look at Cortex M3 users manual.

Regards


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


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

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Meet Richard Barry and learn about running FreeRTOS on RISC-V at FOSDEM 2019

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


Careers

FreeRTOS and other embedded software careers at AWS.



FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Renesas

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

Xilinx Microblaze and Zynq partner