mbed-os
Dependents: cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more
features/FEATURE_COMMON_PAL/nanostack-hal-mbed-cmsis-rtos/arm_hal_interrupt.c
- Committer:
- be_bryan
- Date:
- 2017-12-11
- Revision:
- 0:b74591d5ab33
File content as of revision 0:b74591d5ab33:
/* * Copyright (c) 2016 ARM Limited, All Rights Reserved */ #include "arm_hal_interrupt.h" #include "arm_hal_interrupt_private.h" #include "cmsis_os2.h" #include "mbed_rtos_storage.h" #include <mbed_assert.h> static uint8_t sys_irq_disable_counter; static mbed_rtos_storage_mutex_t critical_mutex; static const osMutexAttr_t critical_mutex_attr = { .name = "nanostack_critical_mutex", .attr_bits = osMutexRecursive | osMutexPrioInherit | osMutexRobust, .cb_mem = &critical_mutex, .cb_size = sizeof critical_mutex, }; static osMutexId_t critical_mutex_id; void platform_critical_init(void) { critical_mutex_id = osMutexNew(&critical_mutex_attr); MBED_ASSERT(critical_mutex_id); } void platform_enter_critical(void) { osMutexAcquire(critical_mutex_id, osWaitForever); sys_irq_disable_counter++; } void platform_exit_critical(void) { --sys_irq_disable_counter; osMutexRelease(critical_mutex_id); }