#ifndef _OS_TASK_H__ #define _OS_TASK_H__ #include "bsp/bsp.h" #include "os/os_type.h" /* Task如果没有调用task_yield/delay 永远执行下去 */ #define TICKS_PER_HZ 1000 #define ticks_2_ms(ticks) (ticks*(1000/TICKS_PER_HZ)) #define os_disable_irq() __disable_irq() #define os_enable_irq() __enable_irq() typedef void (*task_func)(void *); void cpu_counts_enable(void); u32 cpu_counts_abs(void); void cpu_udelay(u32 delay); u64 co_task_sys64_ticks(void); u64 co_task_sys64_ts(void); void *co_task_create(task_func func, void *param, u16 stack_size); void co_task_delay(int ms); //task 延时 void co_task_yield(void); //task 让出cpu void co_task_schedule(void); //task开始调度 void *co_malloc(u32 size); void co_free(void *ptr); float cpu_count_times(u32 prev); float cpu_times_bew_counts(u32 now, u32 prev); u32 co_task_current_stack(void); u32 co_task_stack_size(void); #define cpu_count_2_time(c) ((float)c / (float)SystemCoreClock) #endif /*_OS_TASK_H__*/