Quality RTOS & Embedded Software

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


FreeRTOS Interrupt with Arduino Due Cortex-M3

Posted by Enayat on March 18, 2013
I want to learn about how to implement interrupt in freeRTOS. I am using the Arduino Due SAM3X8E Cortex-M3 microcontroller. Have somebody used an interrupt in freeRTOS which you could share with me. Is there any guide of how to implement interrupt in freeRTOS. I have read alot in the freeRTOS website but I have not found any guide.

RE: FreeRTOS Interrupt with Arduino Due Cortex-M3

Posted by Richard on March 18, 2013
Writing FreeRTOS aware interrupts on a Cortex-M chip is actually very simple as, unlike when doing the same on their ARM7 predecessors, there are not special requirements other than ensuring you have the priorities set correctly. Basically, just write a standard C function and install it in the vector table.

See the "Interrupt Service Routines" section of the following page. Most (if not all) official demos have examples included too.


The important bits:

1) If an interrupt is going to use a FreeRTOS API function then, as with all the FreeRTOS ports, only the API functions that end in FromISR can be used (see the last bullet point at the top of the following page for the rationale: http://www.freertos.org/Embedded-RTOS-Queues.html).

2) FreeRTOS Cortex-M ports implement a full interrupt nesting model, the behaviour of which is configured using two FreeRTOSConfig.h constants: configMAX_SYSCALL_INTERRUPT_PRIORITY and configKERNEL_INTERRUPT_PRIORITY. Interrupt safe FreeRTOS functions can only be called from interrupts that have a priority at or below that set by configMAX_SYSCALL_INTERRUPT_PRIORITY (if CMSIS priority functions are being used then configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY).

See http://www.freertos.org/RTOS-Cortex-M3-M4.html for the full explanation.


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

Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.

Free TCP/IP and file system demos for the RTOS

Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑

FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

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

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

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

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists