system/freertos/os.h

35 lines
773 B
C

#ifndef __OS_H__
#define __OS_H__
#include "FreeRTOSConfig.h"
#include "FreeRTOS.h"
#include "task.h"
#include "semphr.h"
typedef struct
{
uint32_t free_heap_size; ///< 空闲堆大小
uint32_t min_free_heap_size; ///< 最小空闲堆大小
uint32_t min_free_stack_size; ///< 最小空闲栈大小
} os_t;
static inline void os_read(os_t *os)
{
os->free_heap_size = xPortGetFreeHeapSize();
os->min_free_heap_size = xPortGetMinimumEverFreeHeapSize();
os->min_free_stack_size = uxTaskGetStackHighWaterMark(NULL);
}
// 禁止任务抢占
static inline void os_task_preemption_disable(void)
{
taskENTER_CRITICAL();
}
// 允许任务抢占
static inline void os_task_preemption_enable(void)
{
taskEXIT_CRITICAL();
}
#endif // __OS_H__