No tasks can be scheduled to running state

longingdxl wrote on Friday, December 20, 2013:


I’m face a problem while trying to startup LM3S811 on qemu.

I have build and run Demo:CORTEX_LM3S811_GCC on qemu, what modification I’ve made is just removing all existing tasks and then creating one task which will print message periodically. But after vTaskStartScheduler run, there is no any message printed out.

xTaskCreate( vAliveTask, “Alive”, configMINIMAL_STACK_SIZE, NULL, configMAX_PRIORITIES - 1, NULL );

218 static void vAliveTask( void *pvParameters )
219 {
220 OSRAMClear();
221 OSRAMStringDraw(“Start”, 0, 0);
223 while (1)
224 {
225 OSRAMClear();
226 OSRAMStringDraw(“ALIVE …”, 0, 0);
227 vTaskDelay( 2000 / portTICK_RATE_MS );
228 }
229 }

$ qemu-system-arm -machine lm3s811evb -kernel gcc/RTOSDemo.axf

I have debugged this issue by gdb and found that xPortPendSVHandler has never been called, this means no context switch occurred. So my question is: did I miss any configurations or are there any mistakes I’ve made?


rtel wrote on Friday, December 20, 2013:

I’m afraid we cannot provide direct support for code running in emulators - we have no idea if your code will run in the emulator or not, especially when you are attempting to use the OSRAM display.

In this case, as you ask a specific question, I can only provide the same answer as if you were running on a real Cortex-M device, and that would be to ask if you are sure you have actually installed the FreeRTOS interrupt service routines correctly. See the “Note for Cortex-M users” section of the first FAQ on this page: