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

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

?? portasm.h

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

typedef void tskTCB;
extern volatile tskTCB * volatile pxCurrentTCB;
extern void vTaskSwitchContext( void );

/* 
 * Saves the stack pointer for one task into its TCB, calls 
 * vTaskSwitchContext() to update the TCB being used, then restores the stack 
 * from the new TCB read to run the task. 
 */
void portSWITCH_CONTEXT( void );

/*
 * Load the stack pointer from the TCB of the task which is going to be first
 * to execute.  Then force an IRET so the registers and IP are popped off the
 * stack.
 */
void portFIRST_CONTEXT( void );

/* There are slightly different versions depending on whether you are building
to include debugger information.  If debugger information is used then there
are a couple of extra bytes left of the ISR stack (presumably for use by the
debugger).  The true stack pointer is then stored in the bp register.  We add
2 to the stack pointer to remove the extra bytes before we restore our context. */

#ifdef DEBUG_BUILD

	#pragma aux portSWITCH_CONTEXT =	"mov	ax, seg pxCurrentTCB"														\
										"mov	ds, ax"																		\
										"les	bx, pxCurrentTCB"			/* Save the stack pointer into the TCB. */		\
										"mov	es:0x2[ bx ], ss"															\
										"mov	es:[ bx ], sp"																\
										"call	vTaskSwitchContext"			/* Perform the switch. */						\
										"mov	ax, seg pxCurrentTCB"		/* Restore the stack pointer from the TCB. */	\
										"mov	ds, ax"																		\
										"les	bx, dword ptr pxCurrentTCB"													\
										"mov	ss, es:[ bx + 2 ]"															\
										"mov	sp, es:[ bx ]"																\
										"mov	bp, sp"						/* Prepair the bp register for the restoration of the SP in the compiler generated portion of the ISR */	\
										"add	bp, 0x0002"

										

	#pragma aux portFIRST_CONTEXT =		"mov	ax, seg pxCurrentTCB"			\
										"mov	ds, ax"							\
										"les	bx, dword ptr pxCurrentTCB"		\
										"mov	ss, es:[ bx + 2 ]"				\
										"mov	sp, es:[ bx ]"					\
										"add	sp, 0x0002"						/* Remove the extra bytes that exist in debug builds before restoring the context. */ \
										"pop	ax"								\
										"pop	ax"								\
										"pop	es"								\
										"pop	ds"								\
										"popa"									\
										"iret"									
#else

	#pragma aux portSWITCH_CONTEXT =	"mov	ax, seg pxCurrentTCB"														\
										"mov	ds, ax"																		\
										"les	bx, pxCurrentTCB"			/* Save the stack pointer into the TCB. */		\
										"mov	es:0x2[ bx ], ss"															\
										"mov	es:[ bx ], sp"																\
										"call	vTaskSwitchContext"			/* Perform the switch. */						\
										"mov	ax, seg pxCurrentTCB"		/* Restore the stack pointer from the TCB. */	\
										"mov	ds, ax"																		\
										"les	bx, dword ptr pxCurrentTCB"													\
										"mov	ss, es:[ bx + 2 ]"															\
										"mov	sp, es:[ bx ]"
										

	#pragma aux portFIRST_CONTEXT =		"mov	ax, seg pxCurrentTCB"			\
										"mov	ds, ax"							\
										"les	bx, dword ptr pxCurrentTCB"		\
										"mov	ss, es:[ bx + 2 ]"				\
										"mov	sp, es:[ bx ]"					\
										"pop	ax"								\
										"pop	ax"								\
										"pop	es"								\
										"pop	ds"								\
										"popa"									\
										"iret"									
#endif


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区日产乱码| 亚洲网友自拍偷拍| 亚洲一区二区美女| 久久se精品一区精品二区| 99久久综合国产精品| 欧美一区二区三区在线看| 国产精品国产三级国产aⅴ无密码| 亚洲国产aⅴ成人精品无吗| 国产69精品久久久久毛片| 欧美一区二区三区不卡| 亚洲另类春色校园小说| 成人性视频免费网站| 欧美成人一区二区三区在线观看| 亚洲午夜在线视频| 99精品久久只有精品| 国产日韩欧美a| 极品瑜伽女神91| 91精品黄色片免费大全| 一区二区三区在线高清| 99综合影院在线| 国产精品传媒入口麻豆| 国产不卡在线一区| 亚洲国产精品成人久久综合一区| 九九热在线视频观看这里只有精品| 欧美日韩久久久| 亚洲综合丁香婷婷六月香| 色久优优欧美色久优优| 亚洲欧美成aⅴ人在线观看| 99久久久久免费精品国产| 国产精品视频yy9299一区| 国产传媒日韩欧美成人| 国产蜜臀av在线一区二区三区| 精品一区二区在线观看| 精品女同一区二区| 久99久精品视频免费观看| 2022国产精品视频| 国产精品自拍毛片| 亚洲国产岛国毛片在线| 福利视频网站一区二区三区| 国产欧美日本一区视频| 成人影视亚洲图片在线| 中文字幕国产精品一区二区| eeuss国产一区二区三区| 亚洲色图欧洲色图婷婷| 日本乱码高清不卡字幕| 午夜精品久久久久久久99樱桃| 欧美三级一区二区| 免费美女久久99| 久久久久久久久99精品| 99免费精品在线| 亚洲成人av中文| 日韩一区二区免费视频| 国产剧情一区在线| 亚洲丝袜制服诱惑| 精品视频在线视频| 精品一区二区三区视频 | 欧美日韩一区久久| 亚洲国产视频直播| 精品福利一区二区三区 | 视频精品一区二区| 精品成人一区二区三区四区| 国产91综合一区在线观看| 18欧美乱大交hd1984| 欧美精品日韩一本| 国产成人在线网站| 亚洲午夜精品一区二区三区他趣| 日韩一级在线观看| jizzjizzjizz欧美| 麻豆91在线播放免费| 国产精品传媒视频| 精品人伦一区二区色婷婷| 色综合久久久网| 激情都市一区二区| 亚洲久草在线视频| 久久综合99re88久久爱| 色哟哟一区二区三区| 久久99国产精品成人| 亚洲自拍偷拍九九九| 国产午夜亚洲精品羞羞网站| 欧美精品久久天天躁| 成人app网站| 国产制服丝袜一区| 五月婷婷另类国产| 亚洲天堂成人网| 国产亚洲午夜高清国产拍精品| 欧美亚洲综合网| 不卡一二三区首页| 国产高清亚洲一区| 久久精品国产99国产精品| 洋洋av久久久久久久一区| 久久精品欧美一区二区三区不卡 | 午夜精品视频一区| 亚洲精品伦理在线| 日本一二三不卡| 久久久久国产一区二区三区四区 | 国产精品久久久久一区| 日韩精品一区二区三区视频在线观看| 一本一道综合狠狠老| 成人深夜福利app| 国产一区二区不卡老阿姨| 五月婷婷欧美视频| 亚洲成a人在线观看| 伊人一区二区三区| 亚洲女与黑人做爰| 亚洲免费看黄网站| 综合久久久久久| 中文字幕制服丝袜成人av| 国产日韩欧美在线一区| 精品剧情在线观看| 精品久久久久久最新网址| 欧美一卡2卡3卡4卡| 制服丝袜亚洲色图| 欧美一级视频精品观看| 91精品国产色综合久久不卡蜜臀| 欧美日韩精品一区二区三区| 在线免费不卡视频| 欧美在线免费播放| 欧美色图12p| 欧美一卡二卡三卡四卡| 欧美成人官网二区| 国产婷婷色一区二区三区四区 | 日韩一级完整毛片| 日韩精品中文字幕一区| 精品剧情v国产在线观看在线| 精品久久国产字幕高潮| 亚洲精品一区二区精华| 国产色产综合色产在线视频 | 99精品桃花视频在线观看| 成人app下载| 欧洲色大大久久| 日韩三级视频在线观看| www精品美女久久久tv| 国产精品私人自拍| 亚洲色图第一区| 亚洲高清免费在线| 久久爱www久久做| 99精品一区二区| 91精品中文字幕一区二区三区| 欧美mv日韩mv国产网站| 欧美国产精品中文字幕| 一区二区成人在线| 黄一区二区三区| 91玉足脚交白嫩脚丫在线播放| 欧美性大战久久久久久久蜜臀| 欧美一区二区福利视频| 欧美极品少妇xxxxⅹ高跟鞋 | 亚洲人成在线观看一区二区| 亚洲综合图片区| 久久机这里只有精品| 成人自拍视频在线观看| 欧美日韩国产片| 国产欧美精品在线观看| 亚洲妇熟xx妇色黄| 国产传媒久久文化传媒| 欧美日韩精品是欧美日韩精品| 久久新电视剧免费观看| 亚洲制服丝袜av| 狠狠色综合日日| 91成人在线精品| 国产午夜精品一区二区三区嫩草| 亚洲精品高清在线观看| 韩国精品在线观看| 欧美老女人在线| 亚洲人快播电影网| 国产一区二区三区日韩| 欧美日韩在线播放| 亚洲婷婷综合久久一本伊一区| 久久丁香综合五月国产三级网站| 91丨国产丨九色丨pron| 精品国产电影一区二区| 亚欧色一区w666天堂| www.一区二区| 久久久精品2019中文字幕之3| 婷婷久久综合九色综合伊人色| 不卡视频一二三| 久久精品亚洲麻豆av一区二区| 日本最新不卡在线| 欧美亚洲动漫精品| 亚洲色图19p| 成人一区二区三区在线观看| 欧美成人一区二区三区片免费| 无吗不卡中文字幕| 91福利小视频| 一区二区三区日韩精品视频| av在线一区二区| 国产精品拍天天在线| 从欧美一区二区三区| 久久精品视频一区| 高清在线不卡av| 国产嫩草影院久久久久| 国产精品1024| 国产欧美日韩激情| 成人av在线播放网站| 国产三级一区二区| 国产aⅴ精品一区二区三区色成熟| 欧美电影免费观看高清完整版| 蜜桃一区二区三区四区| 欧美一级高清片| 韩国欧美一区二区| 久久久美女艺术照精彩视频福利播放|