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 SAM3U in CrossStudio

Posted by Danny Haak on September 6, 2011
I try to get FreeRTOS running on a SAM3U(-EK devkit) in Rowley CrossStudio. While creating tasks goes fine, they do not seem to be executed.

What I did:
- Generate a CrossStudio project for the SAM3U-EK devkit (which includes Rowley start-up and configuration assembly files)
- Include FreeRTOS .c and .h file - take the config file from the SAM3U example project for IAR
- Copy simple task from demo
- Include lowlevel*.c/.h files from AT91LIB - including serveral drivers

It compiles fine. but when I put a breakpoint inside the task, it never gets executed.

My main.c:
// general includes
#include
#include
#include

// includes for FreeRTOS
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "semphr.h"

int i;



void vATaskFunction( void *pvParameters );

int main()

{
i = xTaskCreate( vATaskFunction, "test", 200, NULL, tskIDLE_PRIORITY, NULL );
vTaskStartScheduler();

for ( ;; );

}



void vATaskFunction( void *pvParameters )
{
for( ;; )
{
int j = 0;
i = i +5;
vTaskDelay(250 / portTICK_RATE_MS);
}
}


I guess something goes wrong with interrupts to execute ticks - but I'm lost where to fix this. Any help is really appreciated.

RE: FreeRTOS on Atmel SAM3U in CrossStudio

Posted by Richard on September 6, 2011
If you step through the call to vTaskStartScheduler() you will find the answer to why the scheduler is not starting.

My (almost certain) guess is that you have not populated the interrupt vector table with the interrupts required by FreeRTOS. That means, you will get to the call to the SVC assembler instruction in vPortStartFirstTask() that is used to start the kernel, then just jump to the default SVC handler instead of the FreeRTOS SVC handler.

If this is the case then, then install xPortSysTickHandler, vPortSVCHandler, xPortPendSVHandler and xPortSysTickHandler in the appropriate places in the vector table. Or, if the vector table is using CMSIS function names for the handlers, add the following lines to FreeRTOSConfig.h:


#define vPortSVCHandler SVC_Handler
#define xPortPendSVHandler PendSV_Handler
#define vPortSVCHandler SVC_Handler
#define xPortSysTickHandler SysTick_Handler

regards.

RE: FreeRTOS on Atmel SAM3U in CrossStudio

Posted by Danny Haak on October 11, 2011
This did the trick - thank you.


[ 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