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

My threads don't appear on Keil uVision's RTOS watch

I'm using Keil uvision with RTX5 RTOS and for some reason I can't see the threads I'm creating in the RTOS watch... I can only see the built in rtx idle thread and timer thread...

I've tested my threads callbacks with BP and it seems that my application does indeed jumps to those threads meaning they're do exist!

any idea?

Parents
  • The two default RTOS threads are created by osKernelStart(). Your threads are not running, and perhaps never did, unless your stack size definition is truly tiny? (The default stack for threads is 3072 bytes.) If the threads were started then the max usage shown in the RTOS view would be higher. I suspect that the call to osKernelInitialize() effectively destroys your threads.

    The mbed documentation I've read says that main() is a thread, in which case you wouldn't need to call the osKernel* functions (it's already running). Either way, I'm not sure that you can guarantee that the RTOS is initialized before your threads are constructed at global scope.  

Reply
  • The two default RTOS threads are created by osKernelStart(). Your threads are not running, and perhaps never did, unless your stack size definition is truly tiny? (The default stack for threads is 3072 bytes.) If the threads were started then the max usage shown in the RTOS view would be higher. I suspect that the call to osKernelInitialize() effectively destroys your threads.

    The mbed documentation I've read says that main() is a thread, in which case you wouldn't need to call the osKernel* functions (it's already running). Either way, I'm not sure that you can guarantee that the RTOS is initialized before your threads are constructed at global scope.  

Children