MDK-ARM Keil, MDK-ARM Datasheet - Page 38
![KIT REALVIEW MCU DEVELOPMENT](/photos/9/32/93274/mdk-arm_sml.jpg)
MDK-ARM
Manufacturer Part Number
MDK-ARM
Description
KIT REALVIEW MCU DEVELOPMENT
Manufacturer
Keil
Type
Compiler and IDEr
Specifications of MDK-ARM
For Use With/related Products
ARM MCUs
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
- Current page: 38 of 156
- Download datasheet (3Mb)
38
Chapter 2. Developing With an RTOS
Semaphore Caveats
Semaphores are an extremely useful feature of any RTOS. However,
semaphores can be misused. You must always remember that the number of
tokens in a semaphore is not fixed. During the runtime of a program, semaphore
tokens may be created and destroyed. Sometimes this is useful, but if your code
depends on having a fixed number of tokens available to a semaphore, you must
be very careful to return tokens always back to it. You should also rule out the
possibility of creating additional new tokens.
Mutex
Mutex stands for “Mutual Exclusion”. A Mutex is a specialized version of a
semaphore. Like a semaphore, a Mutex is a container for tokens. The difference
is that a Mutex is initialized with one token. Additional Mutex tokens cannot be
created by tasks. The main use of a Mutex is to control access to a chip resource
such as a peripheral. For this reason, a Mutex token is binary and bounded.
Apart from this, it really works in the same way as a semaphore. First, we must
declare the Mutex container and initialize the Mutex:
os_mut_init (OS_ID mutex);
Then any task needing to access the peripheral must first acquire the Mutex
token:
os_mut_wait (OS_ID mutex, U16 timeout);
Finally, when we are finished with the peripheral, the Mutex must be released:
os_mut_release (OS_ID mutex);
Mutex use is much more rigid than semaphore use, but is a much safer
mechanism when controlling absolute access to underlying chip registers.
Exercise: Mutex
This exercise uses a Mutex to control access to the microcontroller UART.
Related parts for MDK-ARM
Image
Part Number
Description
Manufacturer
Datasheet
Request
R
![MDK-ARM-B](/photos/28/43/284363/mdk-arm-basic_tmb.jpg)
Part Number:
Description:
KIT REALVIEW MCU DEVELOPMENT
Manufacturer:
Keil
Datasheet:
![MDK-ARM-B-SM](/photos/15/87/158780/keil_software_tmb.jpg)
Part Number:
Description:
Development Software SUPPORT EXTENSION FOR MDK-ARM-B
Manufacturer:
Keil Software
![MDK-ARM-SM](/photos/15/87/158780/keil_software_tmb.jpg)
Part Number:
Description:
Development Software SUPPORT EXTENSION FOR MDK-ARM
Manufacturer:
Keil Software
![MDK-ARM-BASIC](/photos/28/43/284363/mdk-arm-basic_tmb.jpg)
Part Number:
Description:
KIT REALVIEW MCU DEVELOPMENT
Manufacturer:
Keil
Datasheet:
![MDK-ARM-UF](/photos/15/87/158780/keil_software_tmb.jpg)
Part Number:
Description:
Development Software MCU DEV KIT FOR ARM UPG TO FLOATING LIC
Manufacturer:
Keil Tools
![MDK-ARM-F](/photos/15/87/158780/keil_software_tmb.jpg)
Part Number:
Description:
Development Software MCU DEV KIT FOR ARM W/ FLOATING LICENSE
Manufacturer:
Keil Software
![MDK-ARM3.1](/photos/26/86/268691/landingpagekeilrealviewarmkit_tmb.jpg)
Part Number:
Description:
Development Software MCU DEV KIT FOR ARM uVISION & C++ & RTX
Manufacturer:
Keil Tools
![MDK-ARM-SMB](/images/no-image3.png)
Part Number:
Description:
Development Software SUPP LICENSE RENEWAL 90+ DAYS NO TECH SUP
Manufacturer:
Keil Software
![KEIL-PK51-INTL](/images/manufacturer_photos/0/6/609/silicon_laboratories_inc_tmb.jpg)
Part Number:
Description:
KEIL C-COMPILER INTERNATIONAL
Manufacturer:
Silicon Laboratories Inc
![OM10045](/photos/9/21/92162/om10045_tmb.jpg)
Part Number:
Description:
BOARD EVAL FOR LPC213X ARM MCU
Manufacturer:
NXP Semiconductors
Datasheet:
![TWR-K60N512-KEIL](/images/manufacturer_photos/0/2/262/freescale_semiconductor_tmb.jpg)
Part Number:
Description:
K60N512 Keil Tower Kit
Manufacturer:
Freescale Semiconductor
Datasheet: