📄 os_cpu_c.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 + -