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

📄 ucos_ii.s

📁 atmel128L
💻 S
📖 第 1 页 / 共 5 页
字号:
	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
	.dbline 851
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
L62:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r pevent2 20 pX
	.dbsym r i 22 i
	.dbsym r pevent1 10 pX
	.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
	.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
	.dbline 887
; p
; p
; p
; p
; p
; p
; p
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
	.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
	.dbline 919
; p
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
	.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
	.dbline 972
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
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
	.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,R30
	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
	.dbline 1068
; p
L76:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r ptcb2 20 pX
	.dbsym r i 22 c
	.dbsym r ptcb1 10 pX
	.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
	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
X11:
	.dbline -2
	.dbline 1096
; p
; p
; p
; p
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
	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
X12:
	.dbline -2
	.dbline 1128
; p
; p
; p
; p
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
	.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 X13
	xjmp L91
X13:
	.dbline 1156
	.dbline 1157
; p
	lds R2,_OSLockNesting
	tst R2
	breq X14
	xjmp L93
X14:
	.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 X15
	xjmp L95
X15:
	.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
	.dbline 1171
; p
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
; 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
; p
	.dbline 1267
; p
; p
; p
; p
; p
; p
	.dbline 1268
L98:
	.dbline 1268
	.dbline 1269
	xcall _OS_CPU_SR_Save
	mov R10,R16
	.dbline 1270
	ldi R20,1
	ldi R21,0
	ldi R22,0
	ldi R23,0
	lds R4,_OSIdleCtr+2
	lds R5,_OSIdleCtr+2+1
	lds R2,_OSIdleCtr
	lds R3,_OSIdleCtr+1
	add R2,R20
	adc R3,R21
	adc R4,R22
	adc R5,R23
	sts _OSIdleCtr+1,R3
	sts _OSIdleCtr,R2
	sts _OSIdleCtr+2+1,R5
	sts _OSIdleCtr+2,R4
	.dbline 1271
	xcall _OS_CPU_SR_Restore
	.dbline 1272
	xcall _OSTaskIdleHook
	.dbline 1273
	.dbline 1268
	.dbline 1268
	xjmp L98
X16:
	.dbline -2
L97:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 10 c
	.dbsym r parg 10 pV
	.dbend
	.dbfunc e OS_TCBInit _OS_TCBInit fc
;         cpu_sr -> R10
;           ptcb -> R12,R13
;            opt -> y+22
;           pext -> y+20
;       stk_size -> y+16
;             id -> y+14
;           pbos -> y+12
;           ptos -> y+10
;           prio -> R14
	.even
_OS_TCBInit::
	st -y,r19
	st -y,r18
	xcall push_gset5
	mov R14,R16
	.dbline -1
	.dbline 1428
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p
; p

⌨️ 快捷键说明

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