SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
This procedure configures the take and release (free) operations for the Spinlock module. A spinlock should only be held with interrupts disabled. So, before attempting to obtain the spinlock, software should disable interrupts. Then it should read the SPINLOCK_LOCK_REG_i[0] TAKEN bit to attempt to obtain the lock. If it succeeds, it should proceed directly through the critical section then unlock and re-enable interrupts. If the acquisition attempt fails, the acquisition should be reattempted. To prevent unknown interrupt disabled time, interrupts should be re-enabled and then disabled before reattempting to acquire the lock. Figure 21-4 shows the described above procedure.
Register Name |
---|
SPINLOCK_LOCK_REG_i[0] TAKEN |
Subprocess Name | Cross Reference |
---|---|
Disable Interrupts | For information about disabling/enabling interrupts in
MPU_INTC, see the Arm Cortex-A15 MPCore Technical Reference
Manual (available at infocenter.arm.com/help/index.jsp). For information about disabling/enabling interrupts in IPU_INTC, see the Arm Cortex-M4 Technical Reference Manual (available at infocenter.arm.com/help/index.jsp). For information about disabling/enabling interrupts in DSP_INTC, see DSP Subsystem. |
Enable Interrupts |