landzo

来自「【开源】线性CCD自适应性算法攻略」· 代码 · 共 1,414 行 · 第 1/5 页

TXT
1,414
字号
                                           INT8U            opt,
                                           INT8U           *perr);
#endif

    void         *OSMboxPend              (OS_EVENT        *pevent,
                                           INT32U           timeout,
                                           INT8U           *perr);

#if OS_MBOX_PEND_ABORT_EN > 0u
    INT8U         OSMboxPendAbort         (OS_EVENT        *pevent,
                                           INT8U            opt,
                                           INT8U           *perr);
#endif

#if OS_MBOX_POST_EN > 0u
    INT8U         OSMboxPost              (OS_EVENT        *pevent,
                                           void            *pmsg);
#endif

#if OS_MBOX_POST_OPT_EN > 0u
    INT8U         OSMboxPostOpt           (OS_EVENT        *pevent,
                                           void            *pmsg,
                                           INT8U            opt);
#endif

#if OS_MBOX_QUERY_EN > 0u
    INT8U         OSMboxQuery             (OS_EVENT        *pevent,
                                           OS_MBOX_DATA    *p_mbox_data);
#endif
#endif

    /*
    *********************************************************************************************************
    *                                           MEMORY MANAGEMENT
    *********************************************************************************************************
    */

#if (OS_MEM_EN > 0u) && (OS_MAX_MEM_PART > 0u)

    OS_MEM       *OSMemCreate             (void            *addr,
                                           INT32U           nblks,
                                           INT32U           blksize,
                                           INT8U           *perr);

    void         *OSMemGet                (OS_MEM          *pmem,
                                           INT8U           *perr);
#if OS_MEM_NAME_EN > 0u
    INT8U         OSMemNameGet            (OS_MEM          *pmem,
                                           INT8U          **pname,
                                           INT8U           *perr);

    void          OSMemNameSet            (OS_MEM          *pmem,
                                           INT8U           *pname,
                                           INT8U           *perr);
#endif
    INT8U         OSMemPut                (OS_MEM          *pmem,
                                           void            *pblk);

#if OS_MEM_QUERY_EN > 0u
    INT8U         OSMemQuery              (OS_MEM          *pmem,
                                           OS_MEM_DATA     *p_mem_data);
#endif

#endif

    /*
    *********************************************************************************************************
    *                                MUTUAL EXCLUSION SEMAPHORE MANAGEMENT
    *********************************************************************************************************
    */

#if OS_MUTEX_EN > 0u

#if OS_MUTEX_ACCEPT_EN > 0u
    BOOLEAN       OSMutexAccept           (OS_EVENT        *pevent,
                                           INT8U           *perr);
#endif

    OS_EVENT     *OSMutexCreate           (INT8U            prio,
                                           INT8U           *perr);

#if OS_MUTEX_DEL_EN > 0u
    OS_EVENT     *OSMutexDel              (OS_EVENT        *pevent,
                                           INT8U            opt,
                                           INT8U           *perr);
#endif

    void          OSMutexPend             (OS_EVENT        *pevent,
                                           INT32U           timeout,
                                           INT8U           *perr);

    INT8U         OSMutexPost             (OS_EVENT        *pevent);

#if OS_MUTEX_QUERY_EN > 0u
    INT8U         OSMutexQuery            (OS_EVENT        *pevent,
                                           OS_MUTEX_DATA   *p_mutex_data);
#endif

#endif

    /*$PAGE*/
    /*
    *********************************************************************************************************
    *                                         MESSAGE QUEUE MANAGEMENT
    *********************************************************************************************************
    */

#if (OS_Q_EN > 0u) && (OS_MAX_QS > 0u)

#if OS_Q_ACCEPT_EN > 0u
    void         *OSQAccept               (OS_EVENT        *pevent,
                                           INT8U           *perr);
#endif

    OS_EVENT     *OSQCreate               (void           **start,
                                           INT16U           size);

#if OS_Q_DEL_EN > 0u
    OS_EVENT     *OSQDel                  (OS_EVENT        *pevent,
                                           INT8U            opt,
                                           INT8U           *perr);
#endif

#if OS_Q_FLUSH_EN > 0u
    INT8U         OSQFlush                (OS_EVENT        *pevent);
#endif

    void         *OSQPend                 (OS_EVENT        *pevent,
                                           INT32U           timeout,
                                           INT8U           *perr);

#if OS_Q_PEND_ABORT_EN > 0u
    INT8U         OSQPendAbort            (OS_EVENT        *pevent,
                                           INT8U            opt,
                                           INT8U           *perr);
#endif

#if OS_Q_POST_EN > 0u
    INT8U         OSQPost                 (OS_EVENT        *pevent,
                                           void            *pmsg);
#endif

#if OS_Q_POST_FRONT_EN > 0u
    INT8U         OSQPostFront            (OS_EVENT        *pevent,
                                           void            *pmsg);
#endif

#if OS_Q_POST_OPT_EN > 0u
    INT8U         OSQPostOpt              (OS_EVENT        *pevent,
                                           void            *pmsg,
                                           INT8U            opt);
#endif

#if OS_Q_QUERY_EN > 0u
    INT8U         OSQQuery                (OS_EVENT        *pevent,
                                           OS_Q_DATA       *p_q_data);
#endif

#endif

    /*$PAGE*/
    /*
    *********************************************************************************************************
    *                                          SEMAPHORE MANAGEMENT
    *********************************************************************************************************
    */
#if OS_SEM_EN > 0u

#if OS_SEM_ACCEPT_EN > 0u
    INT16U        OSSemAccept             (OS_EVENT        *pevent);
#endif

    OS_EVENT     *OSSemCreate             (INT16U           cnt);

#if OS_SEM_DEL_EN > 0u
    OS_EVENT     *OSSemDel                (OS_EVENT        *pevent,
                                           INT8U            opt,
                                           INT8U           *perr);
#endif

    void          OSSemPend               (OS_EVENT        *pevent,
                                           INT32U           timeout,
                                           INT8U           *perr);

#if OS_SEM_PEND_ABORT_EN > 0u
    INT8U         OSSemPendAbort          (OS_EVENT        *pevent,
                                           INT8U            opt,
                                           INT8U           *perr);
#endif

    INT8U         OSSemPost               (OS_EVENT        *pevent);

#if OS_SEM_QUERY_EN > 0u
    INT8U         OSSemQuery              (OS_EVENT        *pevent,
                                           OS_SEM_DATA     *p_sem_data);
#endif

#if OS_SEM_SET_EN > 0u
    void          OSSemSet                (OS_EVENT        *pevent,
                                           INT16U           cnt,
                                           INT8U           *perr);
#endif

#endif

    /*$PAGE*/
    /*
    *********************************************************************************************************
    *                                            TASK MANAGEMENT
    *********************************************************************************************************
    */
#if OS_TASK_CHANGE_PRIO_EN > 0u
    INT8U         OSTaskChangePrio        (INT8U            oldprio,
                                           INT8U            newprio);
#endif

#if OS_TASK_CREATE_EN > 0u
    INT8U         OSTaskCreate            (void           (*task)(void *p_arg),
                                           void            *p_arg,
                                           OS_STK          *ptos,
                                           INT8U            prio);
#endif

#if OS_TASK_CREATE_EXT_EN > 0u
    INT8U         OSTaskCreateExt         (void           (*task)(void *p_arg),
                                           void            *p_arg,
                                           OS_STK          *ptos,
                                           INT8U            prio,
                                           INT16U           id,
                                           OS_STK          *pbos,
                                           INT32U           stk_size,
                                           void            *pext,
                                           INT16U           opt);
#endif

#if OS_TASK_DEL_EN > 0u
    INT8U         OSTaskDel               (INT8U            prio);
    INT8U         OSTaskDelReq            (INT8U            prio);
#endif

#if OS_TASK_NAME_EN > 0u
    INT8U         OSTaskNameGet           (INT8U            prio,
                                           INT8U          **pname,
                                           INT8U           *perr);

    void          OSTaskNameSet           (INT8U            prio,
                                           INT8U           *pname,
                                           INT8U           *perr);
#endif

#if OS_TASK_SUSPEND_EN > 0u
    INT8U         OSTaskResume            (INT8U            prio);
    INT8U         OSTaskSuspend           (INT8U            prio);
#endif

#if (OS_TASK_STAT_STK_CHK_EN > 0u) && (OS_TASK_CREATE_EXT_EN > 0u)
    INT8U         OSTaskStkChk            (INT8U            prio,
                                           OS_STK_DATA     *p_stk_data);
#endif

#if OS_TASK_QUERY_EN > 0u
    INT8U         OSTaskQuery             (INT8U            prio,
                                           OS_TCB          *p_task_data);
#endif



#if OS_TASK_REG_TBL_SIZE > 0u
    INT32U        OSTaskRegGet            (INT8U            prio,
                                           INT8U            id,
                                           INT8U           *perr);

    void          OSTaskRegSet            (INT8U            prio,
                                           INT8U            id,
                                           INT32U           value,
                                           INT8U           *perr);
#endif

    /*$PAGE*/
    /*
    *********************************************************************************************************
    *                                            TIME MANAGEMENT
    *********************************************************************************************************

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?