⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucos_ii.s

📁 AVR megal128下的ucos_ii
💻 S
📖 第 1 页 / 共 2 页
字号:
	.dbfunc e OSIntExit _OSIntExit fV
;         cpu_sr -> R10
	.even
_OSIntExit::
	xcall push_gset3
	.dbline -1
	.dbline 325
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
	.dbline 331
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
	lds R24,_OSRunning
	cpi R24,1
	breq X0
	xjmp L8
X0:
	.dbline 331
	.dbline 332
; #include "os_time.c"
	xcall _OS_CPU_SR_Save
	mov R10,R16
	.dbline 333
; #include "os_time.c"
	clr R2
	lds R3,_OSIntNesting
	cp R2,R3
	brsh L10
	.dbline 333
	.dbline 334
; #include "os_time.c"
	mov R24,R3
	subi R24,1
	sts _OSIntNesting,R24
	.dbline 335
; #include "os_time.c"
L10:
	.dbline 336
; #include "os_time.c"
	lds R2,_OSIntNesting
	tst R2
	breq X1
	xjmp L12
X1:
	.dbline 336
	.dbline 337
; #include "os_time.c"
	lds R2,_OSLockNesting
	tst R2
	breq X2
	xjmp L14
X2:
	.dbline 337
	.dbline 338
; #include "os_time.c"
	ldi R24,<_OSUnMapTbl
	ldi R25,>_OSUnMapTbl
	lds R30,_OSRdyGrp
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	sts _OSIntExitY,R30
	.dbline 339
; #include "os_time.c"
	ldi R24,<_OSRdyTbl
	ldi R25,>_OSRdyTbl
	clr R31
	add R30,R24
	adc R31,R25
	ldd R30,z+0
	clr R31
	ldi R24,<_OSUnMapTbl
	ldi R25,>_OSUnMapTbl
	add R30,R24
	adc R31,R25
	lpm R2,Z
	clr R3
	lds R4,_OSIntExitY
	clr R5
	lsl R4
	rol R5
	lsl R4
	rol R5
	lsl R4
	rol R5
	add R4,R2
	adc R5,R3
	sts _OSPrioHighRdy,R4
	.dbline 340
; #include "os_time.c"
	lds R2,_OSPrioCur
	cp R4,R2
	brne X3
	xjmp L16
X3:
	.dbline 340
	.dbline 341
; #include "os_time.c"
	mov R2,R4
	ldi R24,2
	mul R24,R2
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	sts _OSTCBHighRdy+1,R3
	sts _OSTCBHighRdy,R2
	.dbline 343
; #include "os_time.c"
; #include "os_time.c"
	movw R24,R2
	adiw R24,18
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	movw R30,R24
	ldd R4,z+0
	ldd R5,z+1
	ldd R6,z+2
	ldd R7,z+3
	add R4,R20
	adc R5,R21
	adc R6,R22
	adc R7,R23
	std z+0,R4
	std z+1,R5
	std z+2,R6
	std z+3,R7
	.dbline 345
; #include "os_time.c"
; #include "os_time.c"
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	lds R4,_OSCtxSwCtr+2
	lds R5,_OSCtxSwCtr+2+1
	lds R2,_OSCtxSwCtr
	lds R3,_OSCtxSwCtr+1
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _OSCtxSwCtr+1,R3
	sts _OSCtxSwCtr,R2
	sts _OSCtxSwCtr+2+1,R5
	sts _OSCtxSwCtr+2,R4
	.dbline 346
; #include "os_time.c"
	xcall _OSIntCtxSw
	.dbline 347
; #include "os_time.c"
L16:
	.dbline 348
; #include "os_time.c"
L14:
	.dbline 349
; #include "os_time.c"
L12:
	.dbline 350
	mov R16,R10
	xcall _OS_CPU_SR_Restore
	.dbline 351
L8:
	.dbline -2
L7:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 10 c
	.dbend
	.dbfunc e OSSchedLock _OSSchedLock fV
;         cpu_sr -> R20
	.even
_OSSchedLock::
	xcall push_gset1
	.dbline -1
	.dbline 372
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
	.dbline 378
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
	lds R24,_OSRunning
	cpi R24,1
	brne L19
	.dbline 378
	.dbline 379
; #include "os_time.c"
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 380
; #include "os_time.c"
	lds R24,_OSLockNesting
	cpi R24,255
	brsh L21
	.dbline 380
	.dbline 381
; #include "os_time.c"
	subi R24,255    ; addi 1
	sts _OSLockNesting,R24
	.dbline 382
; #include "os_time.c"
L21:
	.dbline 383
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 384
L19:
	.dbline -2
L18:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 20 c
	.dbend
	.dbfunc e OSSchedUnlock _OSSchedUnlock fV
;         cpu_sr -> R20
	.even
_OSSchedUnlock::
	xcall push_gset1
	.dbline -1
	.dbline 406
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
	.dbline 412
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
; #include "os_time.c"
	lds R24,_OSRunning
	cpi R24,1
	brne L24
	.dbline 412
	.dbline 413
; #include "os_time.c"
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 414
; #include "os_time.c"
	clr R2
	lds R3,_OSLockNesting
	cp R2,R3
	brsh L26
	.dbline 414
	.dbline 415
; #include "os_time.c"
	mov R24,R3
	subi R24,1
	sts _OSLockNesting,R24
	.dbline 416
; #include "os_time.c"
	tst R24
	brne L28
	.dbline 416
	.dbline 417
; #include "os_time.c"
	lds R2,_OSIntNesting
	tst R2
	brne L30
	.dbline 417
	.dbline 418
; #include "os_time.c"
	xcall _OS_CPU_SR_Restore
	.dbline 419
; #include "os_time.c"
	xcall _OS_Sched
	.dbline 420
	xjmp L27
L30:
	.dbline 420
; #include "os_time.c"
	.dbline 421
; #include "os_time.c"
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 422
; #include "os_time.c"
	.dbline 423
	xjmp L27
L28:
	.dbline 423
; #include "os_time.c"
	.dbline 424
; #include "os_time.c"
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 425
; #include "os_time.c"
	.dbline 426
	xjmp L27
L26:
	.dbline 426
; #include "os_time.c"
	.dbline 427
; #include "os_time.c"
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 428
; #include "os_time.c"
L27:
	.dbline 429
L24:
	.dbline -2
L23:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 20 c
	.dbend
	.dbfunc e OSStart _OSStart fV
;              x -> R22
;              y -> R20
	.even
_OSStart::
	xcall push_gset2
	.dbline -1
	.dbline 455
	.dbline 460
	lds R2,_OSRunning
	tst R2
	breq X4
	xjmp L33
X4:
	.dbline 460
	.dbline 461
	ldi R24,<_OSUnMapTbl
	ldi R25,>_OSUnMapTbl
	lds R30,_OSRdyGrp
	clr R31
	add R30,R24
	adc R31,R25
	lpm R20,Z
	.dbline 462
	ldi R24,<_OSRdyTbl
	ldi R25,>_OSRdyTbl
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R30,z+0
	clr R31
	ldi R24,<_OSUnMapTbl
	ldi R25,>_OSUnMapTbl
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 463
	mov R2,R22
	clr R3
	mov R4,R20
	clr R5
	lsl R4
	rol R5
	lsl R4
	rol R5
	lsl R4
	rol R5
	add R4,R2
	adc R5,R3
	sts _OSPrioHighRdy,R4
	.dbline 464
	mov R2,R4
	sts _OSPrioCur,R2
	.dbline 465
	ldi R24,2
	mul R24,R2
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	sts _OSTCBHighRdy+1,R3
	sts _OSTCBHighRdy,R2
	.dbline 466
	sts _OSTCBCur+1,R3
	sts _OSTCBCur,R2
	.dbline 467
	xcall _OSStartHighRdy
	.dbline 468
L33:
	.dbline -2
L32:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r x 22 c
	.dbsym r y 20 c
	.dbend
	.dbfunc e OSTimeTick _OSTimeTick fV
	.dbstruct 0 9 os_event
	.dbfield 0 OSEventType c
	.dbfield 1 OSEventGrp c
	.dbfield 2 OSEventCnt i
	.dbfield 4 OSEventPtr pV
	.dbfield 6 OSEventTbl A[3:3]c
	.dbend
	.dbstruct 0 36 os_tcb
	.dbfield 0 OSTCBStkPtr pc
	.dbfield 2 OSTCBNext pS[os_tcb]
	.dbfield 4 OSTCBPrev pS[os_tcb]
	.dbfield 6 OSTCBEventPtr pS[os_event]
	.dbfield 8 OSTCBMsg pV
	.dbfield 10 OSTCBDly i
	.dbfield 12 OSTCBStat c
	.dbfield 13 OSTCBPrio c
	.dbfield 14 OSTCBX c
	.dbfield 15 OSTCBY c
	.dbfield 16 OSTCBBitX c
	.dbfield 17 OSTCBBitY c
	.dbfield 18 OSTCBCtxSwCtr l
	.dbfield 22 OSTCBCyclesTot l
	.dbfield 26 OSTCBCyclesStart l
	.dbfield 30 OSTCBStkBase pc
	.dbfield 32 OSTCBStkUsed l
	.dbend
;           step -> R20
;         cpu_sr -> R20
;           ptcb -> R22,R23
	.even
_OSTimeTick::
	xcall push_gset2
	.dbline -1
	.dbline 526
; P(

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -