ucos_ii.s

来自「uCOS-II工程文件,使用ICC编译。」· S 代码 · 共 1,132 行 · 第 1/2 页

S
1,132
字号
	.dbline 335
; #include <os_time.c>
	lds R2,_OSLockNesting
	tst R2
	breq X2
	xjmp L14
X2:
	.dbline 335
	.dbline 336
; #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 337
; #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 338
; #include <os_time.c>
	lds R2,_OSPrioCur
	cp R4,R2
	brne X3
	xjmp L16
X3:
	.dbline 338
	.dbline 339
; #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 341
; #include <os_time.c>
; #include <os_time.c>
	movw R24,R2
	adiw R24,16
	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 343
; #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 344
; #include <os_time.c>
	xcall _OSIntCtxSw
	.dbline 345
; #include <os_time.c>
L16:
	.dbline 346
; #include <os_time.c>
L14:
	.dbline 347
; #include <os_time.c>
L12:
	.dbline 348
	mov R16,R10
	xcall _OS_CPU_SR_Restore
	.dbline 349
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 370
; #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 376
; #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 376
	.dbline 377
; #include <os_time.c>
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 378
; #include <os_time.c>
	lds R24,_OSLockNesting
	cpi R24,255
	brsh L21
	.dbline 378
	.dbline 379
; #include <os_time.c>
	subi R24,255    ; addi 1
	sts _OSLockNesting,R24
	.dbline 380
; #include <os_time.c>
L21:
	.dbline 381
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 382
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 404
; #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 410
; #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 410
	.dbline 411
; #include <os_time.c>
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 412
; #include <os_time.c>
	clr R2
	lds R3,_OSLockNesting
	cp R2,R3
	brsh L26
	.dbline 412
	.dbline 413
; #include <os_time.c>
	mov R24,R3
	subi R24,1
	sts _OSLockNesting,R24
	.dbline 414
; #include <os_time.c>
	tst R24
	brne L28
	.dbline 414
	.dbline 415
; #include <os_time.c>
	lds R2,_OSIntNesting
	tst R2
	brne L30
	.dbline 415
	.dbline 416
; #include <os_time.c>
	xcall _OS_CPU_SR_Restore
	.dbline 417
; #include <os_time.c>
	xcall _OS_Sched
	.dbline 418
	xjmp L27
L30:
	.dbline 418
; #include <os_time.c>
	.dbline 419
; #include <os_time.c>
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 420
; #include <os_time.c>
	.dbline 421
	xjmp L27
L28:
	.dbline 421
; #include <os_time.c>
	.dbline 422
; #include <os_time.c>
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 423
; #include <os_time.c>
	.dbline 424
	xjmp L27
L26:
	.dbline 424
; #include <os_time.c>
	.dbline 425
; #include <os_time.c>
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 426
; #include <os_time.c>
L27:
	.dbline 427
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 453
	.dbline 458
	lds R2,_OSRunning
	tst R2
	breq X4
	xjmp L33
X4:
	.dbline 458
	.dbline 459
	ldi R24,<_OSUnMapTbl
	ldi R25,>_OSUnMapTbl
	lds R30,_OSRdyGrp
	clr R31
	add R30,R24
	adc R31,R25
	lpm R20,Z
	.dbline 460
	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 461
	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 462
	mov R2,R4
	sts _OSPrioCur,R2
	.dbline 463
	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 464
	sts _OSTCBCur+1,R3
	sts _OSTCBCur,R2
	.dbline 465
	xcall _OSStartHighRdy
	.dbline 466
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 OSStatInit _OSStatInit fV
;         cpu_sr -> R10
	.even
_OSStatInit::
	xcall push_gset3
	.dbline -1
	.dbline 491
; #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>
; #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>
; #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 497
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
; #include <os_time.c>
	ldi R16,2
	ldi R17,0
	xcall _OSTimeDly
	.dbline 498
; #include <os_time.c>
	xcall _OS_CPU_SR_Save
	.dbline 499
; #include <os_time.c>
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _OSIdleCtr+1,R21
	sts _OSIdleCtr,R20
	sts _OSIdleCtr+2+1,R23
	sts _OSIdleCtr+2,R22
	.dbline 500
; #include <os_time.c>
	xcall _OS_CPU_SR_Restore
	.dbline 501
; #include <os_time.c>
	ldi R16,5
	ldi R17,0
	xcall _OSTimeDly
	.dbline 502
; #include <os_time.c>
	xcall _OS_CPU_SR_Save
	mov R10,R16
	.dbline 503
; #include <os_time.c>
	lds R4,_OSIdleCtr+2
	lds R5,_OSIdleCtr+2+1
	lds R2,_OSIdleCtr
	lds R3,_OSIdleCtr+1
	sts _OSIdleCtrMax+1,R3
	sts _OSIdleCtrMax,R2
	sts _OSIdleCtrMax+2+1,R5
	sts _OSIdleCtrMax+2,R4
	.dbline 504
; #include <os_time.c>
	ldi R24,1
	sts _OSStatRdy,R24
	.dbline 505
; #include <os_time.c>
	xcall _OS_CPU_SR_Restore
	.dbline -2
L35:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 10 c
	.dbend
	.dbfunc e OSTimeTick _OSTimeTick fV
	.dbstruct 0 7 os_event
	.dbfield 0 OSEventType c
	.dbfield 1 OSEventGrp c
	.dbfield 2 OSEventCnt i
	.dbfield 4 OSEventPtr pV
	.dbfield 6 OSEventTbl A[1:1]c
	.dbend
	.dbstruct 0 34 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 OSTCBDly i
	.dbfield 10 OSTCBStat c
	.dbfield 11 OSTCBPrio c
	.dbfield 12 OSTCBX c
	.dbfield 13 OSTCBY c
	.dbfield 14 OSTCBBitX c
	.dbfield 15 OSTCBBitY c
	.dbfield 16 OSTCBCtxSwCtr l
	.dbfield 20 OSTCBCyclesTot l
	.dbfield 24 OSTCBCyclesStart l
	.dbfield 28 OSTCBStkBase pc
	.dbfield 30 OSTCBStkUsed l
	.dbend
;           step -> R20
;         cpu_sr -> R20
;           ptcb -> R22,R23
	.even
_OSTimeTick::
	xcall push_gset2
	.dbline -1
	.dbline 524
; 

⌨️ 快捷键说明

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