Crash when 3 tasks have different priorities

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_PREEMPTION 0
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

Crash when 3 tasks have different priorities

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.

Crash when 3 tasks have different priorities

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