Reply by stephaneb June 25, 20132013-06-25
Why did you submit this question 4 times?  Did you run into a technical
issue of some sort on EmbeddedRelated?  If you did, please use the contact
form to report the issue: http://www.embeddedrelated.com/contact.php

Stephane	   
					
---------------------------------------		
Posted through http://www.EmbeddedRelated.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