⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_cpu_c.c

📁 能在SST89E516单片机上运行的多任务实时操作系统ucosii v2.84 for keil C51源码,在硬件上已验证通过调试
💻 C
字号:
/*
*********************************************************************************************************
*                                                uC/OS-II
*                                          The Real-Time Kernel
*                                            TASK MANAGEMENT
*
*                          (c) Copyright 1992-2006, Jean J. Labrosse, Weston, FL
*                                           All Rights Reserved
*
* File    : OS_CPU_C.C
* By      : Jean J. Labrosse
*********************************************************************************************************
*/

#ifndef  OS_MASTER_FILE
#include <ucos_ii.h>
#endif

OS_STK       *OSTaskStkInit         (void           (*task)(void *p_arg),
                                     void            *p_arg,
                                     OS_STK          *ptos,
                                     INT16U           opt) reentrant
{
    OS_STK *stk;    
     opt   = opt;                                 
	 stk   = ptos;                             
    *stk++ = 15;
    *stk++ = (INT16U)task & 0xFF;               
    *stk++ = (INT16U)task >> 8;
	*stk++ = 0x00;                             
    *stk++ = 0x0A;                              
    *stk++ = 0x0B;                              
    *stk++ = 0x00;                             
    *stk++ = 0x00;                              
    *stk++ = 0x00;                              
    *stk++ = (INT16U)p_arg & 0xFF;            
    *stk++ = (INT16U)p_arg >> 8;  
    *stk++ = 0x01;   
    *stk++ = 0x04;                             
    *stk++ = 0x05;                             
    *stk++ = 0x06;                             
    *stk++ = 0x07;                              
    *stk++ = (INT16U) (ptos+MaxStkSize) >> 8;   
    *stk++ = (INT16U) (ptos+MaxStkSize) & 0xFF;        
    return ptos;						 
}

#if OS_CPU_HOOKS_EN
void OSTaskCreateHook (OS_TCB *ptcb) reentrant
{
    ptcb = ptcb;                       /* Prevent compiler warning                                     */
}
#endif

#if OS_CPU_HOOKS_EN
void OSTaskDelHook (OS_TCB *ptcb) reentrant
{
    ptcb = ptcb;                       /* Prevent compiler warning                                     */
}
#endif

#if OS_TASK_SW_HOOK_EN
void OSTaskSwHook (void) reentrant
{

}
#endif

#if OS_CPU_HOOKS_EN
void OSTaskStatHook (void) reentrant
{
    
}
#endif

#if OS_CPU_HOOKS_EN
void OSTimeTickHook (void) reentrant
{
    
}
#endif

/*
*********************************************************************************************************
*                                       OS INITIALIZATION HOOK
*                                            (BEGINNING)
*
* Description: This function is called by OSInit() at the beginning of OSInit().
*
* Arguments  : none
*
* Note(s)    : 1) Interrupts should be disabled during this call.
*********************************************************************************************************
*/

#if OS_CPU_HOOKS_EN 
void  OSInitHookBegin (void) reentrant
{

}
#endif

/*
*********************************************************************************************************
*                                       OS INITIALIZATION HOOK
*                                               (END)
*
* Description: This function is called by OSInit() at the end of OSInit().
*
* Arguments  : none
*
* Note(s)    : 1) Interrupts should be disabled during this call.
*********************************************************************************************************
*/

#if OS_CPU_HOOKS_EN
void  OSInitHookEnd (void) reentrant
{

}

#endif

/*
*********************************************************************************************************
*                                             IDLE TASK HOOK
*
* Description: This function is called by the idle task.  This hook has been added to allow you to do  
*              such things as STOP the CPU to conserve power.
*
* Arguments  : none
*
* Note(s)    : 1) Interrupts are enabled during this call.
*********************************************************************************************************
*/

#if OS_CPU_HOOKS_EN
void  OSTaskIdleHook (void)	reentrant
{

}
#endif

/*
*********************************************************************************************************
*                                           OSTCBInit() HOOK
*
* Description: This function is called by OS_TCBInit() after setting up most of the TCB.
*
* Arguments  : ptcb    is a pointer to the TCB of the task being created.
*
* Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
*********************************************************************************************************
*/

#if OS_CPU_HOOKS_EN 
void  OSTCBInitHook (OS_TCB *ptcb) reentrant
{
    ptcb = ptcb;                                           /* Prevent Compiler warning                 */
}
#endif

void TargetInit(void) reentrant
{
    TMOD = TMOD|0x01;
    TH0  = 0xB8;
    TL0  = 0x00; 
    TR0  = 1;
	ET0  = 1;   
}

⌨️ 快捷键说明

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