Files
cosyos/System/os_var.c
T
零中断延迟的RTOS d5d753ce05 update CosyOS-内核文件.
Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
2024-11-11 16:49:59 +00:00

73 lines
4.4 KiB
C

/**************************************************************************//**
* @item CosyOS-II Kernel
* @file os_var.c
* @brief 系统全局变量定义
* @author 迟凯峰
* @version V3.1.0
* @date 2024.11.11
******************************************************************************/
#include "os_redef.h"
/* The Soft-RTC */
#if SYSCFG_SOFTRTC == __ENABLED__
volatile m_bit_t /*_SYS_MEM_*/ s_sign_rtc = false; /*!< 更新RTC副本信号 */
volatile s_every_ts _SYS_MEM_ s_sign_every = {0, 0, 0, 0, 0, 0}; /*!< 每信号 */
s_u8_t _SYS_MEM_ s_rtc[2][7] = {sInitRealTime, sInitRealTime}; /*!< RTC [[0][7]:正本,[1][7]:副本] */
s_u8_t _SYS_MEM_ s_month2day = 28; /*!< 二月有几天?*/
const s_u8_t _CONST_MEM_ s_month0day[13] = {31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; /*!< 每月各有几天?*/
#endif
/* The Task */
m_bit_t /*_SYS_MEM_*/ s_sign_return = true; /*!< 返回信号 */
volatile m_bit_t /*_SYS_MEM_*/ s_sign_schedule = false; /*!< 调度信号 */
volatile m_bit_t /*_SYS_MEM_*/ s_sign_schedule_all = false; /*!< 完整调度信号 */
s_u8_t _SYS_MEM_ s_taskcri_counter = 0; /*!< 任务临界区嵌套计数器 */
s_sharing_t _SYS_MEM_ s_tick_counter = 0; /*!< 系统滴答计数器 */
s_ecode_t _SYS_MEM_ s_startup_code = OS_ECODE_NOERROR; /*!< 启动任务时,用来异地缓存错误码 */
s_u8_t _SYS_MEM_ s_task_status0 = OS_STATUS_DELETED; /*!< 被启动任务 -> 初始状态 */
s_taskhand_tsp _SYS_MEM_ s_task_starter = OS_NULL; /*!< 被启动任务 -> 装载块句柄 */
s_tasknode_tsp _SYS_MEM_ s_task_current = OS_NULL; /*!< 当前任务句柄 */
s_tasknode_tsp _SYS_MEM_ s_task_switch = OS_NULL; /*!< 立即切换至某任务 -> 任务句柄 */
s_tasknode_tsp _SYS_MEM_ s_taskpri_tail = OS_NULL; /*!< 设置任务优先级时 -> 临时链表的尾节点 */
#if SYSCFG_SAFERUNTIME == __ENABLED__
s_bool_t s_sign_timeout[OS_TASKTOTAL + 1]; /*!< 超时信号,安全运行时专用 */
#endif
#if SYSCFG_TIMESHARINGMODE == 2
const s_sharing_t _CONST_MEM_ s_time_sharing[SYSCFG_TASKPRIORITY] = {SYSCFG_CUSTOMTIMESHARING}; /*!< 自定义时间片 -> 时间片数组 */
#endif
/* The Timing Interrupt */
#if OS_TIMINTTOTAL
s_timinthand_tsp s_timint_handle[OS_TIMINTTOTAL]; /*!< 定时中断句柄 */
#endif
/* The Timing Query */
#if OS_TIMQRYTOTAL
s_timqryhand_tsp s_timqry_handle[OS_TIMQRYTOTAL]; /*!< 定时查询句柄 */
#endif
/* The Global Variable Accessor */
volatile m_bit_t /*_SYS_MEM_*/ s_sign_updatecopy = false; /*!< 更新副本信号 */
/* The Task Message */
#if SYSCFG_TASKMSG == __ENABLED__
volatile m_bit_t /*_SYS_MEM_*/ s_sign_send_taskmsg = false; /*!< 发送私信信号 */
#endif
/* The Debug Interface */
#if SYSCFG_DEBUGGING == __ENABLED__
volatile m_bit_t /*_SYS_MEM_*/ s_sign_taskmgr = SYSCFG_TASKMGRAUTOSTART;
volatile m_bit_t /*_SYS_MEM_*/ s_sign_debug_send = false;
volatile m_bit_t /*_SYS_MEM_*/ s_sign_debug_recv = false;
volatile s_u8_t _SYS_MEM_ s_debug_sendtype = 0;
char _XDATA_MEM_ s_debug_recvbuff[OS_DEBUGRECVBUFFSIZE];/*
char _XDATA_MEM_ s_cmdline_sendbuff[OS_CMDLINESENDBUFFSIZE];*/
char _XDATA_MEM_ s_taskmgr_sendbuff[OS_TASKMGRSENDBUFFSIZE];
char _XDATA_MEM_ * _SYS_MEM_ s_debug_recvptr = s_debug_recvbuff;
char _XDATA_MEM_ * _SYS_MEM_ s_debug_sendptr;
s_alarm_ts s_alarm = {0, 0, 0, 0, 0, 0};
s_fault_ts s_fault = {0, 0, 0, 0, 0, 0, 0, 0};
#if SYSCFG_SYSTICKTIME_COUNT == __ENABLED__
s_u32_t s_tick_counter1 = 0;
s_u32_t s_tick_counter2 = 0;
#endif
#if SYSCFG_TASKPC_MONITOR == __ENABLED__
m_pc_t _SYS_MEM_ s_pc = 0;
#endif
#endif