FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [April 2013 Threads] freeRTOS and STM32f3Posted by Levan on April 8, 2013 Hello Everyone. For the third day trying to run freeRTOS on STM32F3 . Using IAR compiler. Like all good but during compilation writes only one mistake that I see and could not. Please start my project on your computer and tell me where the error? By the way the error is: portasm.o is not object or archive file HELP ME, Please :( https://www.dropbox.com/s/on3dksozqprvqr5/RealDron.rar
RE: freeRTOS and STM32f3Posted by Richard on April 8, 2013 “Error[Li005]: no definition for "vApplicationTickHook" [referenced from C:\temp\RealDron\RealDron\Debug\Obj\tasks.o] ” Presumably you have configUSE_TICK_HOOK set to 1 in FreeRTOSConfig.h, but have not provided the implementation of the tick hook function. Either set configUSE_TICK_HOOK to 0 or provide a function called vApplicationTickHook(). “Error[Li005]: no definition for "SystemInit" [referenced from C:\temp\RealDron\RealDron\Debug\Obj\startup_stm32f30x.o] ” Presumably your startup file is calling SystemInit(), but you don't have a function called SystemInit() in your application. “Error[Li005]: no definition for "vApplicationStackOverflowHook" [referenced from C:\temp\RealDron\RealDron\Debug\Obj\tasks.o] ” Presumably you have configCHECK_FOR_STACK_OVERFLOW set to a non-zero value and have not provided a definition of vApplicationStackOverflowHook(). Either set configCHECK_FOR_STACK_OVERFLOW to 0 or provide an implementation of vApplicationStackOverflowHook(). “Error[Li005]: no definition for "SystemCoreClock" [referenced from C:\temp\RealDron\RealDron\Debug\Obj\port.o] ” Etc. etc. “Error[Li005]: no definition for "vPortFree" [referenced from C:\temp\RealDron\RealDron\Debug\Obj\timers.o] Error[Li005]: no definition for "pvPortMalloc" [referenced from C:\temp\RealDron\RealDron\Debug\Obj\queue.o] ” You much have heap_1.c, heap_2.c, heap_3.c or heap_4.c in your project. “Error[Li005]: no definition for "vApplicationIdleHook" [referenced from C:\temp\RealDron\RealDron\Debug\Obj\tasks.o] ” Etc. Etc. http://www.freertos.org/Creating-a-new-FreeRTOS-project.html http://www.freertos.org/porting-a-freertos-demo-to-different-hardware.html Regards.
RE: freeRTOS and STM32f3Posted by Levan on April 9, 2013 Hi, richardbarry! Many thanks for your help! Fixed some bugs. But there were some, I do not understand what to do with them. I do not know what to do with SystemInit () to insert it and how to use it. Remove it is also impossible. What to do with SystemCoreClock and vApplicationMallocFailedHook (). If not hard to help me again. If you can not difficult to improve the project? I send a new project file. Thank you so much! https://www.dropbox.com/s/on3dksozqprvqr5/RealDron.rar
RE: freeRTOS and STM32f3Posted by Levan on April 9, 2013 Please explain why you need SystemCoreClock() and vApplicationMallocFailedHook (). And that means this: unable to allocate space for sections / blocks with a total estimated minimum size of 0x14d40 bytes in <[0x20000000-0x20009fff]> (total uncommitted space 0xa000). Thanx!
RE: freeRTOS and STM32f3Posted by Levan on April 9, 2013 That's it! OS started! But it is strange. Tasks are performed in one and the same time, that is, LED3 and LED8 blink in one and the same time. A LED5 generally always lit. What's the problem? I removed the initialization function Systeminit () #define configTOTAL_HEAP_SIZE( ( size_t ) ( 20 * 1024 ) ) #define configUSE_MALLOC_FAILED_HOOK0 #define configUSE_TIMERS0 #define configUSE_IDLE_HOOK1 #define configUSE_TICK_HOOK0
main.c void vTaskLED1(void *pvParameters) {
for (;;) { STM_EVAL_LEDOn(LED3); //GPIO_SetBits(GPIOF, GPIO_Pin_6); vTaskDelay(500); STM_EVAL_LEDOff(LED3); //GPIO_ResetBits(GPIOF, GPIO_Pin_6); vTaskDelay(500); }
}
void vTaskLED2(void *pvParameters) {
for (;;) { STM_EVAL_LEDOn(LED8); //GPIO_SetBits(GPIOF, GPIO_Pin_6); vTaskDelay(500); STM_EVAL_LEDOff(LED8); //GPIO_ResetBits(GPIOF, GPIO_Pin_6); vTaskDelay(500); }
}
void init_project (void) { STM_EVAL_LEDInit(LED3); STM_EVAL_LEDInit(LED8); STM_EVAL_LEDInit(LED5); }
void vApplicationIdleHook( void ) { STM_EVAL_LEDOn(LED5); }
int main (void) { init_project(); xTaskCreate( vTaskLED1, ( signed char * ) "LED1", configMINIMAL_STACK_SIZE, NULL, 2, ( xTaskHandle * ) NULL); xTaskCreate( vTaskLED2, ( signed char * ) "LED2", configMINIMAL_STACK_SIZE, NULL, 2, ( xTaskHandle * ) NULL); vTaskStartScheduler(); } My project https://www.dropbox.com/s/uymwbrk5b1gkfon/RealDron_WORKING%21.rar
RE: freeRTOS and STM32f3Posted by Richard Damon on April 9, 2013 Why wouldn't LED3 and 8 blink together? There should be plenty enough time in a tick to do both tasks, and they delay the same amounts. Change the delays so they are different and they will go out of sync.
For LED5, I just see a turn on, so why shouldn't it be on all the time. Since it is turning on in idle, and you should have lots of idle time since you don't have any CPU hungry tasks, it will be turned on real frequently.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|