Lee Kai Xuan / mbed-os

Fork of mbed-os by erkin yucel

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers arm_hal_interrupt.c Source File

arm_hal_interrupt.c

00001 /*
00002  * Copyright (c) 2016 ARM Limited, All Rights Reserved
00003  */
00004 
00005 #include "arm_hal_interrupt.h"
00006 #include "arm_hal_interrupt_private.h"
00007 #include "cmsis_os.h"
00008 
00009 
00010 static uint8_t sys_irq_disable_counter;
00011 
00012 static osMutexDef(critical);
00013 static osMutexId critical_mutex_id;
00014 
00015 void platform_critical_init(void)
00016 {
00017     critical_mutex_id = osMutexCreate(osMutex(critical));
00018 }
00019 
00020 void platform_enter_critical(void)
00021 {
00022     osMutexWait(critical_mutex_id, osWaitForever);
00023     sys_irq_disable_counter++;
00024 }
00025 
00026 void platform_exit_critical(void)
00027 {
00028     --sys_irq_disable_counter;
00029     osMutexRelease(critical_mutex_id);
00030 }