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




Loading

FreeRTOS on Atmel SAMB11

Posted by kev1 on June 28, 2016

Hello !

I'm quite new to FreeRTOS and I would like to use it on an Atmel SAMB11 SoC (arm cortex M0), and more precisely on an Samb11Xplained board. For now I used provided example for SAMD21 SoC.

My first question is the following: does FreeRTOS port depends on the SoC (e.g. SAMB11) or only the processor (arm cortex M0) ? My understanding leads me to the second one.

Next, what are the steps to adapt an example to my board ?

Currently, I'm able to compile FreeRTOS sources in my project. I've first created only one task, and after starting the scheduler, the task was processing correctly (even though I observed that it doesn't work if timer use is enabled in FreeRTOSConfig.h). I am now trying to create two tasks and check that they both process. The problem is that only one task is executed. I suspect an issue with the systick timer but I don't know how to fix it.

Thanks for your help !


FreeRTOS on Atmel SAMB11

Posted by rtel on June 28, 2016

My first question is the following: does FreeRTOS port depends on the SoC (e.g. SAMB11) or only the processor (arm cortex M0) ? My understanding leads me to the second one.

Then you are correct :o) FreeRTOS does not rely on anything outside of the Cortex-M core unless you are going to write a port specific low power tickless mode, in which case you need a clock source which is external to the core.

Next, what are the steps to adapt an example to my board ?

The following links might help:

http://www.freertos.org/Creating-a-new-FreeRTOS-project.html http://www.freertos.org/porting-a-freertos-demo-to-different-hardware.html

In your case adapting the SAMD20 demo might be your best option.

Currently, I'm able to compile FreeRTOS sources in my project. I've first created only one task, and after starting the scheduler, the task was processing correctly (even though I observed that it doesn't work if timer use is enabled in FreeRTOSConfig.h). I am now trying to create two tasks and check that they both process. The problem is that only one task is executed. I suspect an issue with the systick timer but I don't know how to fix it.

Have you installed the interrupt handlers? See the "special note for ARM Cortex-M users" in bullet point #1 on this page of the FAQ: http://www.freertos.org/FAQHelp.html


FreeRTOS on Atmel SAMB11

Posted by kev1 on June 28, 2016

Thank you for your fast answer !

In your case adapting the SAMD20 demo might be your best option.

Ok I will test this demo.

Have you installed the interrupt handlers? See the "special note for ARM Cortex-M users" in bullet point #1 on this page of the FAQ: http://www.freertos.org/FAQHelp.html

Effectively I have seen this point. I tried different configurations without any success for now. Maybe I misunderstood how to set correctly these interrupt handlers. Does the board clock configuration have an importance for FreeRTOS ? For example, basic code of SAMD20 in atmel studio have a specific function that configures the clock, but SAMB11 doesn't seem to have one.


FreeRTOS on Atmel SAMB11

Posted by kev1 on July 1, 2016

I finally get FreeRTOS working on the soc. I used atmel api which allows to register isr like this:

~~~ systemregisterisr(RAMISRTABLESYSTICKINDEX, (uint32t)xPortSysTickHandler); systemregisterisr(RAMISRTABLEPENDSVINDEX, (uint32t)xPortPendSVHandler); systemregisterisr(RAMISRTABLESVCINDEX, (uint32_t)vPortSVCHandler); ~~~

I initially thought it was already done somewhere, with SysTick_Handler handler... With that configuration, I am able to execute two simple tasks concurrently.

BUT, atmel bluetooth sdk states that SAMB11 soc includes a proprietary RTOS which supports multiple tasks: Idle task, firmware task responsible for bluetooth functionnality, and application task (user application). So I guess FreeRTOS is not really compatible with this soc...


[ 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