79 #include <stm32f4xx.h>
92 _VOLATILE
static uint8_t sync[
_VOLUMES];
95 __attribute__((naked)) static uint32_t DisableGlobalInterrupt(
void) {
100 " msr basepri, r1 \n"
102 ::
"i" (255) :
"r0",
"r1"
110 __attribute__((naked)) static
void EnableGlobalInterrupt(
111 uint32_t ulNewMaskValue) {
114 " msr basepri, r0 \n"
120 (void) ulNewMaskValue;
135 _VOLATILE uint8_t **value = (_VOLATILE uint8_t **)mutex;
145 return (*mutex !=
NULL);
159 uint8_t *value = (uint8_t *)mutex;
162 interrupts = DisableGlobalInterrupt();
164 EnableGlobalInterrupt(interrupts);
180 uint8_t *value = (uint8_t *)mutex;
184 interrupts = DisableGlobalInterrupt();
189 EnableGlobalInterrupt(interrupts);
203 uint8_t *value = (uint8_t *)mutex;
206 interrupts = DisableGlobalInterrupt();
208 EnableGlobalInterrupt(interrupts);
int ff_del_syncobj(_SYNC_t sobj)
#define NULL
SDIO Static flags, TimeOut, FIFO Address.
#define _SYNC_t
O/S dependent type of sync object. e.g. HANDLE, OS_EVENT*, ID and etc..
int ff_cre_syncobj(BYTE vol, _SYNC_t *sobj)
void ff_rel_grant(_SYNC_t sobj)
int ff_req_grant(_SYNC_t sobj)
#define _VOLUMES
Number of volumes (logical drives) to be used.