2020-03-17 04:31:30 +00:00
|
|
|
#include <global.h>
|
|
|
|
|
|
|
|
u32 __osPiAccessQueueEnabled = 0;
|
|
|
|
|
|
|
|
OSMesg piAccessBuf;
|
|
|
|
OSMesgQueue __osPiAccessQueue;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
void __osPiCreateAccessQueue(void) {
|
2020-03-17 04:31:30 +00:00
|
|
|
__osPiAccessQueueEnabled = 1;
|
|
|
|
osCreateMesgQueue(&__osPiAccessQueue, &piAccessBuf, 1);
|
|
|
|
osSendMesg(&__osPiAccessQueue, NULL, OS_MESG_NOBLOCK);
|
|
|
|
}
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
void __osPiGetAccess(void) {
|
2020-03-17 04:31:30 +00:00
|
|
|
OSMesg mesg;
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
if (!__osPiAccessQueueEnabled) {
|
2020-03-17 04:31:30 +00:00
|
|
|
__osPiCreateAccessQueue();
|
2020-03-22 21:19:43 +00:00
|
|
|
}
|
2020-03-17 04:31:30 +00:00
|
|
|
|
|
|
|
osRecvMesg(&__osPiAccessQueue, &mesg, OS_MESG_BLOCK);
|
|
|
|
}
|
|
|
|
|
2020-03-22 21:19:43 +00:00
|
|
|
void __osPiRelAccess(void) {
|
2020-03-17 04:31:30 +00:00
|
|
|
osSendMesg(&__osPiAccessQueue, 0, OS_MESG_NOBLOCK);
|
|
|
|
}
|