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

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

?? port.c

?? FREE_RTOS一個FREE的小型操作系統.
?? C
字號:
/*
	FreeRTOS V3.2.0 - Copyright (C) 2003, 2004 Richard Barry.

	This file is part of the FreeRTOS distribution.

	FreeRTOS is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your option) any later version.

	FreeRTOS is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with FreeRTOS; if not, write to the Free Software
	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

	A special exception to the GPL can be applied should you wish to distribute
	a combined work that includes FreeRTOS, without being obliged to provide
	the source code for any proprietary components.  See the licensing section 
	of http://www.FreeRTOS.org for full details of how and when the exception
	can be applied.

	***************************************************************************
	See http://www.FreeRTOS.org for documentation, latest information, license 
	and contact details.  Please ensure to read the configuration and relevant 
	port sections of the online documentation.
	***************************************************************************
*/


/*-----------------------------------------------------------
 * Implementation of functions defined in portable.h for the ARM7 port.
 *
 * Components that can be compiled to either ARM or THUMB mode are
 * contained in this file.  The ISR routines, which can only be compiled
 * to ARM mode are contained in portISR.c.
 *----------------------------------------------------------*/

/*
	Changes from V2.5.2
		
	+ ulCriticalNesting is now saved as part of the task context, as is 
	  therefore added to the initial task stack during pxPortInitialiseStack.
*/


/* Standard includes. */
#include <stdlib.h>

/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"

/* Constants required to setup the task context. */
#define portINITIAL_SPSR				( ( portSTACK_TYPE ) 0x1f ) /* System mode, ARM mode, interrupts enabled. */
#define portTHUMB_MODE_BIT				( ( portSTACK_TYPE ) 0x20 )
#define portINSTRUCTION_SIZE			( ( portSTACK_TYPE ) 4 )
#define portNO_CRITICAL_SECTION_NESTING	( ( portSTACK_TYPE ) 0 )

/* Constants required to setup the tick ISR. */
#define portENABLE_TIMER			( ( unsigned portCHAR ) 0x01 )
#define portPRESCALE_VALUE			0x00
#define portINTERRUPT_ON_MATCH		( ( unsigned portLONG ) 0x01 )
#define portRESET_COUNT_ON_MATCH	( ( unsigned portLONG ) 0x02 )

/* Constants required to setup the PIT. */
#define portPIT_CLOCK_DIVISOR			( ( unsigned portLONG ) 16 )
#define portPIT_COUNTER_VALUE			( ( ( configCPU_CLOCK_HZ / portPIT_CLOCK_DIVISOR ) / 1000UL ) * portTICK_RATE_MS )

/*-----------------------------------------------------------*/

/* Setup the timer to generate the tick interrupts. */
static void prvSetupTimerInterrupt( void );

/* 
 * The scheduler can only be started from ARM mode, so 
 * vPortISRStartFirstSTask() is defined in portISR.c. 
 */
extern void vPortISRStartFirstTask( void );

/*-----------------------------------------------------------*/

/* 
 * Initialise the stack of a task to look exactly as if a call to 
 * portSAVE_CONTEXT had been called.
 *
 * See header file for description. 
 */
portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters )
{
portSTACK_TYPE *pxOriginalTOS;

	pxOriginalTOS = pxTopOfStack;

	/* Setup the initial stack of the task.  The stack is set exactly as 
	expected by the portRESTORE_CONTEXT() macro. */

	/* First on the stack is the return address - which in this case is the
	start of the task.  The offset is added to make the return address appear
	as it would within an IRQ ISR. */
	*pxTopOfStack = ( portSTACK_TYPE ) pxCode + portINSTRUCTION_SIZE;		
	pxTopOfStack--;

	*pxTopOfStack = ( portSTACK_TYPE ) 0xaaaaaaaa;	/* R14 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) pxOriginalTOS; /* Stack used when task starts goes in R13. */
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0x12121212;	/* R12 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x11111111;	/* R11 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x10101010;	/* R10 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x09090909;	/* R9 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x08080808;	/* R8 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x07070707;	/* R7 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x06060606;	/* R6 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x05050505;	/* R5 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x04040404;	/* R4 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x03030303;	/* R3 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x02020202;	/* R2 */
	pxTopOfStack--;	
	*pxTopOfStack = ( portSTACK_TYPE ) 0x01010101;	/* R1 */
	pxTopOfStack--;	

	/* When the task starts is will expect to find the function parameter in
	R0. */
	*pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */
	pxTopOfStack--;

	/* The last thing onto the stack is the status register, which is set for
	system mode, with interrupts enabled. */
	*pxTopOfStack = ( portSTACK_TYPE ) portINITIAL_SPSR;

	#ifdef THUMB_INTERWORK
	{
		/* We want the task to start in thumb mode. */
		*pxTopOfStack |= portTHUMB_MODE_BIT;
	}
	#endif

	pxTopOfStack--;

	/* Some optimisation levels use the stack differently to others.  This 
	means the interrupt flags cannot always be stored on the stack and will
	instead be stored in a variable, which is then saved as part of the
	tasks context. */
	*pxTopOfStack = portNO_CRITICAL_SECTION_NESTING;

	return pxTopOfStack;
}
/*-----------------------------------------------------------*/

portBASE_TYPE xPortStartScheduler( void )
{
	/* Start the timer that generates the tick ISR.  Interrupts are disabled
	here already. */
	prvSetupTimerInterrupt();

	/* Start the first task. */
	vPortISRStartFirstTask();	

	/* Should not get here! */
	return 0;
}
/*-----------------------------------------------------------*/

void vPortEndScheduler( void )
{
	/* It is unlikely that the ARM port will require this function as there
	is nothing to return to.  */
}
/*-----------------------------------------------------------*/

/*
 * Setup the timer 0 to generate the tick interrupts at the required frequency.
 */
static void prvSetupTimerInterrupt( void )
{
AT91PS_PITC pxPIT = AT91C_BASE_PITC;

	/* Setup the AIC for PIT interrupts.  The interrupt routine chosen depends
	on whether the preemptive or cooperative scheduler is being used. */
	#if configUSE_PREEMPTION == 0

		AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_SYS, AT91C_AIC_PRIOR_HIGHEST, AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, ( void (*)(void) ) vPortNonPreemptiveTick );

	#else
		
		extern void ( vPreemptiveTick )( void );
		AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_SYS, AT91C_AIC_PRIOR_HIGHEST, AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, ( void (*)(void) ) vPreemptiveTick );

	#endif

	/* Configure the PIT period. */
	pxPIT->PITC_PIMR = AT91C_SYSC_PITEN | AT91C_SYSC_PITIEN | portPIT_COUNTER_VALUE;

	/* Enable the interrupt.  Global interrupts are disables at this point so 
	this is safe. */
	AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_SYS );
}
/*-----------------------------------------------------------*/



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人做爰69片免费看网站| 99r国产精品| 波多野结衣中文字幕一区二区三区| 99久久精品情趣| 欧美大片在线观看一区| 亚洲欧美日韩国产成人精品影院| 蜜桃一区二区三区在线观看| 欧美一区二区三区免费视频| 国产精品网站在线| 久久国产精品露脸对白| 欧美天天综合网| 国产精品美女一区二区在线观看| 蜜臀精品久久久久久蜜臀| 91猫先生在线| 国产精品美女一区二区三区| 国产一区在线观看麻豆| 欧美男人的天堂一二区| 亚洲激情网站免费观看| 国产成人啪午夜精品网站男同| 欧美一区二区福利在线| 一区二区欧美国产| 97国产精品videossex| 久久久久久久一区| 麻豆久久久久久| 日韩欧美亚洲国产精品字幕久久久| 亚洲人成精品久久久久久| 国产成人av资源| 久久精品人人做人人爽人人| 奇米精品一区二区三区四区| 8x8x8国产精品| 午夜久久久久久电影| 99精品国产99久久久久久白柏| 国产亚洲婷婷免费| 国产成人精品网址| 国产精品视频一二三区| 成人开心网精品视频| 亚洲国产精品成人久久综合一区| 国产激情一区二区三区桃花岛亚洲| 日韩亚洲欧美高清| 九一久久久久久| 精品播放一区二区| 国产激情一区二区三区| 国产精品欧美经典| 97久久久精品综合88久久| 亚洲乱码国产乱码精品精小说| 色婷婷久久一区二区三区麻豆| 亚洲人成网站精品片在线观看| 国产亚洲va综合人人澡精品| 国产一区二区在线看| 中文字幕精品综合| 97久久精品人人澡人人爽| 亚洲精选一二三| 欧美女孩性生活视频| 美日韩黄色大片| 国产欧美日韩精品一区| 97久久精品人人做人人爽| 亚洲图片欧美一区| 91精品国产高清一区二区三区蜜臀 | 久久久久久久久久美女| 成人免费视频app| 一区二区三区中文字幕| 88在线观看91蜜桃国自产| 国产一区美女在线| 亚洲欧美精品午睡沙发| 欧美一区二区三区小说| 国产乱人伦偷精品视频免下载| 国产精品电影一区二区| 欧美日韩一区二区在线视频| 久久成人av少妇免费| 亚洲欧洲日韩女同| 欧美剧情片在线观看| 国产一区二区三区电影在线观看| 亚洲欧洲成人自拍| 日韩限制级电影在线观看| 成人夜色视频网站在线观看| 亚洲一区二区三区在线播放| 欧美精品一区二区在线播放| 色综合天天视频在线观看| 美女在线视频一区| 亚洲欧美日韩久久| www久久久久| 欧美日韩亚洲另类| 成人av小说网| 捆绑紧缚一区二区三区视频| 亚洲天堂a在线| 日韩欧美国产电影| 欧美羞羞免费网站| 成人丝袜高跟foot| 国内精品免费在线观看| 午夜精品一区二区三区三上悠亚 | 天堂在线亚洲视频| 国产农村妇女毛片精品久久麻豆 | 亚洲激情成人在线| 久久久不卡影院| 欧美一区二区三区视频在线观看| 99久久久精品| 国产91富婆露脸刺激对白| 日韩成人一级片| 亚洲综合激情网| 亚洲视频香蕉人妖| 中文字幕在线视频一区| 日韩精品专区在线| 91精品国产综合久久香蕉麻豆| 色欧美片视频在线观看在线视频| 国产黄色精品网站| 国产在线精品不卡| 精品一区二区成人精品| 麻豆专区一区二区三区四区五区| 亚洲国产成人av网| 亚洲国产精品自拍| 亚洲国产中文字幕在线视频综合| 亚洲丝袜制服诱惑| 亚洲欧美区自拍先锋| 亚洲色图一区二区三区| 亚洲日本乱码在线观看| 最近日韩中文字幕| 国产精品美女久久久久久| 国产女人18水真多18精品一级做| 久久久久久久久97黄色工厂| 久久综合色8888| 久久午夜国产精品| 国产日韩精品一区二区三区在线| 国产欧美精品日韩区二区麻豆天美| 久久综合九色综合97婷婷| 久久精品一区二区三区av| 国产午夜精品理论片a级大结局| 精品乱人伦一区二区三区| www激情久久| 中文字幕乱码一区二区免费| 中文字幕人成不卡一区| 亚洲免费三区一区二区| 亚洲国产精品综合小说图片区| 亚洲超碰97人人做人人爱| 欧美aⅴ一区二区三区视频| 免费观看在线综合| 国产精品99久久久| av在线综合网| 欧美日韩精品一区视频| 亚洲欧美综合在线精品| 亚洲精品国产一区二区三区四区在线| 中文字幕亚洲一区二区av在线 | 99久久精品国产麻豆演员表| 91视视频在线直接观看在线看网页在线看| 成人激情小说乱人伦| 在线中文字幕不卡| 欧美日韩高清不卡| 精品少妇一区二区三区| 国产精品私人自拍| 午夜a成v人精品| 国产曰批免费观看久久久| 成人午夜av在线| 欧美日韩国产精品自在自线| 久久综合国产精品| 亚洲激情一二三区| 国产一区欧美日韩| 色婷婷综合在线| 欧美成人一区二区三区| 亚洲图片激情小说| 九九久久精品视频| 91美女在线看| 日韩视频免费观看高清完整版在线观看 | 久久综合中文字幕| 国产黄人亚洲片| 99精品在线免费| 精品国产污污免费网站入口| 中文字幕在线播放不卡一区| 日本欧美一区二区在线观看| 高清久久久久久| 91精品婷婷国产综合久久| 国产精品久久久久久久午夜片| 亚洲v精品v日韩v欧美v专区| 国产高清成人在线| 欧美一卡二卡在线| 亚洲四区在线观看| 国产成人一级电影| 日韩一级片在线播放| 一区二区在线观看视频在线观看| 国产一区二区视频在线播放| 欧美日韩精品欧美日韩精品| 中文字幕五月欧美| 国产乱子轮精品视频| 欧美一区二区三区四区五区| 亚洲精品乱码久久久久久| 国产高清不卡一区| 欧美片网站yy| 亚洲国产精品久久人人爱蜜臀| 国产精品中文字幕日韩精品| 欧美乱妇15p| 亚洲午夜久久久久中文字幕久| 成人免费福利片| 久久久777精品电影网影网 | av一二三不卡影片| 国产婷婷精品av在线| 国内不卡的二区三区中文字幕| 91精品国产乱码| 日韩国产精品大片| 日韩一区二区精品葵司在线| 天堂久久一区二区三区| 欧美国产精品一区| 国产成人综合在线观看|