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

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

?? port.c

?? FreeRTOS V4.2.1,增加了AVR32 UC3 和 LPC2368 的支持
?? C
字號:
/*
	FreeRTOS.org V4.2.1 - Copyright (C) 2003-2007 Richard Barry.

	This file is part of the FreeRTOS.org distribution.

	FreeRTOS.org 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.org 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.org; 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.org, 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.

	Also see http://www.SafeRTOS.com for an IEC 61508 compliant version along
	with commercial development and support options.
	***************************************************************************
*/

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

/*-----------------------------------------------------------
 * Implementation of functions defined in portable.h for the MSP430 port.
 *----------------------------------------------------------*/

/* Constants required for hardware setup.  The tick ISR runs off the ACLK, 
not the MCLK. */
#define portACLK_FREQUENCY_HZ			( ( portTickType ) 32768 )
#define portINITIAL_CRITICAL_NESTING	( ( unsigned portSHORT ) 10 )
#define portFLAGS_INT_ENABLED			( ( portSTACK_TYPE ) 0x08 )

/* We require the address of the pxCurrentTCB variable, but don't want to know
any details of its type. */
typedef void tskTCB;
extern volatile tskTCB * volatile pxCurrentTCB;

/* Each task maintains a count of the critical section nesting depth.  Each 
time a critical section is entered the count is incremented.  Each time a 
critical section is exited the count is decremented - with interrupts only 
being re-enabled if the count is zero.

usCriticalNesting will get set to zero when the scheduler starts, but must
not be initialised to zero as this will cause problems during the startup
sequence. */
volatile unsigned portSHORT usCriticalNesting = portINITIAL_CRITICAL_NESTING;
/*-----------------------------------------------------------*/


/*
 * Sets up the periodic ISR used for the RTOS tick.  This uses timer 0, but
 * could have alternatively used the watchdog timer or timer 1.
 */
void prvSetupTimerInterrupt( void );
/*-----------------------------------------------------------*/

/* 
 * Initialise the stack of a task to look exactly as if a call to 
 * portSAVE_CONTEXT had been called.
 * 
 * See the header file portable.h.
 */
portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters )
{
	/* 
		Place a few bytes of known values on the bottom of the stack. 
		This is just useful for debugging and can be included if required.

		*pxTopOfStack = ( portSTACK_TYPE ) 0x1111;
		pxTopOfStack--;
		*pxTopOfStack = ( portSTACK_TYPE ) 0x2222;
		pxTopOfStack--;
		*pxTopOfStack = ( portSTACK_TYPE ) 0x3333;
		pxTopOfStack--; 
	*/

	/* The msp430 automatically pushes the PC then SR onto the stack before 
	executing an ISR.  We want the stack to look just as if this has happened
	so place a pointer to the start of the task on the stack first - followed
	by the flags we want the task to use when it starts up. */
	*pxTopOfStack = ( portSTACK_TYPE ) pxCode;
	pxTopOfStack--;
	*pxTopOfStack = portFLAGS_INT_ENABLED;
	pxTopOfStack--;

	/* Next the general purpose registers. */
	*pxTopOfStack = ( portSTACK_TYPE ) 0x4444;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0x5555;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0x6666;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0x7777;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0x8888;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0x9999;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0xaaaa;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0xbbbb;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0xcccc;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0xdddd;
	pxTopOfStack--;
	*pxTopOfStack = ( portSTACK_TYPE ) 0xeeee;
	pxTopOfStack--;

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

	/* A variable is used to keep track of the critical section nesting.  
	This variable has to be stored as part of the task context and is 
	initially set to zero. */
	*pxTopOfStack = ( portSTACK_TYPE ) portNO_CRITICAL_SECTION_NESTING;	

	/* Return a pointer to the top of the stack we have generated so this can
	be stored in the task control block for the task. */
	return pxTopOfStack;
}
/*-----------------------------------------------------------*/

void vPortEndScheduler( void )
{
	/* It is unlikely that the MSP430 port will get stopped.  If required simply
	disable the tick interrupt here. */
}
/*-----------------------------------------------------------*/

/*
 * Hardware initialisation to generate the RTOS tick.  This uses timer 0
 * but could alternatively use the watchdog timer or timer 1. 
 */
void prvSetupTimerInterrupt( void )
{
	/* Ensure the timer is stopped. */
	TACTL = 0;

	/* Run the timer of the ACLK. */
	TACTL = TASSEL_1;

	/* Clear everything to start with. */
	TACTL |= TACLR;

	/* Set the compare match value according to the tick rate we want. */
	TACCR0 = portACLK_FREQUENCY_HZ / configTICK_RATE_HZ;

	/* Enable the interrupts. */
	TACCTL0 = CCIE;

	/* Start up clean. */
	TACTL |= TACLR;

	/* Up mode. */
	TACTL |= MC_1;
}
/*-----------------------------------------------------------*/


	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩综合精品一区二区| 久久国产成人午夜av影院| 久久美女高清视频| 精品国产乱码久久久久久1区2区| 国内精品免费**视频| 免费欧美在线视频| 日韩av一二三| 日本美女视频一区二区| 日本中文字幕一区二区有限公司| 精品美女一区二区| 精品国产一区二区三区久久久蜜月 | 国产一区二区三区久久久| 日本亚洲天堂网| 蜜臀av亚洲一区中文字幕| 日韩精品影音先锋| 91亚洲精品久久久蜜桃网站| 午夜精品久久久| 日本不卡中文字幕| 男女男精品视频网| 亚洲一区二区三区国产| 亚洲综合在线五月| 精品视频资源站| 欧美系列在线观看| 91精品国产高清一区二区三区蜜臀| 国产成人h网站| 成人午夜av在线| 日本乱人伦aⅴ精品| 国产精品夜夜爽| 99精品视频中文字幕| 在线观看一区不卡| 91麻豆精品国产91| 2020国产精品| 亚洲欧洲日产国码二区| 日韩美女一区二区三区四区| 欧美色图激情小说| 日韩欧美一级片| 国产欧美一区二区精品性| 国产精品成人一区二区三区夜夜夜 | 久久99热这里只有精品| 国产高清视频一区| 91免费版在线| 国产一区中文字幕| 99亚偷拍自图区亚洲| 欧美又粗又大又爽| 欧美一区二区国产| 国产欧美一区二区三区网站 | 国产毛片精品视频| 91一区二区在线| 欧美一区二区视频网站| 中文字幕欧美区| 欧美不卡一区二区三区四区| 国产三级一区二区三区| 夜色激情一区二区| 国产原创一区二区| 一本一道综合狠狠老| 日韩一区二区三区免费看| 国产精品天美传媒| 午夜一区二区三区视频| 午夜精品久久久久| 色菇凉天天综合网| 美洲天堂一区二卡三卡四卡视频| 久久久91精品国产一区二区精品 | 国产亚洲欧洲一区高清在线观看| www久久精品| 一级日本不卡的影视| 激情五月播播久久久精品| 成人的网站免费观看| 日韩一区二区中文字幕| 日韩亚洲欧美一区二区三区| 亚洲欧洲日韩女同| 国产最新精品精品你懂的| 在线一区二区观看| 久久久99精品免费观看不卡| 久久久99精品免费观看| 丝袜亚洲另类欧美综合| av一区二区三区四区| 国产精品一二三| 日韩欧美亚洲另类制服综合在线 | 天天色综合成人网| 成人av资源站| 久久久影院官网| 免费人成黄页网站在线一区二区 | 51久久夜色精品国产麻豆| 亚洲免费资源在线播放| 高清成人在线观看| 日韩免费性生活视频播放| 婷婷综合在线观看| 色中色一区二区| 国产精品麻豆久久久| 一区二区三区在线视频观看58| 亚洲国产日产av| 免费精品视频在线| 日本乱人伦aⅴ精品| 综合中文字幕亚洲| 不卡一区二区中文字幕| 久久久精品蜜桃| 国产一区激情在线| 久久伊99综合婷婷久久伊| 免费看欧美女人艹b| 在线不卡免费av| 亚洲成av人影院在线观看网| 在线精品视频一区二区| 日韩毛片精品高清免费| www.av精品| 国产精品国产馆在线真实露脸| 亚洲一区二区三区四区在线 | 日韩一级完整毛片| 天堂成人国产精品一区| 国产老女人精品毛片久久| 欧美成人激情免费网| 另类小说色综合网站| 日韩欧美黄色影院| 久久91精品久久久久久秒播| 欧美人牲a欧美精品| 国产欧美一区二区精品性| 国产精品一区在线观看乱码| 粉嫩aⅴ一区二区三区四区 | 欧美日韩黄色影视| 亚洲国产成人午夜在线一区| av高清久久久| 亚洲乱码国产乱码精品精的特点 | 成人黄色电影在线| 国产精品久久久久久久久图文区 | 日本高清不卡视频| 亚洲国产精品天堂| 91精品久久久久久久99蜜桃 | 国产美女精品人人做人人爽| 国产亚洲欧洲一区高清在线观看| 日本欧美在线观看| 色乱码一区二区三区88| 国产欧美久久久精品影院| 国产一区二区女| 欧美精品粉嫩高潮一区二区| 亚洲欧美一区二区久久| 欧美系列日韩一区| 久久精品国产成人一区二区三区| 欧美三级日韩三级| 久久成人综合网| 欧美一二三区在线观看| 国产激情一区二区三区| 亚洲日本青草视频在线怡红院| 国产成人午夜高潮毛片| 亚洲精品精品亚洲| 日韩欧美中文字幕一区| 丁香天五香天堂综合| 亚洲国产日韩在线一区模特| 一本久久a久久精品亚洲| 国产精品女主播av| 欧美在线一区二区三区| 狠狠色丁香久久婷婷综合丁香| 欧美日韩国产成人在线免费| 国产一区二区三区电影在线观看| 久久日韩粉嫩一区二区三区| 国内欧美视频一区二区| 亚洲精品中文字幕乱码三区| heyzo一本久久综合| 午夜精品久久久久久| 亚洲国产精品高清| 欧美高清视频一二三区| 日本美女一区二区| 中文字幕色av一区二区三区| 成人激情免费电影网址| 午夜久久久久久| 91精品一区二区三区在线观看| 日韩极品在线观看| 自拍偷拍亚洲综合| 久久综合给合久久狠狠狠97色69| 国产专区欧美精品| 亚洲大尺度视频在线观看| 国产日韩精品一区二区浪潮av| 高清日韩电视剧大全免费| 日韩精品电影一区亚洲| 亚洲欧美一区二区三区久本道91| 在线精品观看国产| 盗摄精品av一区二区三区| 日韩码欧中文字| 久久亚洲一区二区三区明星换脸| 风间由美性色一区二区三区| 日本中文字幕一区二区有限公司| 欧美videos中文字幕| 欧美在线综合视频| 久久超碰97人人做人人爱| 亚洲一区二区中文在线| 国产精品传媒在线| 欧美激情在线一区二区三区| 99视频在线观看一区三区| 精品在线你懂的| 日本欧美在线看| 亚洲va在线va天堂| 欧美zozo另类异族| 91麻豆精品国产自产在线| 欧美日韩一级片网站| 在线一区二区视频| 色呦呦一区二区三区| hitomi一区二区三区精品| 不卡一区二区中文字幕| 成人免费视频app| 国产999精品久久久久久| 国产一区二区导航在线播放| 一区二区在线观看视频|