#ifndef INCLUDED_OS_PORT_H #define INCLUDED_OS_PORT_H #ifndef INCLUDED_CPU_H #include #endif /*INCLUDED_CPU_H*/ #ifndef INCLUDED_OS_TYPES_H #include #endif /*INCLUDED_OS_TYPES_H*/ #ifndef INCLUDED_OS_TASK_H #include #endif /*INCLUDED_OS_TASK_H*/ /* ------------------------------------------------------------------------------------------------------------------ */ /* */ extern volatile void* g_os_port_switch_from_sp; extern volatile void* g_os_port_switch_to_sp; extern volatile os_bool_t g_os_port_context_switch_flag; /* ------------------------------------------------------------------------------------------------------------------ */ /* */ /* * 根据 CPU 平台和型号的规定初始化任务栈 * @param entry - 任务入口 * @param param - 任务参数 * @param stack_base - 栈空间起始地址 * @param stack_size - 栈空间大小 * @param exit_entry - 任务退出时的返回地址 */ os_stack_t os_port_cpu_stack_init(os_task_entry_t entry, void* param , void* stack_base, os_size_t stack_size, void(*exit_entry)(void)); /* * 请求上下文切换 * @param from_sp - 切换的源头任务栈指针 * @param to_sp - 切换的目标任务栈指针 */ void os_port_context_switch(void* from_sp, void* to_sp); /* * 发出上下文切换的请求 */ void os_port_send_context_switch_request(void); /* * 清除上下文切换的请求 */ void os_port_clear_context_switch_request(void); /* * 任务切换完成后的回调函数,进行清理工作 */ void os_port_on_switch_success(void); /* ------------------------------------------------------------------------------------------------------------------ */ /* 中断管理 */ //void os_port_disable_irq(void); //void os_port_enable_irq(void); //os_uint_t os_port_save_disable_irq(void); //void os_port_restore_irq(os_uint_t level); //os_uint_t os_port_save_disable_irq_in_isr(void); //void os_port_restore_irq_in_isr(os_uint_t level); #ifndef os_port_disable_irq #define os_port_disable_irq #endif #ifndef os_port_enable_irq #define os_port_enable_irq #endif #ifndef os_port_save_disable_irq #define os_port_save_disable_irq #endif #ifndef os_port_restore_irq #define os_port_restore_irq #endif #ifndef os_port_save_disable_irq_in_isr #define os_port_save_disable_irq_in_isr #endif #ifndef os_port_restore_irq_in_isr #define os_port_restore_irq_in_isr #endif /* ------------------------------------------------------------------------------------------------------------------ */ /* 初始化和启动 */ void os_port_init(void); void os_port_startup(void); #endif /*INCLUDED_OS_PORT_H*/