Our embedded target board is ARM7 based Microcontroller. We used Keil tools, which include Keil RTX-RTOS. /* Filename: RTX_lib.c */ static U32 nr_mutex; int _mutex_initialize (OS_ID *mutex) { /* Allocate and initialize a system mutex. */ if (nr_mutex >= OS_MUTEXCNT) { /* If you are here, you need to increase the number OS_MUTEXCNT. */ for (;;); } *mutex = &std_libmutex[nr_mutex++]; mutex_init (*mutex); return (1); } /* Filename: RTX_config.c */ // Standard library system mutexes // =============================== // Define max. number system mutexes that are used to protect // the arm standard runtime library. For microlib they are not used. #ifndef OS_MUTEXCNT #define OS_MUTEXCNT 17 #endif When I run from reset, I'm stuck in for(;;); line above. I hover on nr_mutex and value for nr_mutex is shown in the debugger as 0x80008000. How is this number getting assigned to nr_mutex? How to resolve this issue? Thank you! --------------------------------------- Posted through http://www.EmbeddedRelated.com
Should I really increase OS_MUTEXCNT to exit forever loop?
Started by ●June 25, 2013
Reply by ●June 25, 20132013-06-25
On Tue, 25 Jun 2013 15:52:26 -0500, janii wrote:> Our embedded target board is ARM7 based Microcontroller. We used Keil(oft-repeated message snipped) Why do you feel you have to post this over and over? Once is enough. Perhaps you don't realize that this is USENET, and that USENET has delays. Or maybe you didn't read the pop-up from embeddedrelated.com saying that your very first post will get moderated. At any rate, post once, then WAIT. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com