mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-09-24 22:40:32 +08:00
删除文件 System/sv_int_pend_fifo.h
This commit is contained in:
@@ -1,192 +0,0 @@
|
||||
/**************************************************************************//**
|
||||
* @item CosyOS-II Kernel
|
||||
* @file sv_int_pend_fifo.h
|
||||
* @brief 中断挂起服务_FIFO - 调用宏
|
||||
* @details 仅在用户中断中调用,而后挂起到 PendSV 中执行。
|
||||
* @author 迟凯峰
|
||||
* @version V3.4.0
|
||||
* @date 2025.01.06
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __SV_INT_PEND_FIFO_H
|
||||
#define __SV_INT_PEND_FIFO_H
|
||||
|
||||
/**
|
||||
@addtogroup 中断挂起服务_FIFO
|
||||
@{
|
||||
*/
|
||||
|
||||
/** 清除就绪延时 */
|
||||
#define sPSV_ClearDelay \
|
||||
do{ \
|
||||
static sp_task_ts u_psv = {OS_SVID_CLEARDELAY, OS_NULL}; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 切换任务 */
|
||||
#define sPSV_SwitchTask(_htask) \
|
||||
do{ \
|
||||
static sp_task_ts u_psv = {OS_SVID_SWITCHTASK, OS_NULL}; \
|
||||
u_psv.htask = _htask; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 恢复任务 */
|
||||
#define sPSV_ResumeTask(_htask) \
|
||||
do{ \
|
||||
static sp_task_ts u_psv = {OS_SVID_RESUMETASK, OS_NULL}; \
|
||||
u_psv.htask = _htask; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 挂起任务 */
|
||||
#define sPSV_SuspendTask(_htask) \
|
||||
do{ \
|
||||
static sp_task_ts u_psv = {OS_SVID_SUSPENDTASK, OS_NULL}; \
|
||||
u_psv.htask = _htask; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 删除任务 */
|
||||
#define sPSV_DeleteTask(_htask) \
|
||||
do{ \
|
||||
static sp_task_ts u_psv = {OS_SVID_DELETETASK, OS_NULL}; \
|
||||
u_psv.htask = _htask; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 设置任务优先级 */
|
||||
#define sPSV_SetTaskPri(_htask, _npri) \
|
||||
do{ \
|
||||
static sp_taskpri_ts u_psv = {OS_SVID_SETTASKPRI, OS_NULL, _npri}; \
|
||||
u_psv.htask = _htask; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 设置阻塞(时间)*/
|
||||
#define sPSV_SetBlock(_htask, _tick) \
|
||||
do{ \
|
||||
static sp_blocktime_ts u_psv = {OS_SVID_SETBLOCK, OS_NULL, _tick}; \
|
||||
u_psv.htask = _htask; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 清除阻塞(状态)*/
|
||||
#define sPSV_ClearBlock(_htask) \
|
||||
do{ \
|
||||
static sp_task_ts u_psv = {OS_SVID_CLEARBLOCK, OS_NULL}; \
|
||||
u_psv.htask = _htask; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 定时中断 */
|
||||
#define sPSV_TimInt(_tmid, _tick) \
|
||||
do{ \
|
||||
static sp_timint_ts u_psv = {OS_SVID_TIMINT, _tmid, 0}; \
|
||||
u_psv.tick = _tick; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 定时查询 */
|
||||
#define sPSV_TimQry(_tmid, _tick) \
|
||||
do{ \
|
||||
static sp_timqry_ts u_psv = {OS_SVID_TIMQRY, _tmid, 0}; \
|
||||
u_psv.tick = _tick; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 上锁or给予二值信号量 */
|
||||
#define sPSV_WriteBin(_bin, _val) \
|
||||
do{ \
|
||||
static sp_binary_ts u_psv = {OS_SVID_BINARY, &_bin, _val}; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 给予计数信号量 */
|
||||
#define sPSV_GiveSem(_sem) \
|
||||
do{ \
|
||||
static sp_semaph_ts u_psv = {OS_SVID_GIVESEM, &_sem}; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 发送飞信 */
|
||||
#define sPSV_SendFetion(_tbox, _tion) \
|
||||
do{ \
|
||||
static sp_tionbox_ts u_psv = {OS_SVID_SENDFETION, &_tbox, 0}; \
|
||||
u_psv.fetion = _tion; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 发送邮件 */
|
||||
#define sPSV_SendMail(_mbox, _mail) \
|
||||
do{ \
|
||||
static sp_mailbox_ts u_psv = {OS_SVID_SENDMAIL, &_mbox, OS_NULL}; \
|
||||
u_psv.mail = _mail; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 发送消息 */
|
||||
#define sPSV_SendMsg(_que, _msg) \
|
||||
do{ \
|
||||
static sp_msg_ts u_psv = {OS_SVID_SENDMSG, (s_queue_tsp)&_que, OS_NULL}; \
|
||||
u_psv.msg = _msg; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 清除标志组 */
|
||||
#define sPSV_ClearFlagGroup(_group) \
|
||||
do{ \
|
||||
static sp_group_ts u_psv = {OS_SVID_GROUP, (void *)&_group, -sizeof(_group), ~0}; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 写多标志位 */
|
||||
#define sPSV_WriteFlagBits(_group, _sign, _nbit) \
|
||||
do{ \
|
||||
static sp_group_ts u_psv = {OS_SVID_GROUP, (void *)&_group, _sign##sizeof(_group), 0}; \
|
||||
u_##_group##_ts lv; \
|
||||
miWriteFlagBits; \
|
||||
sizeof(lv) == 1 ? *(s_u8_t *)&lv = false : MCUCFG_TERNARYMASK \
|
||||
sizeof(lv) == 2 ? *(s_u16_t *)&lv = false : MCUCFG_TERNARYMASK \
|
||||
sizeof(lv) == 4 ? *(s_u32_t *)&lv = false : false; \
|
||||
siWriteFlagBits_##_nbit(
|
||||
|
||||
/** 全局变量写访问 */
|
||||
#define sPSV_WriteGVar(_gp, _lp, _size) \
|
||||
do{ \
|
||||
static sp_gvar_ts u_psv = {OS_SVID_GVARWRITE, _gp, _lp, _size}; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 挂起服务调用 */
|
||||
#define sPSV_PendSVC(_fp) \
|
||||
do{ \
|
||||
static sp_pendsvc_ts u_psv = {OS_SVID_PENDSVC, _fp}; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 发送信号 */
|
||||
#define sPSV_SendSign(_sign) \
|
||||
do{ \
|
||||
static sp_sign_ts u_psv = {OS_SVID_SENDSIGN, (s_bool_t *)&_sign}; \
|
||||
mPendSV_FIFOLoad; \
|
||||
}while(false)
|
||||
|
||||
/** 设置时间 */
|
||||
#if SYSCFG_GETRTC_INT == __ENABLED__
|
||||
#define sPSV_SetTime(_t) \
|
||||
do{ \
|
||||
iWriteGAry(&s_rtc, _t, sizeof(s_rtc_ts)); \
|
||||
s_sign_every.set = true; \
|
||||
iSendSign(s_sign_rtc); \
|
||||
}while(false)
|
||||
#else
|
||||
#define sPSV_SetTime(_t) \
|
||||
do{ \
|
||||
iWriteGAry(&s_rtc, _t, sizeof(s_rtc_ts)); \
|
||||
s_sign_every.set = true; \
|
||||
}while(false)
|
||||
#endif
|
||||
/** @} */
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user