Đang chuẩn bị liên kết để tải về tài liệu:
Real-Time Embedded Multithreading Using ThreadX and MIPS- P10
Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ
Tải xuống
Real-Time Embedded Multithreading Using ThreadX and MIPS- P10:Although the history of embedded systems is relatively short, 1 the advances and successes of this fi eld have been profound. Embedded systems are found in a vast array of applications such as consumer electronics, “ smart ” devices, communication equipment, automobiles, desktop computers, and medical equipment. | 182 Chapter 11 TX_SEMAPHORE my_semaphore UINT status Create a counting semaphore with an initial value of 1. This is typically the technique used to create a binary semaphore. Binary semaphores are used to provide protection over a common resource. status tx_semaphore_create my_semaphore my_semaphore_name 1 If status equals TX_SUCCESS my_semaphore is ready for use. Figure 11.4 Creating a counting semaphore TX_SEMAPHORE my_semaphore UINT status Delete counting semaphore. Assume that the counting semaphore has already been created. status tx_semaphore_delete my_semaphore If status equals TX_SUCCESS the counting semaphore has been deleted. Figure 11.5 Deleting a counting semaphore receive a TX_DELETED return status. Make certain that you don t try to use a deleted semaphore. Figure 11.5 shows how a counting semaphore can be deleted. If variable status contains the return value TX_SUCCESS we have successfully deleted the counting semaphore. 11.8 Getting an Instance of a Counting Semaphore The tx_semaphore_get service retrieves an instance a single count from the specified counting semaphore. If this call succeeds the semaphore count decreases by one. Figure 11.6 shows how to get an instance of a counting semaphore where we use the wait option value TX_WAIT_FOREVER. If variable status contains the return value TX_SUCCESS we have successfully obtained an instance of the counting semaphore called my_semaphore. on www.verypdf.com to remove this watermark. Event Notification and Synchronization with Counting Semaphores 183 TX_SEMAPHORE my_semaphore UINT status Get a semaphore instance from the semaphore my_semaphore. If the semaphore count is zero suspend until an instance becomes available. Note that this suspension is only possible from application threads. status tx_semaphore_get my_semaphore TX_WAIT_FOREVER If status equals TX_SUCCESS the thread has obtained an instance of the semaphore. Figure 11.6 Get an instance from a counting semaphore 11.9 Retrieving Information .