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

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

?? os_core.src

?? ucos v2.62 安裝程序 附帶已移植到C8051F020的UCOS源碼
?? SRC
?? 第 1 頁 / 共 5 頁
字號:
;     if (OSRunning == TRUE) {
			; SOURCE LINE # 293
	MOV  	R0,#LOW (OSRunning)
	MOV  	A,@R0
	CJNE 	A,#01H,?C0004
;         if (OSIntNesting < 255u) {
			; SOURCE LINE # 294
	MOV  	DPTR,#OSIntNesting
	MOVX 	A,@DPTR
	CLR  	C
	SUBB 	A,#0FFH
	JNC  	?C0004
;             OSIntNesting++;                      /* Increment ISR nesting level                        */
			; SOURCE LINE # 295
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
;         }
			; SOURCE LINE # 296
;     }
			; SOURCE LINE # 297
; }
			; SOURCE LINE # 298
?C0004:
	RET  	
; END OF _?OSIntEnter

; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                               EXIT ISR
; *
; * Description: This function is used to notify uC/OS-II that you have completed serviving an ISR.  When
; *              the last nested ISR has completed, uC/OS-II will call the scheduler to determine whether
; *              a new, high-priority task, is ready to run.
; *
; * Arguments  : none
; *
; * Returns    : none
; *
; * Notes      : 1) You MUST invoke OSIntEnter() and OSIntExit() in pair.  In other words, for every call
; *                 to OSIntEnter() at the beginning of the ISR you MUST have a call to OSIntExit() at the
; *                 end of the ISR.
; *              2) Rescheduling is prevented when the scheduler is locked (see OS_SchedLock())
; *********************************************************************************************************
; */
; 
; void  OSIntExit (void) KCREENTRANT

	RSEG  ?PR?_?OSIntExit?OS_CORE
_?OSIntExit:
	USING	0
			; SOURCE LINE # 319
; {
; #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
;     OS_CPU_SR  cpu_sr;
; #endif
;     
;     
;     if (OSRunning == TRUE) {
			; SOURCE LINE # 326
	MOV  	R0,#LOW (OSRunning)
	MOV  	A,@R0
	XRL  	A,#01H
	JZ   	$ + 5H
	LJMP 	?C0010
;         OS_ENTER_CRITICAL();
			; SOURCE LINE # 327
	CLR  	EA
;         if (OSIntNesting > 0) {                            /* Prevent OSIntNesting from wrapping       */
			; SOURCE LINE # 328
	MOV  	DPTR,#OSIntNesting
	MOVX 	A,@DPTR
	SETB 	C
	SUBB 	A,#00H
	JC   	?C0006
;             OSIntNesting--;
			; SOURCE LINE # 329
	MOVX 	A,@DPTR
	DEC  	A
	MOVX 	@DPTR,A
;         }
			; SOURCE LINE # 330
?C0006:
;         if (OSIntNesting == 0) {                           /* Reschedule only if all ISRs complete ... */
			; SOURCE LINE # 331
	MOV  	DPTR,#OSIntNesting
	MOVX 	A,@DPTR
	JZ   	$ + 5H
	LJMP 	?C0007
;             if (OSLockNesting == 0) {                      /* ... and not locked.                      */
			; SOURCE LINE # 332
	MOV  	DPTR,#OSLockNesting
	MOVX 	A,@DPTR
	JZ   	$ + 5H
	LJMP 	?C0007
;                 OSIntExitY    = OSUnMapTbl[OSRdyGrp];          
			; SOURCE LINE # 333
	MOV  	DPTR,#OSRdyGrp
	MOVX 	A,@DPTR
	ADD  	A,#LOW (OSUnMapTbl)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OSUnMapTbl)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	DPTR,#OSIntExitY
	MOVX 	@DPTR,A
;                 OSPrioHighRdy = (INT8U)((OSIntExitY << 3) + OSUnMapTbl[OSRdyTbl[OSIntExitY]]);
			; SOURCE LINE # 334
	MOVX 	A,@DPTR
	MOV  	R7,A
	ADD  	A,#LOW (OSRdyTbl)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OSRdyTbl)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	ADD  	A,#LOW (OSUnMapTbl)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OSUnMapTbl)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	A,R7
	RLC  	A
	RLC  	A
	RLC  	A
	ANL  	A,#0F8H
	MOV  	R7,A
	MOV  	A,R6
	ADD  	A,R7
	MOV  	R7,A
	MOV  	R0,#LOW (OSPrioHighRdy)
	MOV  	@R0,A
;                 if (OSPrioHighRdy != OSPrioCur) {          /* No Ctx Sw if current task is highest rdy */
			; SOURCE LINE # 335
	DEC  	R0
	MOV  	A,@R0
	XRL  	A,R7
	JZ   	?C0007
;                     OSTCBHighRdy  = OSTCBPrioTbl[OSPrioHighRdy];
			; SOURCE LINE # 336
	INC  	R0
	MOV  	A,@R0
	MOV  	B,#03H
	MUL  	AB
	ADD  	A,#LOW (OSTCBPrioTbl)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OSTCBPrioTbl)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	R0,#LOW (OSTCBHighRdy)
	MOV  	@R0,AR3
	INC  	R0
	MOV  	@R0,AR2
	INC  	R0
	MOV  	@R0,A
; #if OS_TASK_PROFILE_EN > 0
;                     OSTCBHighRdy->OSTCBCtxSwCtr++;         /* Inc. # of context switches to this task  */
			; SOURCE LINE # 338
	MOV  	DPTR,#020H
	LCALL	?C?LLDOPTR
	MOV  	A,R7
	ADD  	A,#01H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R6,A
	CLR  	A
	ADDC 	A,R5
	MOV  	R5,A
	CLR  	A
	ADDC 	A,R4
	MOV  	R4,A
	MOV  	DPTR,#020H
	LCALL	?C?LSTOPTR
; #endif
;                     OSCtxSwCtr++;                          /* Keep track of the number of ctx switches */
			; SOURCE LINE # 340
	MOV  	DPTR,#OSCtxSwCtr
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#01H
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R6,A
	CLR  	A
	ADDC 	A,R5
	MOV  	R5,A
	CLR  	A
	ADDC 	A,R4
	MOV  	R4,A
	MOV  	DPTR,#OSCtxSwCtr
	LCALL	?C?LSTXDATA
;                     OSIntCtxSw();                          /* Perform interrupt level ctx switch       */
			; SOURCE LINE # 341
	LCALL	OSIntCtxSw
;                 }
			; SOURCE LINE # 342
;             }
			; SOURCE LINE # 343
;         }
			; SOURCE LINE # 344
?C0007:
;         OS_EXIT_CRITICAL();
			; SOURCE LINE # 345
	SETB 	EA
;     }
			; SOURCE LINE # 346
; }
			; SOURCE LINE # 347
?C0010:
	RET  	
; END OF _?OSIntExit

; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                          PREVENT SCHEDULING
; *
; * Description: This function is used to prevent rescheduling to take place.  This allows your application
; *              to prevent context switches until you are ready to permit context switching.
; *
; * Arguments  : none
; *
; * Returns    : none
; *
; * Notes      : 1) You MUST invoke OSSchedLock() and OSSchedUnlock() in pair.  In other words, for every
; *                 call to OSSchedLock() you MUST have a call to OSSchedUnlock().
; *********************************************************************************************************
; */
; 
; #if OS_SCHED_LOCK_EN > 0
; void  OSSchedLock (void) KCREENTRANT	

	RSEG  ?PR?_?OSSchedLock?OS_CORE
_?OSSchedLock:
	USING	0
			; SOURCE LINE # 366
; {
; #if OS_CRITICAL_METHOD == 3                      /* Allocate storage for CPU status register           */
;     OS_CPU_SR  cpu_sr;
; #endif    
;     
;     
;     if (OSRunning == TRUE) {                     /* Make sure multitasking is running                  */
			; SOURCE LINE # 373
	MOV  	R0,#LOW (OSRunning)
	MOV  	A,@R0
	CJNE 	A,#01H,?C0013
;         OS_ENTER_CRITICAL();
			; SOURCE LINE # 374
	CLR  	EA
;         if (OSLockNesting < 255u) {              /* Prevent OSLockNesting from wrapping back to 0      */
			; SOURCE LINE # 375
	MOV  	DPTR,#OSLockNesting
	MOVX 	A,@DPTR
	CLR  	C
	SUBB 	A,#0FFH
	JNC  	?C0012
;             OSLockNesting++;                     /* Increment lock nesting level                       */
			; SOURCE LINE # 376
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
;         }
			; SOURCE LINE # 377
?C0012:
;         OS_EXIT_CRITICAL();
			; SOURCE LINE # 378
	SETB 	EA
;     }
			; SOURCE LINE # 379
; }
			; SOURCE LINE # 380
?C0013:
	RET  	
; END OF _?OSSchedLock

; #endif    
; 
; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                          ENABLE SCHEDULING
; *
; * Description: This function is used to re-allow rescheduling.
; *
; * Arguments  : none
; *
; * Returns    : none
; *
; * Notes      : 1) You MUST invoke OSSchedLock() and OSSchedUnlock() in pair.  In other words, for every
; *                 call to OSSchedLock() you MUST have a call to OSSchedUnlock().
; *********************************************************************************************************
; */
; 
; #if OS_SCHED_LOCK_EN > 0
; void  OSSchedUnlock (void) KCREENTRANT	

	RSEG  ?PR?_?OSSchedUnlock?OS_CORE
_?OSSchedUnlock:
	USING	0
			; SOURCE LINE # 400
; {
; #if OS_CRITICAL_METHOD == 3                                /* Allocate storage for CPU status register */
;     OS_CPU_SR  cpu_sr;
; #endif    
;     
;     
;     if (OSRunning == TRUE) {                                   /* Make sure multitasking is running    */
			; SOURCE LINE # 407
	MOV  	R0,#LOW (OSRunning)
	MOV  	A,@R0
	XRL  	A,#01H
	JNZ  	?C0021
;         OS_ENTER_CRITICAL();
			; SOURCE LINE # 408
	CLR  	EA
;         if (OSLockNesting > 0) {                               /* Do not decrement if already 0        */
			; SOURCE LINE # 409
	MOV  	DPTR,#OSLockNesting
	MOVX 	A,@DPTR
	SETB 	C
	SUBB 	A,#00H
	JC   	?C0015
;             OSLockNesting--;                                   /* Decrement lock nesting level         */
			; SOURCE LINE # 410
	MOVX 	A,@DPTR
	DEC  	A
	MOVX 	@DPTR,A
;             if (OSLockNesting == 0) {                          /* See if scheduler is enabled and ...  */
			; SOURCE LINE # 411
	MOVX 	A,@DPTR
	JNZ  	?C0016
;                 if (OSIntNesting == 0) {                       /* ... not in an ISR                    */
			; SOURCE LINE # 412
	MOV  	DPTR,#OSIntNesting
	MOVX 	A,@DPTR
	JNZ  	?C0017
;                     OS_EXIT_CRITICAL();
			; SOURCE LINE # 413
	SETB 	EA
;                     OS_Sched();                                /* See if a HPT is ready                */
			; SOURCE LINE # 414
	LJMP 	_?OS_Sched
;                 } else {
			; SOURCE LINE # 415
?C0017:
;                     OS_EXIT_CRITICAL();
			; SOURCE LINE # 416
	SETB 	EA
;                 }
			; SOURCE LINE # 417
;             } else {
			; SOURCE LINE # 418
	RET  	
?C0016:
;                 OS_EXIT_CRITICAL();
			; SOURCE LINE # 419
	SETB 	EA
;             }
			; SOURCE LINE # 420
;         } else {
			; SOURCE LINE # 421
	RET  	
?C0015:
;             OS_EXIT_CRITICAL();
			; SOURCE LINE # 422
	SETB 	EA
;         }
			; SOURCE LINE # 423
;     }
			; SOURCE LINE # 424
; }
			; SOURCE LINE # 425
?C0021:
	RET  	
; END OF _?OSSchedUnlock

; #endif    
; 
; /*$PAGE*/
; /*
; *********************************************************************************************************
; *                                          START MULTITASKING
; *
; * Description: This function is used to start the multitasking process which lets uC/OS-II manages the
; *              task that you have created.  Before you can call OSStart(), you MUST have called OSInit()
; *              and you MUST have created at least one task.
; *
; * Arguments  : none
; *
; * Returns    : none
; *
; * Note       : OSStartHighRdy() MUST:
; *                 a) Call OSTaskSwHook() then,
; *                 b) Set OSRunning to TRUE.
; *                 c) Load the context of the task pointed to by OSTCBHighRdy.
; *                 d_ Execute the task.
; *********************************************************************************************************
; */
; 
; void  OSStart (void) KCREENTRANT	

	RSEG  ?PR?_?OSStart?OS_CORE
_?OSStart:
	USING	0
			; SOURCE LINE # 449
	MOV  	DPTR,#0FFFEH
	LCALL	?C?ADDXBP
; {
;     INT8U y;
;     INT8U x;
; 
; 
;     if (OSRunning == FALSE) {
			; SOURCE LINE # 455
	MOV  	R0,#LOW (OSRunning)
	MOV  	A,@R0
	JNZ  	?C0023
;         y             = OSUnMapTbl[OSRdyGrp];        /* Find highest priority's task priority number   */
			; SOURCE LINE # 456
	MOV  	DPTR,#OSRdyGrp
	MOVX 	A,@DPTR
	ADD  	A,#LOW (OSUnMapTbl)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OSUnMapTbl)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	@DPTR,A
;         x             = OSUnMapTbl[OSRdyTbl[y]];
			; SOURCE LINE # 457
	MOVX 	A,@DPTR
	MOV  	R7,A
	ADD  	A,#LOW (OSRdyTbl)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OSRdyTbl)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	ADD  	A,#LOW (OSUnMapTbl)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OSUnMapTbl)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合久久久久| 亚洲人成精品久久久久| 国产精品久久久久久久久免费丝袜| 国产精品久久久久影院亚瑟| 亚洲香肠在线观看| 国产成人8x视频一区二区| 欧美性做爰猛烈叫床潮| www国产亚洲精品久久麻豆| 亚洲免费在线观看| 国产成人超碰人人澡人人澡| 欧美蜜桃一区二区三区| 国产精品视频看| 免费看日韩a级影片| 色天天综合色天天久久| 国产欧美日韩另类视频免费观看| 日韩精品国产精品| 色播五月激情综合网| 国产三级久久久| 久久精工是国产品牌吗| 欧美亚洲综合一区| 亚洲同性同志一二三专区| 国产真实乱子伦精品视频| 欧美一区午夜精品| 亚洲国产视频a| 在线欧美小视频| 亚洲欧美偷拍三级| 99国产精品久| 国产精品久久久久一区二区三区 | 亚洲成av人片| 91小宝寻花一区二区三区| 国产视频在线观看一区二区三区| 蜜桃精品视频在线| 在线播放91灌醉迷j高跟美女| 尤物av一区二区| 色婷婷久久99综合精品jk白丝| 日本一区二区视频在线| 国产九九视频一区二区三区| 日韩欧美国产系列| 激情综合五月婷婷| 亚洲精品一区二区三区四区高清| 美女久久久精品| 精品国产乱码久久久久久图片| 久久精品国产久精国产| 欧美刺激脚交jootjob| 激情欧美一区二区| 日本一区二区免费在线| 91麻豆swag| 亚洲成人动漫在线观看| 欧美日韩激情一区| 麻豆精品视频在线观看免费 | 图片区小说区国产精品视频| 欧美日韩日本视频| 麻豆国产91在线播放| 精品处破学生在线二十三| 国产一区二区日韩精品| 精品日韩欧美在线| 成人激情开心网| 亚洲一区二区三区免费视频| 欧美另类z0zxhd电影| 91精品国产乱码| 精品一区二区三区视频在线观看| 国产午夜精品久久久久久久| 成人在线一区二区三区| 一色屋精品亚洲香蕉网站| 欧美视频一区在线观看| 美女任你摸久久| 亚洲视频精选在线| 欧美电影在哪看比较好| 国产精品99久久久久久有的能看| 亚洲欧洲精品一区二区三区不卡| 欧美亚洲国产一区二区三区| 免费观看在线综合色| 国产日产精品1区| 欧美三级电影在线看| 国产一区二区视频在线| 一区二区三区免费看视频| 日韩欧美国产精品一区| 成人性视频免费网站| 亚洲va欧美va人人爽午夜| 精品欧美黑人一区二区三区| 91丨九色丨蝌蚪富婆spa| 免费欧美高清视频| 依依成人精品视频| 久久久久88色偷偷免费| 欧美午夜电影在线播放| 国产a久久麻豆| 欧美aaa在线| 一区二区三区欧美视频| 久久精品亚洲麻豆av一区二区| 在线观看成人免费视频| 盗摄精品av一区二区三区| 午夜视频一区在线观看| 中文字幕综合网| 国产欧美视频一区二区| 91精品黄色片免费大全| 99re6这里只有精品视频在线观看| 理论电影国产精品| 性做久久久久久| 亚洲精品日日夜夜| 国产精品护士白丝一区av| 91精品国产91热久久久做人人| 91免费视频网| 成人av网站在线| 国内精品在线播放| 免费观看在线综合色| 亚洲高清视频的网址| 亚洲激情六月丁香| 自拍偷拍亚洲综合| 中文字幕av一区二区三区免费看 | 黄一区二区三区| 亚洲福利国产精品| 一区二区三区中文在线| 国产精品久久久久一区二区三区共| 337p日本欧洲亚洲大胆精品| 91精品婷婷国产综合久久竹菊| 色综合 综合色| 91猫先生在线| 色综合天天综合色综合av| av中文一区二区三区| 国产98色在线|日韩| 国产精品一级二级三级| 国产精品一区久久久久| 国产美女精品人人做人人爽| 国产精品夜夜爽| 丰满少妇在线播放bd日韩电影| 国产精品一色哟哟哟| 国产高清不卡一区二区| 国产91对白在线观看九色| 国产成人精品网址| 99国产精品一区| 在线免费亚洲电影| 欧美一激情一区二区三区| 欧美r级在线观看| 久久亚洲春色中文字幕久久久| 精品不卡在线视频| 日本一区二区动态图| 亚洲男人天堂av| 日日摸夜夜添夜夜添国产精品| 免费高清不卡av| 高清shemale亚洲人妖| 91丨porny丨国产| 91精品国产综合久久精品app| 精品欧美久久久| 亚洲美女偷拍久久| 老司机精品视频在线| 成人av在线网| 欧美日韩成人一区| 久久久亚洲国产美女国产盗摄 | 国产另类ts人妖一区二区| 国产馆精品极品| 欧美亚洲动漫精品| 久久午夜色播影院免费高清| 亚洲欧洲国产专区| 日日摸夜夜添夜夜添亚洲女人| 久88久久88久久久| 成人欧美一区二区三区| 三级成人在线视频| 高清成人在线观看| 91最新地址在线播放| 欧美四级电影网| 欧美一级专区免费大片| 久久久久久久综合日本| 亚洲福利视频三区| 国产一区在线精品| 99久久精品国产网站| 99vv1com这只有精品| 日韩视频永久免费| 国产精品美女视频| 首页国产欧美日韩丝袜| 国产成人av电影在线观看| 欧美主播一区二区三区美女| 538prom精品视频线放| 日本一区二区三级电影在线观看| 日韩成人一区二区| 成人av在线电影| 欧美一二三区精品| 精品欧美一区二区三区精品久久| 一区二区日韩av| 九九视频精品免费| 色呦呦日韩精品| 日韩视频不卡中文| 中文字幕亚洲在| 蜜桃av一区二区三区| 成人免费观看视频| 久久久777精品电影网影网 | 国产综合色精品一区二区三区| 99久久伊人久久99| 精品国产一区二区三区av性色| 一区二区三区在线观看欧美| 成人一级视频在线观看| 欧美一级夜夜爽| 一区二区三区不卡在线观看| 国产剧情一区二区| 久久久综合激的五月天| 日本欧美久久久久免费播放网| 91影院在线观看| 欧美激情中文字幕一区二区| 日本视频免费一区| 在线观看亚洲精品| 亚洲私人影院在线观看|