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

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

?? port.c

?? MCS-51的一個Free小型操作系統,在KeilC中下編譯工作
?? C
字號:
/*
	FreeRTOS.org V4.1.3 - Copyright (C) 2003-2006 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.
	***************************************************************************
*/

/* 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一区二区三区免费野_久草精品视频
久久亚洲私人国产精品va媚药| 岛国精品在线播放| 欧美三级日韩在线| 一区二区三区中文在线| 色久综合一二码| 午夜影院久久久| 日韩欧美一区在线观看| 狠狠色丁香婷婷综合| 国产欧美日韩精品在线| 99国内精品久久| 亚洲国产日韩av| 日韩精品一区二区三区四区| 成人免费视频国产在线观看| 亚洲一区二区高清| 精品国产乱码久久| 99久久夜色精品国产网站| 一区二区三区四区激情| 欧美一区二区免费观在线| 国产一区二区三区在线观看免费| 国产精品日韩精品欧美在线| 欧美三级视频在线| 极品少妇xxxx精品少妇偷拍| 1024成人网| 91精品国产综合久久精品图片| 国产一区二区主播在线| 亚洲视频一二三| 日韩欧美精品在线视频| av网站一区二区三区| 日韩av中文在线观看| 久久精品男人的天堂| 欧洲精品一区二区| 狠狠色丁香婷婷综合| 亚洲一区中文日韩| 久久久久久久久久久久久久久99| 色婷婷一区二区三区四区| 另类小说图片综合网| 最新国产成人在线观看| 日韩视频在线观看一区二区| 91蝌蚪porny| 国内外精品视频| 亚洲在线观看免费视频| 亚洲国产成人在线| 日韩一区国产二区欧美三区| 99久久er热在这里只有精品66| 日本欧美一区二区| 一区二区在线免费观看| 久久免费视频一区| 欧美日本一区二区在线观看| 成人av免费在线观看| 精品一区二区三区在线视频| 亚洲妇女屁股眼交7| 国产精品福利电影一区二区三区四区| 日韩一区二区三区电影| 欧美综合欧美视频| 成人福利视频网站| 国产麻豆精品视频| 美女脱光内衣内裤视频久久影院| 一区二区三区免费| 中文字幕一区日韩精品欧美| 久久亚洲春色中文字幕久久久| 欧美精品在线观看播放| 色天天综合久久久久综合片| 不卡av在线免费观看| 国产成人在线免费| 琪琪久久久久日韩精品| 亚洲国产一二三| 亚洲精品乱码久久久久| 亚洲欧美另类久久久精品2019| 国产欧美日本一区视频| 国产校园另类小说区| 337p粉嫩大胆噜噜噜噜噜91av| 91精品国产乱码久久蜜臀| 欧美日韩激情在线| 欧美视频一二三区| 在线中文字幕一区| 色综合天天天天做夜夜夜夜做| 成人av网站免费观看| 成人免费毛片app| 99麻豆久久久国产精品免费| 成人av第一页| 色天使久久综合网天天| 91黄色免费看| 欧美日韩久久久一区| 欧美群妇大交群中文字幕| 欧美日韩一区二区在线观看视频| 欧美在线|欧美| 欧美精品成人一区二区三区四区| 91精品视频网| 日韩一二三区不卡| 久久蜜桃av一区精品变态类天堂 | 亚洲国产成人porn| 亚洲高清免费视频| 蜜桃久久精品一区二区| 国产一区二区在线看| 国产精品456| 91丨九色丨尤物| 欧美丝袜第三区| 日韩欧美国产不卡| 国产精品热久久久久夜色精品三区 | 久久久国产午夜精品| 国产情人综合久久777777| 最新不卡av在线| 日韩精品1区2区3区| 国产美女精品一区二区三区| 99久久综合99久久综合网站| 欧美色图片你懂的| 欧美精品一区二区精品网| 欧美激情综合在线| 一级特黄大欧美久久久| 麻豆精品一区二区三区| 99久久国产免费看| 91精品国产欧美一区二区成人| 久久精品视频在线看| 亚洲柠檬福利资源导航| 青青草伊人久久| 成人av第一页| 日韩一区二区三区观看| 亚洲欧洲精品一区二区精品久久久 | 精品处破学生在线二十三| 中文字幕中文字幕一区二区| 日韩精品一二区| 成人综合在线观看| 欧美丰满嫩嫩电影| 国产精品色哟哟| 蜜桃视频第一区免费观看| 色视频一区二区| 国产日产欧产精品推荐色| 日韩电影在线免费观看| www.亚洲国产| 精品国产精品一区二区夜夜嗨| 亚洲同性gay激情无套| 紧缚奴在线一区二区三区| 欧美综合欧美视频| 国产精品天天摸av网| 蜜桃一区二区三区在线| 欧美视频一区在线观看| 中文字幕一区二区三| 狠狠色丁香九九婷婷综合五月| 欧美日韩精品欧美日韩精品一| 中日韩免费视频中文字幕| 精品无人码麻豆乱码1区2区| 精品视频在线免费| 国产精品视频你懂的| 久久国产婷婷国产香蕉| 欧美日韩1区2区| 一区二区在线观看视频| www.久久精品| 国产欧美一区二区精品秋霞影院| 日韩高清国产一区在线| 欧美午夜免费电影| 亚洲欧美色一区| 播五月开心婷婷综合| 国产欧美精品区一区二区三区| 狠狠色狠狠色综合系列| 精品蜜桃在线看| 欧美96一区二区免费视频| 欧美久久免费观看| 亚洲国产精品一区二区www在线| 91蝌蚪porny九色| 亚洲啪啪综合av一区二区三区| 高潮精品一区videoshd| 久久精品在线免费观看| 国内精品视频一区二区三区八戒 | 欧美日韩国产经典色站一区二区三区| 中文字幕制服丝袜一区二区三区 | 亚洲日本在线看| 99国产精品99久久久久久| 中文字幕高清不卡| 成人永久免费视频| 国产精品热久久久久夜色精品三区 | 日韩精品一区二区三区视频在线观看 | 欧美激情中文字幕| 懂色一区二区三区免费观看| 久久精品免视看| 波多野结衣在线一区| 国产精品久久久久国产精品日日| 成人免费va视频| 亚洲女人小视频在线观看| 色婷婷国产精品久久包臀| 亚洲国产精品欧美一二99| 91麻豆精品国产91久久久更新时间| 视频精品一区二区| 日韩美女在线视频| 国产成人综合亚洲91猫咪| 国产精品久久久久久久裸模| 日本道免费精品一区二区三区| 亚洲线精品一区二区三区| 日韩午夜在线影院| 国产精品一线二线三线精华| 中文字幕一区二区三| 欧美午夜在线观看| 久久国内精品自在自线400部| 国产人伦精品一区二区| 色老综合老女人久久久| 丝袜国产日韩另类美女| 久久综合九色综合欧美亚洲| 97成人超碰视| 奇米亚洲午夜久久精品| 国产欧美日韩在线| 欧美色视频一区|