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

📄 ucos_ii.s

📁 这是一个UCOS程序
💻 S
📖 第 1 页 / 共 4 页
字号:
;              y -> R20
	.even
_OSStart::
	xcall push_gset2
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	lds R2,_OSRunning
	tst R2
	breq X4
	xjmp L33
X4:
; #include <os_dbg.c>
	ldi R24,<_OSUnMapTbl
	ldi R25,>_OSUnMapTbl
	lds R30,_OSRdyGrp
	clr R31
	add R30,R24
	adc R31,R25
	lpm R20,Z
; #include <os_dbg.c>
	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
; #include <os_dbg.c>
	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
; #include <os_dbg.c>
	mov R2,R4
	sts _OSPrioCur,R2
; #include <os_dbg.c>
	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
; #include <os_dbg.c>
	sts _OSTCBCur+1,R3
	sts _OSTCBCur,R2
; #include <os_dbg.c>
	xcall _OSStartHighRdy
; #include <os_dbg.c>
L33:
L32:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
;         cpu_sr -> R20
;           ptcb -> R22,R23
	.even
_OSTimeTick::
	xcall push_gset2
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	clr R20
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	lds R24,_OSRunning
	cpi R24,1
	breq X7
	xjmp L36
X7:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	lds R22,_OSTCBList
	lds R23,_OSTCBList+1
	xjmp L39
L38:
; #include <os_dbg.c>
; #include <os_dbg.c>
	xcall _OS_CPU_SR_Save
	mov R20,R16
; #include <os_dbg.c>
	movw R30,R22
	ldd R2,z+6
	ldd R3,z+7
	tst R2
	brne X5
	tst R3
	brne X8
	xjmp L41
X8:
X5:
; #include <os_dbg.c>
	movw R24,R22
	adiw R24,6
	movw R30,R24
	ldd R24,z+0
	ldd R25,z+1
	sbiw R24,1
	movw R4,R24
	std z+1,R5
	std z+0,R4
	cpi R24,0
	cpc R24,R25
	breq X9
	xjmp L43
X9:
X6:
; #include <os_dbg.c>
; #include <os_dbg.c>
	movw R30,R22
	ldd R24,z+8
	andi R24,55
	breq L45
; #include <os_dbg.c>
	movw R24,R22
	adiw R24,8
	movw R30,R24
	ldd R24,z+0
	andi R24,200
	std z+0,R24
; #include <os_dbg.c>
	ldi R24,1
	movw R30,R22
	std z+9,R24
	xjmp L46
L45:
; #include <os_dbg.c>
; #include <os_dbg.c>
	clr R2
	movw R30,R22
	std z+9,R2
; #include <os_dbg.c>
L46:
; #include <os_dbg.c>
; #include <os_dbg.c>
	movw R30,R22
	ldd R2,z+8
	sbrc R2,3
	rjmp L47
; #include <os_dbg.c>
	movw R30,R22
	ldd R2,z+14
	lds R3,_OSRdyGrp
	or R3,R2
	sts _OSRdyGrp,R3
; #include <os_dbg.c>
	ldi R24,<_OSRdyTbl
	ldi R25,>_OSRdyTbl
	movw R30,R22
	ldd R2,z+12
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R22
	ldd R4,z+13
	movw R30,R2
	ldd R5,z+0
	or R5,R4
	std z+0,R5
; #include <os_dbg.c>
L47:
; #include <os_dbg.c>
L43:
; #include <os_dbg.c>
L41:
	movw R30,R22
	ldd R22,z+2
	ldd R23,z+3
	mov R16,R20
	xcall _OS_CPU_SR_Restore
L39:
	movw R30,R22
	ldd R24,z+10
	cpi R24,8
	breq X10
	xjmp L38
X10:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
L36:
L35:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.even
_OSVersion::
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	ldi R16,276
	ldi R17,1
L49:
	.dbline 0 ; func end
	ret
	.even
_OS_InitEventList:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
L50:
	.dbline 0 ; func end
	ret
	.even
_OS_InitMisc:
	xcall push_gset2
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	clr R2
	sts _OSIntNesting,R2
; #include <os_dbg.c>
	sts _OSLockNesting,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
	sts _OSTaskCtr,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
	sts _OSRunning,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	sts _OSCtxSwCtr+1,R21
	sts _OSCtxSwCtr,R20
	sts _OSCtxSwCtr+2+1,R23
	sts _OSCtxSwCtr+2,R22
; #include <os_dbg.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
L51:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
;        prdytbl -> R16,R17
;              i -> R18
	.even
_OS_InitRdyList:
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	clr R2
	sts _OSRdyGrp,R2
; #include <os_dbg.c>
	ldi R16,<_OSRdyTbl
	ldi R17,>_OSRdyTbl
	clr R18
	xjmp L56
L53:
	clr R2
	movw R30,R16
	st Z+,R2
	movw R16,R30
L54:
	inc R18
L56:
; #include <os_dbg.c>
	cpi R18,2
	brlo L53
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	clr R2
	sts _OSPrioCur,R2
; #include <os_dbg.c>
	sts _OSPrioHighRdy,R2
; #include <os_dbg.c>
; #include <os_dbg.c>
	clr R3
	sts _OSTCBHighRdy+1,R3
	sts _OSTCBHighRdy,R2
; #include <os_dbg.c>
	sts _OSTCBCur+1,R3
	sts _OSTCBCur,R2
L52:
	.dbline 0 ; func end
	ret
	.even
_OS_InitTaskIdle:
	sbiw R28,3
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
; #include <os_dbg.c>
	ldi R24,8
	std y+2,R24
	ldi R24,<_OSTaskIdleStk+127
	ldi R25,>_OSTaskIdleStk+127
	std y+1,R25
	std y+0,R24
	clr R18
	clr R19
	ldi R16,<PL_OS_TaskIdle
	ldi R17,>PL_OS_TaskIdle
	xcall _OSTaskCreate
L57:

⌨️ 快捷键说明

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