Reply by Tim Wescott 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
Reply by janii June 25, 20132013-06-25
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