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

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

?? port.c

?? freertosV4.40 是一種small的嵌入式系統。利于嵌入式開好者入門學習嵌入式操作系統。通過對于源碼的學習可以很好的掌握freertos的運行機制。
?? C
字號:
/*
	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;
}
/*-----------------------------------------------------------*/


	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品bt天堂精选| 久久只精品国产| 色综合久久综合网欧美综合网| 国产精品99久久久久久久女警| 韩国精品久久久| 国产成人精品aa毛片| 国产精品自拍在线| 粉嫩av一区二区三区粉嫩 | 日韩伦理av电影| 国产精品国产三级国产aⅴ原创| 亚洲国产经典视频| 一区二区三区精品在线| 午夜私人影院久久久久| 蜜臀精品久久久久久蜜臀| 久久精品国产99久久6| 国产成都精品91一区二区三| 成人国产精品免费观看动漫 | 欧美人妖巨大在线| 在线电影欧美成精品| 日韩免费性生活视频播放| 国产欧美精品在线观看| 亚洲女厕所小便bbb| 午夜影院久久久| 国内不卡的二区三区中文字幕 | 久久91精品久久久久久秒播| 国产一区二区三区免费观看| 不卡的av网站| 3d动漫精品啪啪1区2区免费| 国产欧美日韩视频一区二区| 亚洲一区自拍偷拍| 国产精品888| 在线欧美小视频| 久久理论电影网| 一区二区三区日韩精品| 久久国产精品露脸对白| 一本到不卡精品视频在线观看| 欧美精品一级二级| 国产精品国产成人国产三级| 日本美女一区二区三区| 91香蕉视频在线| 欧美电视剧在线看免费| 亚洲免费伊人电影| 国产酒店精品激情| 欧美巨大另类极品videosbest| 日本一区二区三级电影在线观看| 五月天精品一区二区三区| 成人一级黄色片| 日韩视频免费观看高清在线视频| 1024成人网色www| 精品一区二区日韩| 欧美人狂配大交3d怪物一区 | 欧美日韩国产精品成人| 国产精品入口麻豆九色| 久色婷婷小香蕉久久| 欧美视频一区二| 亚洲日本欧美天堂| 国产99精品国产| 久久日韩粉嫩一区二区三区| 免费成人美女在线观看.| 欧美视频日韩视频在线观看| 自拍偷拍亚洲欧美日韩| 国产·精品毛片| 欧美激情自拍偷拍| 国产福利一区二区三区视频| 精品国产人成亚洲区| 日本一道高清亚洲日美韩| 欧美午夜精品电影| 亚洲国产欧美在线| 欧美日韩一区 二区 三区 久久精品 | 国产欧美综合色| 国产一区二区三区在线观看精品 | 国产中文字幕精品| 欧美一级爆毛片| 免费成人av在线| 精品国产亚洲在线| 国产激情视频一区二区在线观看| 欧美成人高清电影在线| 久久99精品国产麻豆婷婷| 欧美大片国产精品| 激情六月婷婷久久| 国产欧美日韩在线| 99亚偷拍自图区亚洲| 日韩伦理免费电影| 欧美系列一区二区| 日本中文字幕一区二区视频| 欧美成人a∨高清免费观看| 国产一区二区三区综合| 欧美精品一区视频| www.久久精品| 亚洲国产乱码最新视频| 欧美大片一区二区三区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲特级片在线| 欧美日韩在线一区二区| 免费久久精品视频| 久久精品亚洲麻豆av一区二区| 成人午夜精品在线| 亚洲成a天堂v人片| 久久免费视频一区| 91激情在线视频| 日产国产欧美视频一区精品 | 色94色欧美sute亚洲线路一久 | 成人白浆超碰人人人人| 亚洲黄色av一区| 欧美一区二区免费观在线| 国产丶欧美丶日本不卡视频| 中文字幕一区二区不卡| 日韩一级精品视频在线观看| 成人免费三级在线| 婷婷开心激情综合| 国产精品三级av在线播放| 欧美日韩www| jiyouzz国产精品久久| 人禽交欧美网站| 亚洲视频在线一区二区| 日韩欧美专区在线| 一本色道久久综合亚洲91| 国内精品久久久久影院一蜜桃| 一区二区三区在线观看欧美| 精品国产sm最大网站免费看| 在线观看免费成人| 国产91色综合久久免费分享| 午夜影院在线观看欧美| 亚洲欧洲av一区二区三区久久| 日韩精品一区二区在线| 欧美中文字幕不卡| av电影在线观看一区| 国产一区二区三区免费观看| 欧美aaaaaa午夜精品| 亚洲电影第三页| 一区二区三区91| 成人免费视频在线观看| 中文字幕av一区 二区| 欧美精品一区在线观看| 欧美一区二区三区喷汁尤物| 色爱区综合激月婷婷| 91在线观看美女| 国产99精品在线观看| 国产一区视频网站| 久久99久国产精品黄毛片色诱| 亚洲观看高清完整版在线观看| 亚洲美女偷拍久久| 中文字幕成人在线观看| 国产日韩欧美制服另类| 久久精品男人天堂av| 国产色一区二区| 欧美激情在线看| 久久久精品天堂| 中文字幕乱码日本亚洲一区二区| 久久久综合九色合综国产精品| 欧美一区二区三区免费视频| 91麻豆精品国产综合久久久久久 | 精品福利av导航| 日韩精品一区二区三区蜜臀| 日韩欧美国产系列| 精品国产一区二区三区不卡| 久久免费视频一区| 国产精品蜜臀av| 亚洲精品成人精品456| 亚洲国产成人va在线观看天堂 | 欧美一级爆毛片| 26uuu国产日韩综合| 欧美国产精品专区| 中文字幕日韩精品一区| 亚洲美女屁股眼交3| 亚洲成人免费av| 韩国三级在线一区| av亚洲精华国产精华精| 欧美视频三区在线播放| 欧美xxxxx牲另类人与| 国产精品三级在线观看| 亚洲综合免费观看高清完整版在线 | 午夜亚洲国产au精品一区二区| 天天av天天翘天天综合网色鬼国产| 丝袜诱惑亚洲看片| 国产精品一二三区在线| 91小视频免费观看| 制服丝袜中文字幕亚洲| 中文字幕精品综合| 日韩经典一区二区| 高清av一区二区| 欧美日韩美女一区二区| 久久亚区不卡日本| 亚洲午夜一区二区| 国产91露脸合集magnet| 在线观看欧美日本| 久久久久久久综合色一本| 亚洲最大的成人av| 国产一区二区三区四区五区美女| 91麻豆精东视频| 久久精品视频免费| 午夜不卡av在线| av一区二区三区四区| 日韩三级在线观看| 亚洲柠檬福利资源导航| 国产一区在线观看视频| 欧美精品vⅰdeose4hd| 亚洲日韩欧美一区二区在线| 麻豆精品一二三| 欧美写真视频网站|