35 lines
773 B
C
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__
|