Quality RTOS & Embedded Software

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




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) 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