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] [January 2013 Threads] Crash when 3 tasks have different prioritiesPosted by Gary Austin on January 22, 2013 I am new to FreeRTOS and have been learning using the debug demo project included in Dave Lyneham's rtos.zip which was referenced in the x86 write up (http://www.freertos.org/portternee.html).
In main() I created 3 tasks, Each task does a forever loop incrementing a counter variable and then SLEEP_MS(1000). This code works if the 3 tasks have the same priority. But when I change each task's priority (for example task 1 has priority 1, task 2 has priority 0, and task 3 has priority 2) then the application crashes when vTaskStartScheduler is called.
freertosconfig.h has #define configUSE_PREEMPTION0 The controller board is Tern's B engine with 512 MB SDRAM. Paradigm C++ V7.00.0054, Tern Edition is the development tool. The memory model is large.
I would prefer to use preemption but it crashes even when the priorities are identical. Is there something I have to do in addition to the freertosconfig.h #define change?
Thanks
RE: Crash when 3 tasks have different prioritiesPosted by Richard on January 22, 2013 Hmm. That is very old code, not an official zip file (provided by Dave), and probably uses a very old version of FreeRTOS. I'm afraid there is not much help I can provide in this case.
If you are looking to learn and experiment with FreeRTOS in a convenient environment then you could try using the MSVC project with the Win32 simulator demos, or the Keil simulator demo.
http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html http://www.freertos.org/simple-freertos-demos.html
Regards.
RE: Crash when 3 tasks have different prioritiesPosted by Gary Austin on January 27, 2013 Thanks Richard.
I have switched to the demo project WizNET_DEMO_TERN_186 for the Tern B Engine 186. I have still encountered task / priority issues with this demo (I am using the Paradigm C/C++ IDE version 7.00 for Tern).
Since I did not have all of the hardware used in this project I commented out the serial and http task creates. I also modified 186.cfg (changed the amount of RAM from 128 to 512, the rdonly map from 0x0800 to 0x7ffff to 0x2c000 to 0x7ffff and the CODE_START from 0x0800 to 0x2c000) and freertosconfig.h (config_USE_IDLE_HOOK from 1 to 0 configCPU_CLOCK_HZ from 80000000 to 40000000).
After downloading the application I set breakpoints inside the various forever loops that are in the created tasks. When I executed the code none of the breakpoints were hit. I did this because an earlier debug session with a breakpoint in the prvCheckTask function in main.c showed that no other task was running so I thought I could confirm this by breakpoints in the forever loops.
What could be causing the lack of task execution other than prvCheckTask (I even changed its priority from tskIDLE_PRIORITY + 4 to tskIDLE_PRIORITY + 2)?
Thanjs for your help.
Best regards,
Gary
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|