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

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

?? os_cpu_c.c

?? ARM7 based on STR71x, UCOS migration
?? C
字號:
/*********************************************************************************************************
												uC/OS-II
										The Real-Time Kernel

								(c) Copyright 1992-2004, Micrium, Weston, FL
											All Rights Reserved

												ARM7 Port

 File : OS_CPU_C.C
 By   : Yujun Huang
********************************************************************************************************/

#define  OS_CPU_GLOBALS
#include "ucos_ii.h"
//#include "71x_map.h"

#define SYS_MODE	(0x0000001FL)
#define USER_MODE	(0x00000010L)

/********************************************************************************************************
										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

			  p_arg			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)	: 1) Interrupts are enabled when your task starts executing.
			  2) All tasks run in SYS mode.
********************************************************************************************************/
OS_STK *OSTaskStkInit (void (*task)(void *pd), void *pdata, OS_STK *ptos, INT16U opt)
{
	OS_STK *stk;

	opt		 = opt;							// 'opt'沒有使用。作用是避免編譯器警告('opt' is not used, prevent warning)
	stk		 = ptos;						// 獲取堆棧指針(Load stack pointer)

	*(stk)	 = (OS_STK)task;				// Entry Point(PC)
	*(--stk) = (INT32U)0x14141414L;			// R14 (LR)

	*(--stk) = (INT32U)0x12121212L;			// R12
	*(--stk) = (INT32U)0x11111111L;			// R11
	*(--stk) = (INT32U)0x10101010L;			// R10
	*(--stk) = (INT32U)0x09090909L;			// R9
	*(--stk) = (INT32U)0x08080808L;			// R8
	*(--stk) = (INT32U)0x07070707L;			// R7
	*(--stk) = (INT32U)0x06060606L;			// R6
	*(--stk) = (INT32U)0x05050505L;			// R5
	*(--stk) = (INT32U)0x04040404L;			// R4
	*(--stk) = (INT32U)0x03030303L;			// R3
	*(--stk) = (INT32U)0x02020202L;			// R2
	*(--stk) = (INT32U)0x01010101L;			// R1
	*(--stk) = (INT32U)pdata;				// R0 : argument(第一個參數使用R0傳遞)
//	*(--stk) = (INT32U)ARM_SYS_MODE;		// CPSR  允許 IRQ, FIQ 中斷(Enable both IRQ and FIQ interrupts)
	*(--stk) = (INT32U)USER_MODE;			// CPSR  允許 IRQ, FIQ 中斷(Enable both IRQ and FIQ interrupts)
	return (stk);
}

#if OS_CPU_HOOKS_EN
/********************************************************************************************************
										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.
********************************************************************************************************/
void  OSTaskCreateHook (OS_TCB *ptcb)
{
    ptcb = ptcb;						// Prevent compiler warning
//	(void)ptcb;							// Prevent compiler warning
}

/********************************************************************************************************
										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.
********************************************************************************************************/
void  OSTaskDelHook (OS_TCB *ptcb)
{
    ptcb = ptcb;						// Prevent compiler warning
//	(void)ptcb;							// Prevent compiler warning
}

/********************************************************************************************************
											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).
********************************************************************************************************/
void  OSTaskSwHook (void)
{

}

/********************************************************************************************************
											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
********************************************************************************************************/
void  OSTaskStatHook (void)
{
}

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

/********************************************************************************************************
											OS_TCBInit() 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.
********************************************************************************************************/
void  OSTCBInitHook (OS_TCB *ptcb)
{
    ptcb = ptcb;						// Prevent compiler warning
//	(void)ptcb;							// Prevent Compiler warning
}

/********************************************************************************************************
											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.
********************************************************************************************************/
void OSTaskIdleHook (void)
{
}

/********************************************************************************************************
										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.
********************************************************************************************************/
void  OSInitHookBegin (void)
{
}

/********************************************************************************************************
										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.
********************************************************************************************************/
void  OSInitHookEnd (void)
{
}

/********************************************************************************************************
							INTERRUPT DISABLE TIME MEASUREMENT, START
********************************************************************************************************/
/*
void  OS_CPU_IntDisMeasInit (void)
{
	OS_CPU_IntDisMeasNestingCtr = 0;
	OS_CPU_IntDisMeasCntsEnter  = 0;
	OS_CPU_IntDisMeasCntsExit   = 0;
	OS_CPU_IntDisMeasCntsMax    = 0;
	OS_CPU_IntDisMeasCntsDelta  = 0;
	OS_CPU_IntDisMeasCntsOvrhd  = 0;
	OS_CPU_IntDisMeasStart();								// Measure the overhead of the functions
	OS_CPU_IntDisMeasStop();
	OS_CPU_IntDisMeasCntsOvrhd  = OS_CPU_IntDisMeasCntsDelta;
}

void  OS_CPU_IntDisMeasStart (void)
{
	OS_CPU_IntDisMeasNestingCtr++;
	if (OS_CPU_IntDisMeasNestingCtr == 1) {					// Only measure at the first nested level
		OS_CPU_IntDisMeasCntsEnter = OS_CPU_IntDisMeasTmrRd();
	}
}

void  OS_CPU_IntDisMeasStop (void)
{
	OS_CPU_IntDisMeasNestingCtr--;									// Decrement nesting ctr
	if (OS_CPU_IntDisMeasNestingCtr == 0) {
		OS_CPU_IntDisMeasCntsExit  = OS_CPU_IntDisMeasTmrRd();
		OS_CPU_IntDisMeasCntsDelta = OS_CPU_IntDisMeasCntsExit - OS_CPU_IntDisMeasCntsEnter;
		if (OS_CPU_IntDisMeasCntsDelta > OS_CPU_IntDisMeasCntsOvrhd) {	// Ensure overhead < delta
			OS_CPU_IntDisMeasCntsDelta -= OS_CPU_IntDisMeasCntsOvrhd;
		}
		else {
			OS_CPU_IntDisMeasCntsDelta  = OS_CPU_IntDisMeasCntsOvrhd;
		}

		if (OS_CPU_IntDisMeasCntsDelta > OS_CPU_IntDisMeasCntsMax) {	// Track MAXIMUM
			OS_CPU_IntDisMeasCntsMax = OS_CPU_IntDisMeasCntsDelta;
		}
	}
}
*/
/*
#if OS_CRITICAL_METHOD == 3                      // Allocate storage for CPU status register
    OS_CPU_SR  cpu_sr;
#endif    

OS_CPU_SR OS_CPU_ICR_Save(void)
{
	cpu_sr = EIC->ICR;
	EIC->ICR = 3;
	return cpu_sr;
}

void OS_CPU_ICR_Restore(OS_CPU_SR cpu_sr)
{
	EIC->ICR = cpu_sr;
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91黄色激情网站| 国产一区免费电影| 亚洲欧美日韩在线播放| 国产午夜精品在线观看| 欧美大片国产精品| 欧美一级免费观看| 欧美一级搡bbbb搡bbbb| 91精品国产综合久久香蕉麻豆| 在线亚洲精品福利网址导航| 日本大香伊一区二区三区| k8久久久一区二区三区 | 日韩精品电影一区亚洲| 亚洲午夜私人影院| 亚洲国产欧美在线| 午夜精品在线看| 日本不卡在线视频| 奇米在线7777在线精品| 三级在线观看一区二区| 亚洲国产裸拍裸体视频在线观看乱了 | 日韩精品亚洲一区| 中文字幕一区二区三| 免费欧美高清视频| 久久新电视剧免费观看| 久久久久久久久免费| 日韩欧美第一区| 久久久久国产精品麻豆ai换脸 | 亚洲视频 欧洲视频| 欧美激情综合在线| 久久久九九九九| 久久精品人人做| 欧美极品xxx| 中文字幕一区二区三区精华液| 1000精品久久久久久久久| 精品国产一区二区国模嫣然| 久久久不卡影院| 国产欧美一区视频| 亚洲欧洲无码一区二区三区| 中文字幕亚洲一区二区va在线| 国产精品久久久久久亚洲伦| 亚洲国产cao| 日韩精品成人一区二区三区| 国产精品2024| 播五月开心婷婷综合| 国产在线播放一区| 欧美国产日产图区| 欧美一区二区三区喷汁尤物| 国产午夜精品理论片a级大结局 | 国产情人综合久久777777| 国产午夜精品一区二区三区视频| 亚洲美女免费视频| 天天操天天综合网| 激情五月激情综合网| 91香蕉国产在线观看软件| 日本道精品一区二区三区| 欧美电视剧在线看免费| 国产三区在线成人av| 亚洲一区二区视频在线| 奇米亚洲午夜久久精品| 免费在线观看不卡| 国产精品一区久久久久| 国产精品黄色在线观看| 五月综合激情日本mⅴ| 另类成人小视频在线| 91一区一区三区| 欧美日韩极品在线观看一区| 国产露脸91国语对白| 91黄视频在线| 国产69精品一区二区亚洲孕妇| 91麻豆自制传媒国产之光| 国产一区二区精品在线观看| 欧美午夜视频网站| 久久综合999| 日韩国产欧美在线视频| 从欧美一区二区三区| 欧美一级淫片007| 亚洲精选在线视频| 成人黄色777网| 日本亚洲最大的色成网站www| 久久久久久久久久久电影| 国产精品99久| 久久久综合视频| 全国精品久久少妇| 精品国产一区二区三区久久影院 | 久久老女人爱爱| 日本美女一区二区| 欧美最猛性xxxxx直播| 日韩免费观看2025年上映的电影 | 久久影院视频免费| 中文字幕一区二区三区在线播放| 日韩av中文字幕一区二区三区| 成人激情免费网站| 欧美精品欧美精品系列| 国产精品污污网站在线观看| 日韩电影在线一区| 成人av综合一区| 日韩欧美123| 一二三四区精品视频| 国产成人精品综合在线观看| 欧美一级日韩免费不卡| 色综合天天综合色综合av| 欧美日本视频在线| 欧美国产一区二区在线观看| 韩国精品主播一区二区在线观看| 欧美三级日韩三级国产三级| 国产精品欧美极品| 久久99久久精品欧美| 欧美日韩www| 亚洲精品国产无天堂网2021 | 99久久99久久免费精品蜜臀| 欧美电视剧免费观看| 午夜视频一区二区| av电影在线观看一区| 精品国产伦一区二区三区免费| 天天色天天操综合| 欧美午夜精品理论片a级按摩| 中文av一区二区| 国产九九视频一区二区三区| 91精品国产欧美日韩| 自拍偷拍欧美精品| 91丨九色丨尤物| 一区在线观看免费| 高清在线不卡av| 国产三级三级三级精品8ⅰ区| 久久99精品一区二区三区| 欧美精品1区2区3区| 亚洲二区在线视频| 欧美性色综合网| 亚洲高清视频中文字幕| 一本色道**综合亚洲精品蜜桃冫| 中文字幕亚洲成人| 99精品久久只有精品| 中文字幕在线不卡视频| 国产麻豆精品在线| www日韩大片| 不卡的电影网站| 日韩一区有码在线| 91亚洲午夜精品久久久久久| 一区二区三区日韩精品视频| 97精品国产97久久久久久久久久久久| 国产精品视频一二三| av电影天堂一区二区在线观看| 国产精品久久久久久久岛一牛影视 | 国产日韩欧美高清在线| 成人自拍视频在线观看| 国产精品全国免费观看高清 | 亚洲最新视频在线观看| 在线观看区一区二| 亚洲第一在线综合网站| 91老司机福利 在线| 一区二区三区四区蜜桃| 欧美三级蜜桃2在线观看| 五月综合激情日本mⅴ| 制服丝袜中文字幕一区| 久久国内精品视频| 亚洲国产精品传媒在线观看| 91麻豆国产在线观看| 一区二区三区电影在线播| 欧美日韩亚洲综合| 麻豆精品一区二区综合av| 久久久久久久久久久久久夜| 99久久免费精品| 亚洲一区二区三区四区在线| 91福利国产精品| 五月激情六月综合| 国产亚洲欧美色| 91女神在线视频| 免费观看成人av| 欧美国产乱子伦 | 欧美一卡二卡在线| 高清免费成人av| 午夜久久久久久| 国产欧美精品一区二区三区四区| 一本到不卡精品视频在线观看| 日韩av一二三| 国产精品久久久久影视| 91色porny在线视频| 亚洲sss视频在线视频| 精品久久久久99| 91色综合久久久久婷婷| 日韩成人av影视| 国产精品乱码久久久久久| 日本高清不卡aⅴ免费网站| 九九九久久久精品| 国产午夜精品理论片a级大结局 | 日韩一区二区三区视频在线观看| 国产成人免费网站| 午夜视频一区二区| **性色生活片久久毛片| 日韩精品一区二区三区中文精品| 99re热视频这里只精品| 免费欧美在线视频| 亚洲精品一二三区| 久久久欧美精品sm网站| 欧美天天综合网| 成人黄色一级视频| 欧美aⅴ一区二区三区视频| 国产亚洲一区二区三区| 欧美午夜精品理论片a级按摩| 一本大道久久a久久精二百| 精品亚洲欧美一区|