亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os_cpu_c.c

?? 包含lwip這個精簡IP協議棧的ucos源代碼.
?? C
字號:
/*
*********************************************************************************************************
*                                               uC/OS-II
*                                         The Real-Time Kernel
*
*                        (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
*                                          All Rights Reserved
*
*                                     TI C6711 DSP Specific code
*                                          Little Endian Mode
*
*                                      Code Composer Studio V2.2
*
* File         : OS_CPU.H
* By	       : Ming Zeng (ming@zming.net) 2003.11
; History      : Kenneth Blake 	(the author of V2.00 port for C6211)
*********************************************************************************************************
*/
#define  OS_CPU_GLOBALS
#include "..\..\..\Project\includes.h"

/*
*********************************************************************************************************
*                                        INITIALIZE A TASK'S STACK
*
* Description: This function is called by either OSTaskCreate() or OSTaskCreateExt() to initialize the
*              stack frame of the task being created.  This function is highly processor specific.
*
* Arguments  : task          is a pointer to the task code
*
*              pdata         is a pointer to a user supplied data area that will be passed to the task
*                            when the task first executes.
*
*              ptos          is a pointer to the top of stack.  It is assumed that 'ptos' points to
*                            a 'free' entry on the task stack.  If OS_STK_GROWTH is set to 1 then 
*                            'ptos' will contain the HIGHEST valid address of the stack.  Similarly, if
*                            OS_STK_GROWTH is set to 0, the 'ptos' will contains the LOWEST valid address
*                            of the stack.
*
*              opt           specifies options that can be used to alter the behavior of OSTaskStkInit().
*                            (see uCOS_II.H for OS_TASK_OPT_???).
*
* Returns    : Always returns the location of the new top-of-stack' once the processor registers have
*              been placed on the stack in the proper order.
*
* Note(s)    : Interrupts are enabled when your task starts executing. 
*********************************************************************************************************
*/
OS_STK	*	OSTaskStkInit(void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt)
{
	INIT_STACK_FRAME   *StkFrame, *StackBottom;	
	int * StackFreePointer ;
	
	/*	THE SP MUST BE ALIGNED ON AN 8-BYTE BOUNDARY.*/   
	StkFrame =  (INIT_STACK_FRAME   *)  ((int)ptos &~7 );	
	StackBottom  = StkFrame ;
	StkFrame-- ;  /* to the bottom of the frame, to init the struct. */

	StkFrame->Start_Address = task ;
	
	StkFrame->A0   =   0x0A00     ;
	StkFrame->A1   =   0x0A01     ;
	StkFrame->A2   =   0x0A02     ;
	StkFrame->A3   =   0x0A03     ;
	StkFrame->A4   =   (int) pdata    ; /* the first argument of C function here*/
	StkFrame->A5   =   0x0A05     ;
	StkFrame->A6   =   0x0A06     ;
	StkFrame->A7   =   0x0A07     ;
	StkFrame->A8   =   0x0A08     ;
	StkFrame->A9   =   0x0A09     ;
	StkFrame->A10  =   0x0A10     ;
	StkFrame->A11  =   0x0A11     ;
	StkFrame->A12  =   0x0A12     ;
	StkFrame->A13  =   0x0A13     ;
	StkFrame->A14  =   0x0A14     ;
	StkFrame->A15  =   0x0A15     ;
	StkFrame->B0   =   0x0B00     ;
	StkFrame->B1   =   0x0B01     ;
	StkFrame->B2   =   0x0B02     ;
	StkFrame->B3   =   (int) task ;		//for cosmetic reason
	StkFrame->B4   =   0x0B04     ;
	StkFrame->B5   =   0x0B05     ;
	StkFrame->B6   =   0x0B06     ;
	StkFrame->B7   =   0x0B07     ;
	StkFrame->B8   =   0x0B08     ;
	StkFrame->B9   =   0x0B09     ;
	StkFrame->B10  =   0x0B10     ;
	StkFrame->B11  =   0x0B11     ;
	StkFrame->B12  =   0x0B12     ;
	StkFrame->B13  =   0x0B13     ;
	StkFrame->B14  =   DSP_C6x_GetCurrentDP()  ;  	/* Save current data pointer */
	StkFrame->B15  =   (int) StackBottom  ; 		/* Save the SP */
	   
	StkFrame->AMR = 0 ;		/*default value as it was after reset*/
	StkFrame->CSR = 0x0103 ;	/* Little Endian(bit8 = 1); PGIE set 1; GIE set 1 */
    StkFrame->IER = 0x02 ;		/* Just set the NMIF bit */
	StkFrame->IRP = 0xabcdabcd ;	/* never return, so any value could used here. */
	
	StackFreePointer = (int *) StkFrame ;
	StackFreePointer-- ;	/* Jusr move 4-BYTE(int) to the next free position */

	return ((OS_STK *) StackFreePointer);
}

/*$PAGE*//*
*********************************************************************************************************
*                                           HANDLE TIMER TICK ISR
*										   - void OSTickISR(void) -
*
* Description: This function is the C6x-DSP Timer0 ISR. And the timer tick should be 10~100 /sec.
*				It also offers the time tick to uC/OS-II.
**********************************************************************************************************
*/
void	OSTickISR(void)
{
	DSP_C6x_Save();

	OSIntEnter();
	
	if (OSIntNesting == 1)
		{
			OSTCBCur->OSTCBStkPtr = (OS_STK *) DSP_C6x_GetCurrentSP();
		}
			
	/* You can enable Interrupt again here, 
		if want to use nested interrupt..... */
	
	OSTimeTick();
	
	OSIntExit();
	
	DSP_C6x_Resume();
	
	asm ("	nop	5"); //important! 
			// this can avoid a stack error when compile with the optimization!
}
	
/*$PAGE*/
/*
*********************************************************************************************************
*                                       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 > 0 && OS_VERSION > 203
void  OSInitHookBegin (void)
{
}
#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 > 0 && OS_VERSION > 203
void  OSInitHookEnd (void)
{
}
#endif

/*$PAGE*//*
*********************************************************************************************************
*                                          TASK CREATION HOOK
*
* Description: This function is called when a task is created.
*
* Arguments  : ptcb   is a pointer to the task control block of the task being created.
*
* Note(s)    : 1) Interrupts are disabled during this call.
*********************************************************************************************************
*/
#if OS_CPU_HOOKS_EN > 0 
void  OSTaskCreateHook (OS_TCB *ptcb)
{
    ptcb = ptcb;                       /* Prevent compiler warning                                     */
}
#endif


/*
*********************************************************************************************************
*                                           TASK DELETION HOOK
*
* Description: This function is called when a task is deleted.
*
* Arguments  : ptcb   is a pointer to the task control block of the task being deleted.
*
* Note(s)    : 1) Interrupts are disabled during this call.
*********************************************************************************************************
*/
#if OS_CPU_HOOKS_EN > 0 
void  OSTaskDelHook (OS_TCB *ptcb)
{
    ptcb = ptcb;                       /* Prevent compiler warning                                     */
}
#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 > 0 && OS_VERSION >= 251
void  OSTaskIdleHook (void)
{
}
#endif

/*
*********************************************************************************************************
*                                           STATISTIC TASK HOOK
*
* Description: This function is called every second by uC/OS-II's statistics task.  This allows your 
*              application to add functionality to the statistics task.
*
* Arguments  : none
*********************************************************************************************************
*/

#if OS_CPU_HOOKS_EN > 0 
void  OSTaskStatHook (void)
{
}
#endif
/*
*********************************************************************************************************
*                                           TASK SWITCH HOOK
*
* Description: This function is called when a task switch is performed.  This allows you to perform other
*              operations during a context switch.
*
* Arguments  : none
*
* Note(s)    : 1) Interrupts are disabled during this call.
*              2) It is assumed that the global pointer 'OSTCBHighRdy' points to the TCB of the task that
*                 will be 'switched in' (i.e. the highest priority task) and, 'OSTCBCur' points to the 
*                 task being switched out (i.e. the preempted task).
*********************************************************************************************************
*/
#if OS_CPU_HOOKS_EN > 0 
void  OSTaskSwHook (void)
{
}
#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 > 0 && OS_VERSION > 203
void  OSTCBInitHook (OS_TCB *ptcb)
{
    ptcb = ptcb;                                           /* Prevent Compiler warning                 */
}
#endif


/*
*********************************************************************************************************
*                                               TICK HOOK
*
* Description: This function is called every tick.
*
* Arguments  : none
*
* Note(s)    : 1) Interrupts may or may not be ENABLED during this call.
*********************************************************************************************************
*/
#if OS_CPU_HOOKS_EN > 0 
void  OSTimeTickHook (void)
{	
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线影院| 久久综合久久99| 欧美一区二区三区精品| 欧美精品一区二区三区在线| 中文字幕制服丝袜成人av | 国产精品女人毛片| 首页综合国产亚洲丝袜| 成人97人人超碰人人99| 精品国产欧美一区二区| 亚洲第一成人在线| 91啦中文在线观看| 久久九九久久九九| 精品一区二区成人精品| 欧美三级一区二区| 日韩毛片一二三区| 成人性视频网站| 日韩精品一区二区三区蜜臀| 五月综合激情日本mⅴ| 99久久精品免费看| 欧美国产日韩在线观看| 国产不卡视频在线观看| 精品国精品国产| 日韩激情中文字幕| 欧美精品九九99久久| 夜夜嗨av一区二区三区中文字幕 | 欧美va亚洲va香蕉在线 | 亚洲色图欧洲色图婷婷| 国产suv一区二区三区88区| 2023国产精品| 国产精品亚洲午夜一区二区三区| 日韩免费视频一区| 青青草原综合久久大伊人精品优势| 欧美午夜精品一区二区蜜桃| 一区二区三区 在线观看视频| 91丝袜美腿高跟国产极品老师| 中文字幕一区三区| bt7086福利一区国产| 亚洲日本在线天堂| 91一区二区三区在线播放| 亚洲免费在线视频| 欧美三级电影在线看| 午夜视频一区在线观看| 日韩欧美一级二级三级久久久| 蜜桃精品在线观看| 久久影院午夜片一区| 国产一区二区三区免费播放 | 国产成人在线影院 | 一区二区三区四区五区视频在线观看| 99免费精品视频| 亚洲国产成人av网| 精品久久久影院| 成人app下载| 亚洲一区成人在线| 欧美一区二区日韩| 国产精品一区不卡| 亚洲黄色小说网站| 欧美一区二区福利在线| 国产精品18久久久久久久久| 亚洲人成7777| 91精品国产乱| 风间由美中文字幕在线看视频国产欧美| 国产精品色噜噜| 欧美日韩精品免费| 国产精品99久久久久久宅男| 亚洲毛片av在线| 精品人在线二区三区| 99久久精品免费看国产免费软件| 天天射综合影视| 国产精品久久久久影院色老大| 欧洲av在线精品| 国产成人综合网站| 亚洲成人动漫一区| 中文字幕av不卡| 欧美日本一区二区| 成人免费视频播放| 日韩av在线免费观看不卡| 久久久久久黄色| 欧美色视频一区| 成人免费av在线| 美女视频第一区二区三区免费观看网站| 日本一区二区在线不卡| 欧美日韩成人激情| av午夜精品一区二区三区| 蜜臀久久久久久久| 亚洲综合在线免费观看| 久久九九久久九九| 日韩欧美成人一区| 欧美视频精品在线观看| 波多野结衣精品在线| 久久福利视频一区二区| 亚洲一级二级三级在线免费观看| 日本一区二区综合亚洲| 欧美电视剧在线看免费| 欧美日韩精品一区视频| 99国产精品一区| 成人美女在线视频| 国产成人精品网址| 国内外成人在线| 美女网站一区二区| 奇米色一区二区| 污片在线观看一区二区| 亚洲午夜羞羞片| 亚洲国产日韩av| 一区二区三区四区视频精品免费| 中文字幕亚洲在| 国产精品美女久久久久久2018| 欧美va日韩va| 精品日韩av一区二区| 日韩精品一区国产麻豆| 欧美肥胖老妇做爰| 欧美女孩性生活视频| 欧美日韩午夜影院| 色婷婷综合在线| 日本高清无吗v一区| 色噜噜狠狠色综合欧洲selulu| 91在线免费播放| 在线观看国产一区二区| 欧美在线视频日韩| 欧美日韩国产经典色站一区二区三区 | 欧美性色黄大片| 欧美伊人久久久久久久久影院| 在线看一区二区| 欧美日韩一级黄| 91精品国产高清一区二区三区 | 亚洲一区二区五区| 亚洲一区视频在线| 午夜精品免费在线| 久久精品国产99| 国产乱人伦偷精品视频不卡 | 中文字幕不卡在线播放| 成人欧美一区二区三区黑人麻豆| 亚洲丝袜另类动漫二区| 亚洲成a人v欧美综合天堂下载 | 99精品1区2区| 欧美日韩一级片在线观看| 日韩欧美一级二级三级久久久| 久久久久久夜精品精品免费| 国产精品三级电影| 亚洲自拍偷拍图区| 蜜桃视频在线观看一区| 成人一区二区三区| 欧美男男青年gay1069videost| 日韩一级片网站| 国产精品天干天干在线综合| 亚洲美女淫视频| 久久99国产精品尤物| 成人av第一页| 欧美精品成人一区二区三区四区| 欧美大白屁股肥臀xxxxxx| 国产精品黄色在线观看| 亚洲午夜成aⅴ人片| 国产在线麻豆精品观看| 成人高清免费观看| 91精品国产手机| 国产精品乱人伦一区二区| 天天av天天翘天天综合网 | 国产欧美一区二区精品忘忧草| 一区二区三区中文字幕| 韩国v欧美v日本v亚洲v| 91久久精品日日躁夜夜躁欧美| 欧美va日韩va| 亚洲午夜免费福利视频| 国产高清不卡二三区| 91.麻豆视频| 日韩美女啊v在线免费观看| 精品一区二区三区免费毛片爱| 色综合天天综合在线视频| 久久久一区二区| 秋霞国产午夜精品免费视频| 99久久99久久精品免费观看| 精品区一区二区| 日韩av午夜在线观看| 色先锋久久av资源部| 国产精品女主播av| 国产资源在线一区| 欧美一区二区三区四区五区| 亚洲另类中文字| www.日韩在线| 国产亚洲一区二区三区四区 | 日韩中文字幕区一区有砖一区| 成年人国产精品| 国产日韩欧美亚洲| 久久超碰97人人做人人爱| 911国产精品| 性做久久久久久久久| 色欲综合视频天天天| 国产精品久久久久久久午夜片| 久88久久88久久久| 日韩一区二区精品| 日本不卡一二三| 6080日韩午夜伦伦午夜伦| 亚洲一线二线三线视频| 91免费看`日韩一区二区| 亚洲国产精品成人综合色在线婷婷| 国内偷窥港台综合视频在线播放| 欧美精品电影在线播放| 午夜精品久久久久久久蜜桃app| 欧美日韩综合在线免费观看| 婷婷开心久久网| 欧美一区二区三区在线观看|