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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? port.c

?? freertosV4.40 是一種small的嵌入式系統(tǒng)。利于嵌入式開(kāi)好者入門學(xué)習(xí)嵌入式操作系統(tǒng)。通過(guò)對(duì)于源碼的學(xué)習(xí)可以很好的掌握f(shuō)reertos的運(yùn)行機(jī)制。
?? C
字號(hào):
/*
	FreeRTOS.org V4.4.0 - 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;
}
/*-----------------------------------------------------------*/


	

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一卡2卡3卡4卡| www久久久久| 亚洲电影欧美电影有声小说| 久久综合精品国产一区二区三区| 亚洲黄色av一区| 免费黄网站欧美| 国产性做久久久久久| 国产精品嫩草影院com| 色婷婷综合久久久| 久久久美女艺术照精彩视频福利播放| 亚洲高清免费视频| 北条麻妃国产九九精品视频| 天使萌一区二区三区免费观看| 欧美一区二区免费观在线| www久久精品| 7777精品久久久大香线蕉| 蜜臀av性久久久久av蜜臀妖精| 国产女同性恋一区二区| 日韩高清一级片| 国产精品亲子伦对白| 国产欧美一区二区精品久导航| 欧美撒尿777hd撒尿| 4438x亚洲最大成人网| 国产乱色国产精品免费视频| 亚洲欧洲中文日韩久久av乱码| 蜜桃视频免费观看一区| 91国模大尺度私拍在线视频| 不卡一区中文字幕| 蜜桃一区二区三区在线观看| 奇米在线7777在线精品| 调教+趴+乳夹+国产+精品| 懂色av一区二区夜夜嗨| 成人精品电影在线观看| 日韩毛片在线免费观看| 99久久精品免费精品国产| 久久久亚洲午夜电影| www.欧美日韩国产在线| 欧美酷刑日本凌虐凌虐| 久久久五月婷婷| 亚洲成年人影院| 国产91精品免费| 欧美日韩国产区一| 久久久噜噜噜久噜久久综合| 亚洲国产视频一区二区| 国产一区二区女| 欧美日韩久久久| 国产精品每日更新在线播放网址 | 精品99999| 日韩伦理免费电影| 久久国产三级精品| 日本高清视频一区二区| 国产精品视频看| 久久精品国产秦先生| 色婷婷久久一区二区三区麻豆| 精品久久久久久无| 亚洲va天堂va国产va久| 成人动漫在线一区| 精品日韩在线观看| 午夜精品福利一区二区蜜股av| 成人教育av在线| 久久综合资源网| 青草av.久久免费一区| 欧美剧在线免费观看网站| 亚洲免费在线观看| 国产.欧美.日韩| 国产亚洲成av人在线观看导航| 美国十次综合导航| 91麻豆精品国产91久久久更新时间 | 欧美性大战久久久久久久蜜臀 | 麻豆成人91精品二区三区| 欧美三级在线播放| 亚洲一区二区三区在线看| 99热在这里有精品免费| 国产精品乱人伦一区二区| 亚洲精品一区在线观看| 久久国产麻豆精品| 日韩一卡二卡三卡四卡| 免费不卡在线观看| 欧美电视剧免费全集观看| 免费高清在线一区| 欧美xxxx老人做受| 久久国产欧美日韩精品| 久久综合五月天婷婷伊人| 久久精品999| 精品国产凹凸成av人导航| 精品一区二区三区在线播放视频| 日韩精品一区二区三区swag| 免费xxxx性欧美18vr| 欧美大片日本大片免费观看| 国产综合久久久久影院| 久久免费精品国产久精品久久久久| 国产另类ts人妖一区二区| 欧美韩国日本不卡| 色婷婷av久久久久久久| 首页国产欧美久久| 精品国产青草久久久久福利| 国产成人精品免费在线| 18成人在线观看| 欧美男男青年gay1069videost| 美女国产一区二区三区| 国产欧美日韩在线观看| 在线亚洲高清视频| 喷水一区二区三区| 国产精品私房写真福利视频| 97久久超碰国产精品| 亚洲一区二区在线免费观看视频| 欧美一区二区美女| 99精品视频一区| 男男视频亚洲欧美| 中文字幕日韩精品一区| 欧美日韩一二三| 国产乱码精品一区二区三区忘忧草 | 欧美一级专区免费大片| 成人黄色综合网站| 日韩成人一级大片| 中文字幕一区二区三中文字幕| 欧美色精品在线视频| 国产精品系列在线观看| 琪琪久久久久日韩精品| 国产精品毛片高清在线完整版| 91亚洲精品久久久蜜桃| 精品亚洲成a人在线观看| 亚洲视频电影在线| 久久天天做天天爱综合色| 欧美性三三影院| av综合在线播放| 精品一区二区三区蜜桃| 亚洲成人av中文| 日韩伦理av电影| 国产日韩欧美综合在线| 欧美成人在线直播| 欧美午夜片在线看| av男人天堂一区| 国内久久精品视频| 日韩电影免费在线| 亚洲成a人v欧美综合天堂 | 亚洲.国产.中文慕字在线| 中文字幕成人在线观看| 欧美mv日韩mv国产网站app| 欧美三级电影在线观看| 在线视频国内自拍亚洲视频| 波多野结衣欧美| 成人在线综合网| 国产成人亚洲精品青草天美 | www亚洲一区| 久久综合色8888| 欧美不卡视频一区| 日韩一级大片在线观看| 欧美一区二区成人6969| 56国语精品自产拍在线观看| 欧美性生活一区| 欧美三区在线视频| 欧美久久久影院| 欧美巨大另类极品videosbest | 免费成人美女在线观看| 日本欧美在线观看| 热久久免费视频| 青青草伊人久久| 激情偷乱视频一区二区三区| 狠狠狠色丁香婷婷综合激情| 韩日精品视频一区| 国产乱理伦片在线观看夜一区| 国产一区二区三区香蕉| 国产电影精品久久禁18| 国产麻豆成人精品| 处破女av一区二区| 色综合久久久久| 欧美日韩高清一区二区三区| 欧美日韩国产片| 精品美女被调教视频大全网站| 欧美videossexotv100| 久久久亚洲精品石原莉奈| 国产精品久久久久aaaa樱花 | 久久国产精品99精品国产| 麻豆视频一区二区| 国产成人av电影在线播放| av在线播放不卡| 欧美日韩美少妇| 久久久久国产精品厨房| 成人欧美一区二区三区| 天天影视网天天综合色在线播放| 日韩av中文在线观看| 粉嫩13p一区二区三区| 91久久精品一区二区三区| 欧美丰满少妇xxxbbb| 久久久久久久综合日本| 亚洲小少妇裸体bbw| 久久精品久久精品| 91亚洲精品久久久蜜桃网站| 欧美精品国产精品| 亚洲欧洲一区二区在线播放| 午夜精品久久久久久久99水蜜桃| 精品亚洲国产成人av制服丝袜| 色素色在线综合| 精品国产123| 亚瑟在线精品视频| 成人影视亚洲图片在线| 日韩欧美高清dvd碟片| 亚洲日本在线看| 国产成人午夜精品5599|