mirror of
https://gitee.com/cosyos/cosyos.git
synced 2026-09-29 08:23:16 +08:00
51 lines
1.8 KiB
C
51 lines
1.8 KiB
C
/**************************************************************************//**
|
|
* @item CosyOS-II Kernel
|
|
* @file sv_int_loc.h
|
|
* @brief 中断本地服务
|
|
* @details 仅在用户中断中调用,并在本地执行。
|
|
* @author 迟凯峰
|
|
* @version V3.1.0
|
|
* @date 2024.11.11
|
|
******************************************************************************/
|
|
|
|
#ifndef __SV_INT_LOC_H
|
|
#define __SV_INT_LOC_H
|
|
|
|
void si_task_schedule(void);
|
|
s_bool_t si_take_binary (s_binary_tsp hbin);
|
|
m_fetion_t si_recv_fetion (s_tionbox_tsp htbox);
|
|
void *si_recv_mail (s_mailbox_tsp hmbox);
|
|
s_bool_t si_take_quemut (s_queue_tsp hque);
|
|
void *si_recv_msg_c51 (s_queue_tsp hque);
|
|
void *si_recv_msg_n51 (s_queue_tsp hque);
|
|
|
|
/**
|
|
@addtogroup 中断本地服务
|
|
@{
|
|
*/
|
|
|
|
#define sISV_TaskSchedule si_task_schedule() /*!< 任务调度 */
|
|
#define sISV_TakeBin(bin) si_take_binary(&bin) /*!< 获取二值信号量 */
|
|
#define sISV_RecvFetion(tbox) si_recv_fetion(&tbox) /*!< 接收飞信 */
|
|
#define sISV_RecvMail(mbox) si_recv_mail(&mbox) /*!< 接收邮件 */
|
|
#define sISV_GetTime(t) s_memcpy(t, iWhichGVar_Read ? s_rtc[0] : s_rtc[1], sizeof(s_rtc[0])) /*!< 获取时间 */
|
|
|
|
#if SYSCFG_MCUCORE == 8051
|
|
#define sISV_RecvMsg(que) (si_take_quemut((s_queue_tsp)&que) ? si_recv_msg_c51((s_queue_tsp)&que) : OS_NULL) /*!< C51 接收消息 */
|
|
#else
|
|
#define sISV_RecvMsg(que) si_recv_msg_n51((s_queue_tsp)&que) /*!< 非51 接收消息 */
|
|
#endif
|
|
|
|
/** 查询标志组 */
|
|
#define sISV_QueryFlagGroup(group) \
|
|
( \
|
|
sizeof(group) == 1 ? *(s_u8_t *)&group ? true : false \
|
|
: sizeof(group) == 2 ? *(s_u16_t *)&group ? true : false \
|
|
: sizeof(group) == 4 ? *(s_u32_t *)&group ? true : false \
|
|
: false \
|
|
)
|
|
|
|
/** @} */
|
|
|
|
#endif
|