Quality RTOS & Embedded Software

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


Loading

Porting Problem with FreeRTOS v7.0.2 on IAR

Posted by Kyle on December 1, 2011
Hello.
I work to port FreeRTOS(v.7.0.2) to STM32F103 with Standard peripheral library ver 3.5.0.
I read your post. I think you can slove my problem, so I send you this mail.
Please, would you help me... See below.

<>
MCU : STM32F103VB
Compiler : IAR Ver 6.21
FreeRTOS V7.0.2
Std peripheral library version V3.5.0

<< Problems>>
My problems is below - 2 problems.

1. Compile Error on porting FreeRTOS.
File => portasm.s (Line. 57)
Message => Error[2]:Failed to open #include

I don't know why. I did several actions, but didn't catch error.

2. The task is not work.
for 1st problems, I uncommented including sentense(eg. // #include )
Then, I defined words needed in portasm.s
=========================================================================
#ifndef configMAX_SYSCALL_INTERRUPT_PRIORITY
  #define configMAX_SYSCALL_INTERRUPT_PRIORITY  191 /* equivalent to 0xb0, or priority 11. */
#endif  
=========================================================================
Then, it disappeared error message. and I made task to print out Simple MESSAGE.
I made Task1 that print out simple Message, but that's not work.

See below.
* Main function ===========================================================
int main(void)
{
  SYSTickInit();
  AppGPIOInit();
  AppUARTInit();
  printf("%s", MESSAGE1);
 
  /* Create Task */
  xTaskCreate( Task1, "Task1", /*TASK_SIZE*/ 240 , NULL, 1, /*&task1*/ NULL);       
  /* Start the scheduler. */
  vTaskStartScheduler();
  
  return 0;
}
* Task Function ===========================================================
void Task1( void *pvParameters ){
  portTickType gpio_Time; 
  
  gpio_Time = xTaskGetTickCount();    
  printf("%s ", MESSAGE1);
  while(1)
  {    
    GPIOB->ODR ^= GPIO_Pin_6;
    vTaskDelayUntil( &gpio_Time, 1000 );     
  }
  
}
* SysTick intialization Function  =====================================================
void SYSTickInit(void)
{
  /* Setup SysTick Timer for 1 msec interrupts  */
  if (SysTick_Config(SystemCoreClock/1000))
  { 
    /* Capture error */ 
    while (1);
  }  
}

CF)
Other UART, GPIO functions OK. I checked.

RE: Porting Problem with FreeRTOS v7.0.2 on IAR

Posted by Richard on December 1, 2011
I don't think this can be classed as porting, it is just setting up a new project to use the existing IAR/Cortex-M3 port. You should be able to take an existing IAR/Cortex-M3 project and just re-target it to your chip, then you would have the project set up correctly already.

“1. Compile Error on porting FreeRTOS.
File => portasm.s (Line. 57)
Message => Error[2]:Failed to open #include


Just like the compiler, you need to set the include path for your assembler so it can find the file. In the project options, choose the assembler category, then the preprocessor tab, and add "$PROJ_DIR$\" (without the quotes) to the "Additional Include Directories" - assuming FreeRTOSConfig.h is in the same directory as your IAR project file.


“2. The task is not work.”


* SysTick intialization Function  =====================================================
void SYSTickInit(void)
{
/* Setup SysTick Timer for 1 msec interrupts */
if (SysTick_Config(SystemCoreClock/1000))
{
/* Capture error */
while (1);
}
}


Do you ever call this function? If so, please don't!. The kernel needs exclusive access to the SysTick (including the interrupt) and configures the SysTick when when the scheduler is started. I presume you have installed the correct SysTick interrupt handler for the kernel? Again, if not, look at existing projects.


int main(void)
{
SYSTickInit();
AppGPIOInit();
AppUARTInit();
printf("%s", MESSAGE1);

/* Create Task */
xTaskCreate( Task1, "Task1", /*TASK_SIZE*/ 240 , NULL, 1, /*&task1*/ NULL);
/* Start the scheduler. */
vTaskStartScheduler();

return 0;
}


Does the printf() call after the call to AppUARTInit() work?

Regards.

RE: Porting Problem with FreeRTOS v7.0.2 on IAR

Posted by Kyle on December 1, 2011
Hi. This compiled right after adding path. And... Second question I got a hint. Thank you for your advice.^^


[ 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