Files
cosyos/System/os_var.h
T
零中断延迟的RTOS 96e37f4761 update System/os_var.h.
Signed-off-by: 零中断延迟的RTOS <cosyos@139.com>
2025-02-25 04:40:15 +00:00

104 lines
4.6 KiB
C

/**************************************************************************//**
* @item CosyOS-III Kernel
* @file os_var.h
* @brief 系统全局变量声明
* @author 迟凯峰
* @version V1.0.2
* @date 2025.02.25
******************************************************************************/
#ifndef __OS_VAR_H
#define __OS_VAR_H
#include "os_redef.h"
/* The Soft-RTC */
#if SYSCFG_SOFTRTC == __ENABLED__
extern const s_u8_t _CONST_MEM_ s_month0day[13];
extern s_u8_t _RTC_MEM_ s_month2day;
extern volatile s_every_ts _SYS_MEM_ s_sign_every;
extern s_rtc_ts _RTC_MEM_ s_rtc;
#if SYSCFG_GETRTC_INT == __ENABLED__
extern s_rtc_ts _RTC_MEM_ s_rtc_copy;
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_rtc;
#endif
#endif
/* The Task */
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_schedule;
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_schedule_forbid;
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_ready_delay;
extern s_u8_t _SYS_MEM_ s_schedulelock_counter;
extern s_ecode_t _SYS_MEM_ s_startup_code;
extern s_u8_t _SYS_MEM_ s_task_status0;
extern s_taskhand_tsp _SYS_MEM_ s_task_starter;
extern s_tasknode_tsp _SYS_MEM_ s_task_current;
extern s_tasknode_tsp _SYS_MEM_ s_list_timer;
#if SYSCFG_SAMEPRISCHEDULE == __TIMESHARING__
#if SYSCFG_TIMESHARINGMODE == 2
extern const s_sharing_t _CONST_MEM_ s_time_sharing[SYSCFG_TASKPRIORITY];
#endif
#endif
#if SYSCFG_KERNELLOCKNESTING == __ENABLED__
extern s_u8_t _SYS_MEM_ s_kernellock_counter;
#endif
/* The Safe runtime */
#if SYSCFG_SAFERUNTIME == __ENABLED__
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_timeout;
extern s_tasknode_tsp _SYS_MEM_ s_list_timeout;
#endif
/* The Timing Interrupt */
#if OS_TIMINTTOTAL
extern s_timinthand_tsp s_timint_handle[OS_TIMINTTOTAL];
#endif
/* The Timing Query */
#if OS_TIMQRYTOTAL
extern s_timqryhand_tsp s_timqry_handle[OS_TIMQRYTOTAL];
#endif
/* The Global Variable Accessor */
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_updatecopy;
/* The Debug Interface */
#if SYSCFG_DEBUGGING == __ENABLED__
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_taskmgr;
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_debug_send;
extern volatile m_bit_t /*_SYS_MEM_*/ s_sign_debug_recv;
extern volatile s_u8_t _SYS_MEM_ s_debug_sendtype;
extern char _XDATA_MEM_ s_debug_recvbuff[OS_DEBUGRECVBUFFSIZE];/*
extern char _XDATA_MEM_ s_cmdline_sendbuff[OS_CMDLINESENDBUFFSIZE];*/
extern char _XDATA_MEM_ s_taskmgr_sendbuff[OS_TASKMGRSENDBUFFSIZE];
extern char _XDATA_MEM_ * _SYS_MEM_ s_debug_recvptr;
extern char _XDATA_MEM_ * _SYS_MEM_ s_debug_sendptr;
extern s_alarm_ts _DEBUG_MEM_ s_alarm;
extern s_fault_ts _DEBUG_MEM_ s_fault;
#if SYSCFG_SYSTICKTIME_COUNT == __ENABLED__
extern s_u32_t _DEBUG_MEM_ s_tick_counter1;
extern s_u32_t _DEBUG_MEM_ s_tick_counter2;
#endif
#if SYSCFG_TASKPC_MONITOR == __ENABLED__
extern m_pc_t _SYS_MEM_ s_pc;
#endif
#if SYSCFG_RUNTIME_COUNT == __ENABLED__
extern s_runtime_ts _DEBUG_MEM_ s_runtime;
#endif
#endif
/* The Task bitmap */
extern const s_u8_t _CONST_MEM_ s_task_map_mask[8];
extern const s_u8_t _CONST_MEM_ s_task_map_pick[SYSCFG_TASKPICKBITMAP * 128];
#if SYSCFG_TASKPRIORITY > 64
extern s_u8_t _SYS_MEM_ s_task_table_index;
extern s_u8_t _SYS_MEM_ s_task_bytes_index[SYSCFG_TASKPRIORITY / 64];
extern s_u8_t _SYS_MEM_ s_task_ready_table[SYSCFG_TASKPRIORITY / 64][8];
#elif SYSCFG_TASKPRIORITY > 8
extern s_u8_t _SYS_MEM_ s_task_bytes_index;
extern s_u8_t _SYS_MEM_ s_task_ready_table[SYSCFG_TASKPRIORITY / 8];
#else
extern s_u8_t _SYS_MEM_ s_task_ready_table;
#endif
extern s_tasknode_tsp _QUE_MEM_ s_task_queue[SYSCFG_TASKPRIORITY];
extern s_tqcount_t _QUE_MEM_ s_task_queue_count;
#if SYSCFG_SAMEPRISCHEDULE
extern s_u8_t _QUE_MEM_ s_task_ready_count[SYSCFG_TASKPRIORITY];
#endif
extern void (_CODE_MEM_ * const _CONST_MEM_ sPendSV_FIFOHandler[OS_SVID_END])(void _STATIC_MEM_ *sv);
#endif