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

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

?? os_core.s

?? 非剝奪型占先式minOS_iccavr avr單片機 icc編譯環境
?? S
字號:
	.module OS_Core.c
	.area text(rom, con, rel)
	.dbfile C:\icc\minOS_iccavr\OS_Core.c
	.dbfunc s OSInit _OSInit fI
;              i -> R16
;        pOS_TCB -> R18,R19
	.even
_OSInit::
	.dbline -1
	.dbline 18
; /*
; *********************************************************************************************************
; *                                      minOS 0.01v
; *                                The Real-Time OS Kernel
; *                                  All Rights Reserved
; * File : OS_Core.C
; * 作者 : 21icbbs網友 LM7556 ,2004年7月   by : LM7556 , China , 2004-2004 
; *
; *********************************************************************************************************
; */
; 
; 
; #define  OS_GLOBALS                           /* Declare GLOBAL variables   */
; #include "OS_Includes.h"
; 
; // initialization OSTCB --- 初始化任務控制塊.
; void OSInit(void) 
; {	INT8U i;
	.dbline 20
;     OS_TCB *pOS_TCB;
; 	pOS_TCB=OSTCB;
	ldi R18,<_OSTCB
	ldi R19,>_OSTCB
	.dbline 21
; 	for (i=0;i<OS_MAX_TASKS;i++,pOS_TCB++) 
	clr R16
	rjmp L6
L3:
	.dbline 22
	.dbline 23
	clr R2
	clr R3
	mov R30,R18
	mov R31,R19
	std z+0,R2
	std z+1,R3
	.dbline 24
	ldi R24,253
	std z+2,R24
	.dbline 25
	clr R2
	std z+3,R2
	std z+4,R3
	.dbline 26
L4:
	.dbline 21
	inc R16
	subi R18,251  ; offset = 5
	sbci R19,255
L6:
	.dbline 21
	cpi R16,5
	brlo L3
	.dbline -2
	.dbline 27
; 	{
; 		pOS_TCB->OSStkTop=(INT16U)NULL;
; 		pOS_TCB->OSTaskStatus=OS_TASK_Suspend;
; 		pOS_TCB->OSTimeDly=0;
; 	}
; }
L2:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbsym r pOS_TCB 18 pX
	.dbfunc s OSStart _OSStart fI
	.even
_OSStart::
	.dbline -1
	.dbline 31
; 
; //Start OS --- 啟動OS
; void OSStart(void) 
; {
	.dbline 32
; 	Init_OS_Timer();
	rcall _InitOSTimer
	.dbline 33
; 	OS_TASK_CrtPrio=Task_main_Prio;
	clr R2
	sts _OS_TASK_CrtPrio,R2
	.dbline 34
; 	OSTCB[OS_TASK_CrtPrio].OSTaskStatus=OS_TASK_Run;
	mov R18,R2
	clr R19
	ldi R16,5
	ldi R17,0
	rcall mpy16s
	mov R30,R16
	mov R31,R17
	ldi R24,<_OSTCB+2
	ldi R25,>_OSTCB+2
	add R30,R24
	adc R31,R25
	ldi R24,251
	std z+0,R24
	.dbline 35
; 	OS_INT_ENABLE();
	.dbline 36
; 	OS_TASK_INT();
	rcall _OSCtxSw
	.dbline -2
	.dbline 37
; }
L7:
	.dbline 0 ; func end
	ret
	.dbfunc s OSPrioHighRdy _OSPrioHighRdy fI
;              i -> R16
;        pOS_TCB -> R18,R19
	.even
_OSPrioHighRdy:
	rcall push_gset2
	.dbline -1
	.dbline 41
; 
; //返回優先級最高的處于就緒態任務的優先級,否則返回no_TASK_Rdy。
; static INT8U OSPrioHighRdy(void) 
; { INT8U i;
	.dbline 43
;     OS_TCB *pOS_TCB;
; 	pOS_TCB=OSTCB;
	ldi R18,<_OSTCB
	ldi R19,>_OSTCB
	.dbline 44
; 	for (i=0;i<OS_MAX_TASKS;i++,pOS_TCB++) 
	clr R16
	rjmp L13
L10:
	.dbline 45
; 	{
	.dbline 46
; 		if ((pOS_TCB->OSStkTop!=(INT8U)NULL) & (pOS_TCB->OSTaskStatus==OS_TASK_Rdy)) {return i;}
	mov R30,R18
	mov R31,R19
	ldd R2,z+0
	ldd R3,z+1
	tst R2
	brne X0
	tst R3
	breq L16
X0:
	ldi R22,1
	ldi R23,0
	rjmp L17
L16:
	clr R22
	clr R23
L17:
	mov R30,R18
	mov R31,R19
	ldd R24,z+2
	cpi R24,252
	brne L18
	ldi R20,1
	ldi R21,0
	rjmp L19
L18:
	clr R20
	clr R21
L19:
	mov R2,R22
	mov R3,R23
	and R2,R20
	and R3,R21
	tst R2
	brne X1
	tst R3
	breq L14
X1:
	.dbline 46
	.dbline 46
	clr R17
	rjmp L9
L14:
	.dbline 47
L11:
	.dbline 44
	inc R16
	subi R18,251  ; offset = 5
	sbci R19,255
L13:
	.dbline 44
	cpi R16,5
	brlo L10
	.dbline 48
; 	}
; 	return no_TASK_Rdy;
	ldi R16,255
	ldi R17,0
	.dbline -2
L9:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbsym r pOS_TCB 18 pX
	.dbfunc s OSTimeTick _OSTimeTick fI
;              i -> R20
;        pOS_TCB -> R22,R23
	.even
_OSTimeTick::
	rcall push_gset2
	.dbline -1
	.dbline 54
; }
; 
; //Task OSTimeDly Decrease 1 per Time Tick --- 每個時鐘節拍,任務等待延時的時間OSTimeDly減1.
; //如果任務的OSTimeDly減到0,把任務設置為準備就緒OS_TASK_Rdy。
; void OSTimeTick(void) 
; { INT8U i;
	.dbline 56
;     OS_TCB *pOS_TCB;
; 	pOS_TCB=OSTCB;
	ldi R22,<_OSTCB
	ldi R23,>_OSTCB
	.dbline 57
; 	for (i=0;i<OS_MAX_TASKS;i++,pOS_TCB++) 
	clr R20
	rjmp L24
L21:
	.dbline 58
; 	{
	.dbline 59
; 		if (pOS_TCB->OSTimeDly>OS_TASK_TimeOut) 
	mov R30,R22
	mov R31,R23
	ldd R2,z+3
	ldd R3,z+4
	tst R2
	brne X2
	tst R3
	breq L25
X2:
	.dbline 60
; 		{
	.dbline 61
; 			if (--pOS_TCB->OSTimeDly==0) {pOS_TCB->OSTaskStatus=OS_TASK_Rdy;}
	mov R24,R22
	mov R25,R23
	adiw R24,3
	mov R2,R24
	mov R3,R25
	mov R30,R2
	mov R31,R3
	ldd R24,z+0
	ldd R25,z+1
	sbiw R24,1
	mov R4,R24
	mov R5,R25
	std z+0,R4
	std z+1,R5
	tst R4
	brne L27
	tst R5
	brne L27
	.dbline 61
	.dbline 61
	ldi R24,252
	mov R30,R22
	mov R31,R23
	std z+2,R24
	.dbline 61
L27:
	.dbline 62
; 		}
L25:
	.dbline 63
L22:
	.dbline 57
	inc R20
	subi R22,251  ; offset = 5
	sbci R23,255
L24:
	.dbline 57
	cpi R20,5
	brlo L21
	.dbline 64
; 	}
; 	OS_TASK_HighPri=OSPrioHighRdy();
	rcall _OSPrioHighRdy
	mov R2,R16
	mov R3,R17
	sts _OS_TASK_HighPri,R2
	.dbline -2
	.dbline 65
; }
L20:
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbsym r pOS_TCB 22 pX
	.dbfunc s OSTimeDly _OSTimeDly fI
;           Tdly -> R20,R21
	.even
_OSTimeDly::
	rcall push_gset1
	mov R20,R16
	mov R21,R17
	.dbline -1
	.dbline 70
; 
; #if OS_TIME_DLY_EN
; //OS Time Delay --- 使任務延時Tdly個時間節拍
; void OSTimeDly(INT16U Tdly)               /* Delay Tdly clock tick */
; {
	.dbline 71
; 	OSTCB[OS_TASK_CrtPrio].OSTimeDly=Tdly+OS_TASK_TimeOut;
	lds R18,_OS_TASK_CrtPrio
	clr R19
	ldi R16,5
	ldi R17,0
	rcall mpy16s
	mov R30,R16
	mov R31,R17
	ldi R24,<_OSTCB+3
	ldi R25,>_OSTCB+3
	add R30,R24
	adc R31,R25
	std z+0,R20
	std z+1,R21
	.dbline 72
; 	OSTCB[OS_TASK_CrtPrio].OSTaskStatus=OS_TASK_WaitTicks;
	lds R18,_OS_TASK_CrtPrio
	clr R19
	ldi R16,5
	ldi R17,0
	rcall mpy16s
	mov R30,R16
	mov R31,R17
	ldi R24,<_OSTCB+2
	ldi R25,>_OSTCB+2
	add R30,R24
	adc R31,R25
	ldi R24,250
	std z+0,R24
	.dbline 73
; 	OSSched();
	rcall _OSSched
	.dbline -2
	.dbline 74
; }
L29:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r Tdly 20 i
	.dbfunc s OSTaskSuspend _OSTaskSuspend fI
;       TaskPrio -> R20
	.even
_OSTaskSuspend::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 80
; #endif
; 
; #if OS_TASK_SUSPEND_EN>0
; //把正在運行的任務掛起(Suspend a task)。
; void OSTaskSuspend(INT8U TaskPrio) 
; {
	.dbline 81
; 	OSTCB[TaskPrio].OSTaskStatus=OS_TASK_Suspend;
	mov R18,R20
	clr R19
	ldi R16,5
	ldi R17,0
	rcall mpy16s
	mov R30,R16
	mov R31,R17
	ldi R24,<_OSTCB+2
	ldi R25,>_OSTCB+2
	add R30,R24
	adc R31,R25
	ldi R24,253
	std z+0,R24
	.dbline 82
; 	OSSched();
	rcall _OSSched
	.dbline -2
	.dbline 83
; }
L32:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r TaskPrio 20 c
	.dbfunc s OSTaskResume _OSTaskResume fI
;       TaskPrio -> R20
	.even
_OSTaskResume::
	rcall push_gset1
	mov R20,R16
	.dbline -1
	.dbline 89
; #endif
; 
; #if OS_TASK_Resume_EN>0
; // 恢復被掛起的任務(resume a task)。
; void OSTaskResume(INT8U TaskPrio) 
; {
	.dbline 90
; 	OSTCB[TaskPrio].OSTaskStatus=OS_TASK_Rdy;
	mov R18,R20
	clr R19
	ldi R16,5
	ldi R17,0
	rcall mpy16s
	mov R30,R16
	mov R31,R17
	ldi R24,<_OSTCB+2
	ldi R25,>_OSTCB+2
	add R30,R24
	adc R31,R25
	ldi R24,252
	std z+0,R24
	.dbline -2
	.dbline 91
; }
L34:
	rcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r TaskPrio 20 c
	.dbfunc s OSSched _OSSched fI
	.even
_OSSched::
	.dbline -1
	.dbline 96
; #endif
; 
; //任務調度,把CPU控制權轉到優先級最高的處于就緒態的任務。如果沒有處于就緒態的任務,就地等待,
; void OSSched(void) 
; {
L37:
	.dbline 98
; 	do
; 	{
	.dbline 99
; 		OS_TASK_HighPri=OSPrioHighRdy();
	rcall _OSPrioHighRdy
	mov R2,R16
	mov R3,R17
	sts _OS_TASK_HighPri,R2
	.dbline 100
L38:
	.dbline 100
; 	} while (OS_TASK_HighPri==no_TASK_Rdy);
	lds R24,_OS_TASK_HighPri
	cpi R24,255
	breq L37
	.dbline 101
; 	OSTCB[OS_TASK_HighPri].OSTaskStatus=OS_TASK_Run;
	mov R18,R24
	clr R19
	ldi R16,5
	ldi R17,0
	rcall mpy16s
	mov R30,R16
	mov R31,R17
	ldi R24,<_OSTCB+2
	ldi R25,>_OSTCB+2
	add R30,R24
	adc R31,R25
	ldi R24,251
	std z+0,R24
	.dbline 102
; 	OS_TASK_INT();
	rcall _OSCtxSw
	.dbline -2
	.dbline 103
; }
L36:
	.dbline 0 ; func end
	ret
	.area bss(ram, con, rel)
	.dbfile C:\icc\minOS_iccavr\OS_Core.c
_TASK_main_PrioStk::
	.blkb 48
	.dbfile C:\icc\minOS_iccavr/OS_Minos.h
	.dbsym s TASK_main_PrioStk _TASK_main_PrioStk A[48:48]c
_OSTCB::
	.blkb 25
	.dbsym s OSTCB _OSTCB A[25:5]X
_OS_TASK_HighPri::
	.blkb 1
	.dbsym s OS_TASK_HighPri _OS_TASK_HighPri c
_OS_TASK_CrtPrio::
	.blkb 1
	.dbsym s OS_TASK_CrtPrio _OS_TASK_CrtPrio c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品女主播在线观看| 欧美主播一区二区三区美女| 日韩女优av电影| 亚洲电影在线播放| 91亚洲永久精品| 欧美高清在线精品一区| 国产在线视频一区二区| 精品美女在线播放| 美女脱光内衣内裤视频久久网站 | 亚洲欧美日韩国产成人精品影院| 国产激情偷乱视频一区二区三区| 久久综合久久综合久久综合| 精油按摩中文字幕久久| 欧美成人精品3d动漫h| 久久成人av少妇免费| 精品日韩一区二区| 国内久久精品视频| 久久蜜桃av一区二区天堂| 国产一区二区伦理| 久久久www免费人成精品| 国产福利视频一区二区三区| 欧美国产综合一区二区| 成av人片一区二区| 亚洲色图视频免费播放| 91黄色在线观看| 亚洲成人三级小说| 欧美一区二区三区日韩视频| 另类小说图片综合网| 精品国产伦理网| 国产99久久久国产精品| 国产精品国产三级国产aⅴ中文 | 韩国v欧美v日本v亚洲v| 欧美精品一区二区久久婷婷| 国产一区二区调教| 中文子幕无线码一区tr| 91丨九色丨黑人外教| 夜夜嗨av一区二区三区| 欧美日韩国产小视频在线观看| 日韩av电影天堂| 欧美精品一区二区三区很污很色的 | 麻豆精品在线看| 久久视频一区二区| 成人黄色电影在线| 亚洲激情校园春色| 欧美日韩激情一区二区三区| 免费看日韩a级影片| 久久久久久久久免费| 99久久er热在这里只有精品66| 一区二区三区.www| 日韩片之四级片| 国产**成人网毛片九色| 一区二区三区av电影| 欧美tickling网站挠脚心| 国产成人午夜99999| 亚洲精品中文字幕在线观看| 69p69国产精品| 国产精品一级片| 亚洲精品ww久久久久久p站| 欧美一区二区美女| 成人综合婷婷国产精品久久免费| 一区二区三区四区不卡视频| 91精品国产综合久久香蕉的特点| 国产在线看一区| 亚洲精品美国一| 欧美tk—视频vk| 色哟哟日韩精品| 日本伊人色综合网| 国产精品天干天干在观线| 欧美色精品在线视频| 国产在线麻豆精品观看| 一区二区三区91| 久久精品男人天堂av| 日本国产一区二区| 麻豆一区二区三| 有坂深雪av一区二区精品| 精品国产区一区| 在线看日本不卡| 国产精品影视网| 午夜精品久久久久久久久久| 亚洲国产高清不卡| 欧美一区二区三区免费视频 | 国产激情视频一区二区三区欧美| 亚洲日本在线观看| 欧美xxxxx牲另类人与| 色哟哟一区二区三区| 国产精品亚洲视频| 日韩中文字幕91| 一区在线观看视频| xvideos.蜜桃一区二区| 欧美午夜一区二区| 成人高清视频在线| 人人爽香蕉精品| 夜夜嗨av一区二区三区中文字幕| 国产亚洲精久久久久久| 在线电影国产精品| 在线这里只有精品| 成人永久aaa| 精品亚洲国产成人av制服丝袜| 亚洲激情在线激情| 国产欧美日韩在线| 欧美变态口味重另类| 欧美日本免费一区二区三区| av午夜精品一区二区三区| 国产最新精品免费| 丝袜亚洲另类丝袜在线| 亚洲精品国产一区二区精华液| 国产欧美一区二区三区网站| 日韩三级视频中文字幕| 欧美老肥妇做.爰bbww视频| 91蝌蚪porny| 成人av电影在线观看| 国产麻豆成人精品| 六月丁香婷婷久久| 日产精品久久久久久久性色| 亚洲国产精品影院| 亚洲欧美另类小说| 国产精品护士白丝一区av| 久久九九久精品国产免费直播| 欧美一二三四区在线| 欧美精品免费视频| 欧美日韩在线直播| 色香蕉成人二区免费| 成人高清免费观看| 国产精品一区免费视频| 久久99久久99精品免视看婷婷| 青青青伊人色综合久久| 五月综合激情婷婷六月色窝| 亚洲国产成人tv| 一卡二卡三卡日韩欧美| 亚洲久草在线视频| 亚洲男同1069视频| 亚洲另类在线视频| 一区二区三区中文字幕电影 | 国产精品综合av一区二区国产馆| 日韩影院在线观看| 全部av―极品视觉盛宴亚洲| 日本怡春院一区二区| 久久se精品一区精品二区| 精品一区二区综合| 久久99九九99精品| 韩国一区二区视频| 国产精品一区久久久久| 国产成人免费网站| 成人h精品动漫一区二区三区| 成人h版在线观看| 99天天综合性| 成人短视频下载| 色综合天天综合网国产成人综合天 | 国产91精品在线观看| 成人三级伦理片| 色综合网站在线| 欧美日韩黄色一区二区| 正在播放一区二区| 日韩三级在线免费观看| 欧美xingq一区二区| 国产欧美一二三区| 中文字幕第一区二区| 国产精品国产精品国产专区不片| 亚洲免费在线视频一区 二区| 亚洲一区视频在线| 日韩黄色在线观看| 国内不卡的二区三区中文字幕| 懂色中文一区二区在线播放| 99久久777色| 欧美日韩国产成人在线免费| 日韩西西人体444www| 国产日韩欧美一区二区三区乱码| 最新久久zyz资源站| 亚洲一区二区高清| 麻豆精品在线观看| 成人av资源下载| 欧美日韩一区二区三区免费看| 日韩欧美色综合| 日本一区二区三区四区在线视频| 亚洲三级视频在线观看| 亚洲va天堂va国产va久| 精品一区二区三区av| 成人激情小说乱人伦| 欧美三电影在线| 精品国产伦理网| 一区二区三区小说| 丝袜亚洲精品中文字幕一区| 国产一区三区三区| 91免费观看视频| 日韩一本二本av| 国产精品伦理一区二区| 亚洲一区二区高清| 国产电影一区二区三区| 91黄色激情网站| 久久天堂av综合合色蜜桃网| 亚洲综合色噜噜狠狠| 国产专区综合网| 欧美午夜在线一二页| 国产色91在线| 午夜视频在线观看一区| 国产在线精品一区二区夜色 | 国产91在线观看| 欧美日韩一区视频| 欧美国产日韩亚洲一区| 亚洲成a人v欧美综合天堂|