This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

os_idle_demon Underflow on LPC3250

I am developing with uVision 4.0 for LPC3250 target on Windows XP. The platform is the Phycore phy3250 board. I have compiled and successfully executed code from Keil's RTX_Blinky example and Phycore's uart_example. Although the latter was tested with uVision 3.0, the project file was converted to 4.0 format by the IDE automatically. Since Keil did not have an example that used a UART (and other reasons), I integrated RTX_Blinky functionality with the uart_example project from Phycore. However, when I pull up the OS Support->RTX Kernel window, only the os_idle_demon task shows up with stack usage of "Underflow." The program works fine as I added ADC functionality with serial output twice per second. Any ideas?

  • The RTX_Blinky example from Keil and the uart_example from Phycore use different startup code. I knew that, of course, but as I studied the differences closer, I noticed that the startup code in RTX_Blinky enters the User Mode before calling main, while the uart_example startup code enters the Supervisor Mode before calling the C entry point. When I re-ordered the stack pointer setup sequence in the uart_example startup code to set the system stack last, then the Active Tasks window shows the correct tasks and the correct stack load for each.

  • That was just part of the problem, apparently, because it happened again. Then, I realized that if you select Debug->OS Support->RTX Kernel before you stop the Debug session, you will get the same results without any of the other tasks showing up. However, if you select that same window while the program is stopped (or close it and then reopen it), all of the tasks will show up along with os_idle_demon showing 0%, which is what it should show with an empty loop.