Quality RTOS & Embedded Software

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


Loading

Interrupt during context switch

Posted by Nobody/Anonymous on September 12, 2006
Hi

I'm developing a small communication device with Atmel AVR ATMega 2560. I use as IAR C compiler as development tool.

In my application I have very strict timing restrictions during serial communication, so I need that USART interrupt have to be ALLWAYS active.

Unfortunately RTOS during context switch disable interrut. This cause in my application lost or Rxed bytes or many jitter on Txed bytes.

It's possible to keep interrupt active during context switch ?

Someone can help me and give me some directions about this issue ?

Thank you in advice

RE: Interrupt during context switch

Posted by Nobody/Anonymous on September 12, 2006
You can re-enable interrupts within an ISR once the context is saved provided that you keep a count of the interrupt nesting depth, and only restore a context once the nesting depth is zero again. You will have to disable interrupts again while you restore the context.

Consider other options first - like using FIFOs, organizing your ISR to trigger a high priority task to handle the data with interrupts enabled, etc.

RE: Interrupt during context switch

Posted by Nobody/Anonymous on September 12, 2006
If you are not using the isr to wake blocked tasks you can also speed things up by using a simple circular buffer instead of queues/semaphores. You still need to keep a count of the interrupt nesting depth but don't need to save and restore the context which will speed things up a lot. You can renable interrupt immediately after incrementing the nesting depth, then disable again immediately before decrementing the nesting depth.

RE: Interrupt during context switch

Posted by Nobody/Anonymous on September 12, 2006
The AVR port does not save the context until a switch is actually required. You can enable interrupts prior to this point provided the interrupt source is cleared first. Disable again for the switch.


[ 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