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

📄 ucos_ii.s

📁 基于mega128的ucos参考源码
💻 S
📖 第 1 页 / 共 5 页
字号:
; Pピ
	movw R30,R20
	st Z+,R2
	.dbline 770
; Pピ
; Pピ
; Pピ
; Pピ
	st Z+,R2
	movw R20,R30
	.dbline -2
L61:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r ptbl 20 pc
	.dbsym r pevent 16 pS[os_event]
	.dbend
	.dbfunc s OS_InitEventList _OS_InitEventList fV
;        pevent2 -> R20,R21
;              i -> R22,R23
;        pevent1 -> R10,R11
	.even
_OS_InitEventList:
	xcall push_gset3
	.dbline -1
	.dbline 813
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	.dbline 821
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	ldi R18,40
	ldi R19,0
	ldi R16,<_OSEventTbl
	ldi R17,>_OSEventTbl
	xcall _OS_MemClr
	.dbline 822
; Pピ
	ldi R24,<_OSEventTbl
	ldi R25,>_OSEventTbl
	movw R10,R24
	.dbline 823
; Pピ
	ldi R20,<_OSEventTbl+8
	ldi R21,>_OSEventTbl+8
	.dbline 824
	clr R22
	clr R23
	xjmp L67
L64:
	.dbline 824
	.dbline 825
	clr R2
	movw R30,R10
	std z+0,R2
	.dbline 826
	std z+5,R21
	std z+4,R20
	.dbline 831
	movw R24,R10
	adiw R24,8
	movw R10,R24
	.dbline 832
	subi R20,248  ; offset = 8
	sbci R21,255
	.dbline 833
L65:
	.dbline 824
	subi R22,255  ; offset = 1
	sbci R23,255
L67:
	.dbline 824
; Pピ
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	brlo L64
	.dbline 834
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	clr R2
	movw R30,R10
	std z+0,R2
	.dbline 835
; Pピ
	clr R3
	std z+5,R3
	std z+4,R2
	.dbline 840
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	ldi R24,<_OSEventTbl
	ldi R25,>_OSEventTbl
	sts _OSEventFreeList+1,R25
	sts _OSEventFreeList,R24
	.dbline -2
L62:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r pevent2 20 pS[os_event]
	.dbsym r i 22 i
	.dbsym r pevent1 10 pS[os_event]
	.dbend
	.dbfunc s OS_InitMisc _OS_InitMisc fV
	.even
_OS_InitMisc:
	xcall push_gset2
	.dbline -1
	.dbline 867
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	.dbline 872
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	clr R2
	sts _OSIntNesting,R2
	.dbline 873
; Pピ
	sts _OSLockNesting,R2
	.dbline 875
; Pピ
; Pピ
	sts _OSTaskCtr,R2
	.dbline 877
; Pピ
; Pピ
	sts _OSRunning,R2
	.dbline 879
; Pピ
; Pピ
	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
	.dbline 880
; Pピ
	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 -2
L68:
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc s OS_InitRdyList _OS_InitRdyList fV
;        prdytbl -> R16,R17
;              i -> R18,R19
	.even
_OS_InitRdyList:
	.dbline -1
	.dbline 903
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	.dbline 908
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	clr R2
	sts _OSRdyGrp,R2
	.dbline 909
; Pピ
	ldi R16,<_OSRdyTbl
	ldi R17,>_OSRdyTbl
	.dbline 910
	clr R18
	clr R19
	xjmp L73
L70:
	.dbline 910
	.dbline 911
	clr R2
	movw R30,R16
	st Z+,R2
	movw R16,R30
	.dbline 912
L71:
	.dbline 910
	subi R18,255  ; offset = 1
	sbci R19,255
L73:
	.dbline 910
; Pピ
	cpi R18,2
	ldi R30,0
	cpc R19,R30
	brlo L70
	.dbline 914
; Pピ
; Pピ
; Pピ
; Pピ
	clr R2
	sts _OSPrioCur,R2
	.dbline 915
; Pピ
	sts _OSPrioHighRdy,R2
	.dbline 917
; Pピ
; Pピ
	clr R3
	sts _OSTCBHighRdy+1,R3
	sts _OSTCBHighRdy,R2
	.dbline 918
; Pピ
	sts _OSTCBCur+1,R3
	sts _OSTCBCur,R2
	.dbline -2
L69:
	.dbline 0 ; func end
	ret
	.dbsym r prdytbl 16 pc
	.dbsym r i 18 i
	.dbend
	.dbfunc s OS_InitTaskIdle _OS_InitTaskIdle fV
	.even
_OS_InitTaskIdle:
	sbiw R28,3
	.dbline -1
	.dbline 936
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	.dbline 961
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	ldi R24,8
	std y+2,R24
	ldi R24,<_OSTaskIdleStk+255
	ldi R25,>_OSTaskIdleStk+255
	std y+1,R25
	std y+0,R24
	clr R18
	clr R19
	ldi R16,<PL_OS_TaskIdle
	ldi R17,>PL_OS_TaskIdle
	xcall _OSTaskCreate
	.dbline -2
L74:
	adiw R28,3
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc s OS_InitTCBList _OS_InitTCBList fV
;          ptcb2 -> R20,R21
;              i -> R22
;          ptcb1 -> R10,R11
	.even
_OS_InitTCBList:
	xcall push_gset3
	.dbline -1
	.dbline 1042
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	.dbline 1048
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	ldi R18,238
	ldi R19,0
	ldi R16,<_OSTCBTbl
	ldi R17,>_OSTCBTbl
	xcall _OS_MemClr
	.dbline 1049
; Pピ
	ldi R18,18
	ldi R19,0
	ldi R16,<_OSTCBPrioTbl
	ldi R17,>_OSTCBPrioTbl
	xcall _OS_MemClr
	.dbline 1050
; Pピ
	ldi R24,<_OSTCBTbl
	ldi R25,>_OSTCBTbl
	movw R10,R24
	.dbline 1051
; Pピ
	ldi R20,<_OSTCBTbl+34
	ldi R21,>_OSTCBTbl+34
	.dbline 1052
	clr R22
	xjmp L81
L78:
	.dbline 1052
	.dbline 1053
	movw R30,R10
	std z+3,R21
	std z+2,R20
	.dbline 1058
	movw R24,R10
	adiw R24,34
	movw R10,R24
	.dbline 1059
	subi R20,222  ; offset = 34
	sbci R21,255
	.dbline 1060
L79:
	.dbline 1052
	inc R22
L81:
	.dbline 1052
; Pピ
	cpi R22,6
	brlo L78
	.dbline 1061
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	clr R2
	clr R3
	movw R30,R10
	std z+3,R3
	std z+2,R2
	.dbline 1066
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	sts _OSTCBList+1,R3
	sts _OSTCBList,R2
	.dbline 1067
; Pピ
	ldi R24,<_OSTCBTbl
	ldi R25,>_OSTCBTbl
	sts _OSTCBFreeList+1,R25
	sts _OSTCBFreeList,R24
	.dbline -2
L76:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r ptcb2 20 pS[os_tcb]
	.dbsym r i 22 c
	.dbsym r ptcb1 10 pS[os_tcb]
	.dbend
	.dbfunc e OS_MemClr _OS_MemClr fV
;           size -> R18,R19
;          pdest -> R16,R17
	.even
_OS_MemClr::
	.dbline -1
	.dbline 1091
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	xjmp L84
L83:
	.dbline 1092
	.dbline 1093
	clr R2
	movw R30,R16
	st Z+,R2
	movw R16,R30
	.dbline 1094
	subi R18,1
	sbci R19,0
	.dbline 1095
L84:
	.dbline 1092
; Pピ
	cpi R18,0
	cpc R18,R19
	brne L83
X12:
	.dbline -2
L82:
	.dbline 0 ; func end
	ret
	.dbsym r size 18 i
	.dbsym r pdest 16 pc
	.dbend
	.dbfunc e OS_MemCopy _OS_MemCopy fV
;           size -> R20,R21
;           psrc -> R18,R19
;          pdest -> R16,R17
	.even
_OS_MemCopy::
	xcall push_gset1
	ldd R20,y+2
	ldd R21,y+3
	.dbline -1
	.dbline 1123
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	xjmp L88
L87:
	.dbline 1124
	.dbline 1125
	movw R30,R18
	movw R26,R16
	ld R0,Z+
	movw R18,R30
	st X+,R0
	movw R16,R26
	.dbline 1126
	subi R20,1
	sbci R21,0
	.dbline 1127
L88:
	.dbline 1124
; Pピ
	cpi R20,0
	cpc R20,R21
	brne L87
X13:
	.dbline -2
L86:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r size 20 i
	.dbsym r psrc 18 pc
	.dbsym r pdest 16 pc
	.dbend
	.dbfunc e OS_Sched _OS_Sched fV
;              y -> R12
;         cpu_sr -> R10
	.even
_OS_Sched::
	xcall push_gset4
	.dbline -1
	.dbline 1148
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	.dbline 1155
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
	xcall _OS_CPU_SR_Save
	mov R10,R16
	.dbline 1156
; Pピ
	lds R2,_OSIntNesting
	tst R2
	breq X14
	xjmp L91
X14:
	.dbline 1156
	.dbline 1157
; Pピ
	lds R2,_OSLockNesting
	tst R2
	breq X15
	xjmp L93
X15:
	.dbline 1157
	.dbline 1158
; Pピ
	ldi R24,<_OSUnMapTbl
	ldi R25,>_OSUnMapTbl
	lds R30,_OSRdyGrp
	clr R31
	add R30,R24
	adc R31,R25
	lpm R12,Z
	.dbline 1159
; Pピ
	ldi R24,<_OSRdyTbl
	ldi R25,>_OSRdyTbl
	mov R30,R12
	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
	mov R4,R12
	clr R5
	lsl R4
	rol R5
	lsl R4
	rol R5
	lsl R4
	rol R5
	add R4,R2
	adc R5,R3
	sts _OSPrioHighRdy,R4
	.dbline 1160
; Pピ
	lds R2,_OSPrioCur
	cp R4,R2
	brne X16
	xjmp L95
X16:
	.dbline 1160
	.dbline 1161
; Pピ
	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 1163
; Pピ
; Pピ
	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 1165
; Pピ
; Pピ
	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 1166
; Pピ
	xcall _OSCtxSw
	.dbline 1167
; Pピ
L95:
	.dbline 1168
; Pピ
L93:
	.dbline 1169
; Pピ
L91:
	.dbline 1170
; Pピ
	mov R16,R10
	xcall _OS_CPU_SR_Restore
	.dbline -2
L90:
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym r y 12 c
	.dbsym r cpu_sr 10 c
	.dbend
	.dbfunc e OS_TaskIdle _OS_TaskIdle fV
;         cpu_sr -> R10
;           parg -> R10,R11
	.even
_OS_TaskIdle::
	xcall push_gset3
	movw R10,R16
	.dbline -1
	.dbline 1261
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ
; Pピ

⌨️ 快捷键说明

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