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

📄 ucos_ii.s

📁 atmel128L
💻 S
📖 第 1 页 / 共 5 页
字号:
	ldd R24,z+0
	cpi R24,3
	breq L148
	.dbline 334
	.dbline 335
	ldi R16,1
	xjmp L147
L148:
	.dbline 337
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 338
	movw R30,R22
	ldd R2,z+1
	tst R2
	breq L150
	.dbline 338
	.dbline 339
	ldi R24,1
	std y+0,R24
	clr R18
	clr R19
	movw R16,R30
	xcall _OS_EventTaskRdy
	.dbline 340
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 341
	xcall _OS_Sched
	.dbline 342
	clr R16
	xjmp L147
L150:
	.dbline 344
	movw R30,R22
	ldd R24,z+2
	ldd R25,z+3
	st -y,R30
	cpi R24,255
	ldi R30,255
	cpc R25,R30
	ld R30,y+
	brsh L152
	.dbline 344
	.dbline 345
	adiw R30,2
	ldd R24,z+0
	ldd R25,z+1
	adiw R24,1
	std z+1,R25
	std z+0,R24
	.dbline 346
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 347
	clr R16
	xjmp L147
L152:
	.dbline 349
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 350
	ldi R16,50
	.dbline -2
L147:
	adiw R28,1
	xcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 20 c
	.dbsym r pevent 22 pX
	.dbend
	.dbfunc e OSSemQuery _OSSemQuery fc
;         cpu_sr -> R20
;          pdest -> R12,R13
;           psrc -> R14,R15
;     p_sem_data -> R22,R23
;         pevent -> R10,R11
	.even
_OSSemQuery::
	xcall push_gset5
	movw R22,R18
	movw R10,R16
	.dbline -1
	.dbline 373
	.dbline 386
	movw R30,R10
	ldd R24,z+0
	cpi R24,3
	breq L155
	.dbline 386
	.dbline 387
	ldi R16,1
	xjmp L154
L155:
	.dbline 389
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 390
	movw R30,R10
	ldd R2,z+1
	movw R30,R22
	std z+4,R2
	.dbline 391
	movw R24,R10
	adiw R24,6
	movw R14,R24
	.dbline 392
	movw R24,R30
	adiw R24,2
	.dbline 394
	movw R30,R14
	movw R26,R24
	ld R0,Z+
	st X+,R0
	.dbline 398
	ld R0,Z+
	movw R14,R30
	st X+,R0
	movw R12,R26
	.dbline 424
	movw R30,R10
	ldd R2,z+2
	ldd R3,z+3
	movw R30,R22
	std z+1,R3
	std z+0,R2
	.dbline 425
	xcall _OS_CPU_SR_Restore
	.dbline 426
	clr R16
	.dbline -2
L154:
	xcall pop_gset5
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 20 c
	.dbsym r pdest 12 pc
	.dbsym r psrc 14 pc
	.dbsym r p_sem_data 22 pX
	.dbsym r pevent 10 pX
	.dbend
	.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/os_task.c
	.dbfunc e OSTaskChangePrio _OSTaskChangePrio fc
;         pevent -> R10,R11
;           bity -> R12
;           bitx -> R22
;              x -> R14
;         cpu_sr -> y+1
;          y_old -> R20
;              y -> y+0
;           ptcb -> R6,R7
;        newprio -> y+12
;        oldprio -> R20
	.even
_OSTaskChangePrio::
	st -y,r19
	st -y,r18
	xcall push_gset5
	mov R20,R16
	sbiw R28,2
	.dbline -1
	.dbline 41
	.dbline 68
	xcall _OS_CPU_SR_Save
	std y+1,R16
	.dbline 69
	ldi R24,2
	ldd R0,y+12
	mul R24,R0
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	tst R2
	brne X27
	tst R3
	breq L158
X27:
	.dbline 69
	.dbline 70
	ldd R16,y+1
	xcall _OS_CPU_SR_Restore
	.dbline 71
	ldi R16,40
	xjmp L157
L158:
	.dbline 73
	cpi R20,255
	brne L160
	.dbline 73
	.dbline 74
	lds R30,_OSTCBCur
	lds R31,_OSTCBCur+1
	ldd R20,z+11
	.dbline 75
L160:
	.dbline 76
	ldi R24,2
	mul R24,R20
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	ldd R6,z+0
	ldd R7,z+1
	.dbline 77
	tst R6
	brne L162
	tst R7
	brne L162
X28:
	.dbline 77
	.dbline 78
	ldd R16,y+1
	push R6
	push R7
	xcall _OS_CPU_SR_Restore
	pop R7
	pop R6
	.dbline 79
	ldi R16,41
	xjmp L157
L162:
	.dbline 81
	ldd R2,y+12
	lsr R2
	lsr R2
	lsr R2
	std y+0,R2
	.dbline 82
	ldi R24,<_OSMapTbl
	ldi R25,>_OSMapTbl
	mov R30,R2
	clr R31
	add R30,R24
	adc R31,R25
	lpm R12,Z
	.dbline 83
	ldd R24,y+12
	andi R24,7
	mov R14,R24
	.dbline 84
	ldi R24,<_OSMapTbl
	ldi R25,>_OSMapTbl
	mov R30,R14
	clr R31
	add R30,R24
	adc R31,R25
	lpm R22,Z
	.dbline 85
	ldi R24,2
	mul R24,R20
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	clr R2
	clr R3
	std z+1,R3
	std z+0,R2
	.dbline 86
	ldi R24,2
	ldd R0,y+12
	mul R24,R0
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	std z+1,R7
	std z+0,R6
	.dbline 87
	movw R30,R6
	ldd R20,z+13
	.dbline 88
	ldi R24,<_OSRdyTbl
	ldi R25,>_OSRdyTbl
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	movw R30,R6
	ldd R3,z+14
	and R2,R3
	brne X30
	xjmp L164
X30:
	.dbline 88
	.dbline 89
	mov R2,R20
	clr R3
	add R2,R24
	adc R3,R25
	ldd R4,z+14
	com R4
	movw R30,R2
	ldd R5,z+0
	and R5,R4
	std z+0,R5
	.dbline 90
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	tst R2
	brne L166
	.dbline 90
	.dbline 91
	movw R30,R6
	ldd R2,z+15
	com R2
	lds R3,_OSRdyGrp
	and R3,R2
	sts _OSRdyGrp,R3
	.dbline 92
L166:
	.dbline 93
	lds R2,_OSRdyGrp
	or R2,R12
	sts _OSRdyGrp,R2
	.dbline 94
	ldi R24,<_OSRdyTbl
	ldi R25,>_OSRdyTbl
	ldd R2,y+0
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R4,z+0
	or R4,R22
	std z+0,R4
	.dbline 96
	xjmp L165
L164:
	.dbline 96
	.dbline 97
	movw R30,R6
	ldd R10,z+6
	ldd R11,z+7
	.dbline 98
	tst R10
	brne X29
	tst R11
	brne X31
	xjmp L168
X31:
X29:
	.dbline 98
	.dbline 99
	movw R24,R10
	adiw R24,6
	mov R2,R20
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R6
	ldd R4,z+14
	com R4
	movw R30,R2
	ldd R5,z+0
	and R5,R4
	std z+0,R5
	.dbline 100
	movw R24,R10
	adiw R24,6
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	tst R2
	brne L170
	.dbline 100
	.dbline 101
	movw R24,R10
	adiw R24,1
	movw R30,R6
	ldd R4,z+15
	com R4
	movw R30,R24
	ldd R5,z+0
	and R5,R4
	std z+0,R5
	.dbline 102
L170:
	.dbline 103
	movw R24,R10
	adiw R24,1
	movw R30,R24
	ldd R4,z+0
	or R4,R12
	std z+0,R4
	.dbline 104
	movw R24,R10
	adiw R24,6
	ldd R2,y+0
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R4,z+0
	or R4,R22
	std z+0,R4
	.dbline 105
L168:
	.dbline 107
L165:
	.dbline 108
	movw R30,R6
	ldd R0,y+12
	std z+11,R0
	.dbline 109
	ldd R0,y+0
	std z+13,R0
	.dbline 110
	std z+12,R14
	.dbline 111
	std z+15,R12
	.dbline 112
	std z+14,R22
	.dbline 113
	ldd R16,y+1
	xcall _OS_CPU_SR_Restore
	.dbline 114
	xcall _OS_Sched
	.dbline 115
	clr R16
	.dbline -2
L157:
	adiw R28,2
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym r pevent 10 pX
	.dbsym r bity 12 c
	.dbsym r bitx 22 c
	.dbsym r x 14 c
	.dbsym l cpu_sr 1 c
	.dbsym r y_old 20 c
	.dbsym l y 0 c
	.dbsym r ptcb 6 pX
	.dbsym l newprio 12 c
	.dbsym r oldprio 20 c
	.dbend
	.dbfunc e OSTaskCreate _OSTaskCreate fc
;            psp -> R12,R13
;            err -> R12
;         cpu_sr -> R10
;           prio -> R14
;           ptos -> y+24
;          p_arg -> y+22
;           task -> R12,R13
	.even
_OSTaskCreate::
	st -y,r19
	st -y,r18
	xcall push_gset5
	movw R12,R16
	sbiw R28,12
	ldd R14,y+26
	.dbline -1
	.dbline 160
	.dbline 173
	xcall _OS_CPU_SR_Save
	mov R10,R16
	.dbline 174
	ldi R24,2
	mul R24,R14
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	tst R2
	breq X33
	xjmp L173
X33:
	tst R3
	breq X34
	xjmp L173
X34:
X32:
	.dbline 174
	.dbline 175
	ldi R24,2
	mul R24,R14
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	ldi R24,1
	ldi R25,0
	std z+1,R25
	std z+0,R24
	.dbline 177
	mov R16,R10
	xcall _OS_CPU_SR_Restore
	.dbline 178
	clr R2
	clr R3
	std y+3,R3
	std y+2,R2
	ldd R0,y+24
	ldd R1,y+25
	std y+1,R1
	std y+0,R0
	ldd R18,y+22
	ldd R19,y+23
	movw R16,R12
	xcall _OSTaskStkInit
	movw R12,R16
	.dbline 179
	clr R2
	clr R3
	std y+11,R3
	std y+10,R2
	std y+9,R3
	std y+8,R2
	ldi R20,0
	ldi R21,0
	ldi R22,0
	ldi R23,0
	std y+4,R20
	std y+5,R21
	std y+6,R22
	std y+7,R23
	std y+3,R3
	std y+2,R2
	std y+1,R3
	std y+0,R2
	movw R18,R12
	mov R16,R14
	xcall _OS_TCBInit
	mov R12,R16
	.dbline 180
	tst R16
	brne L175
	.dbline 180
	.dbline 181
	xcall _OS_CPU_SR_Save
	mov R10,R16
	.dbline 182
	lds R24,_OSTaskCtr
	subi R24,255    ; addi 1
	sts _OSTaskCtr,R24
	.dbline 183
	xcall _OS_CPU_SR_Restore
	.dbline 184
	lds R24,_OSRunning
	cpi R24,1
	brne L176
	.dbline 184
	.dbline 185
	xcall _OS_Sched
	.dbline 186
	.dbline 187
	xjmp L176
L175:
	.dbline 187
	.dbline 188
	xcall _OS_CPU_SR_Save
	mov R10,R16
	.dbline 189
	ldi R24,2
	mul R24,R14
	movw R30,R0
	ldi R24,<_OSTCBPrioTbl
	ldi R25,>_OSTCBPrioTbl
	add R30,R24
	adc R31,R25
	clr R2
	clr R3
	std z+1,R3
	std z+0,R2
	.dbline 190
	xcall _OS_CPU_SR_Restore
	.dbline 191
L176:
	.dbline 192
	mov R16,R12
	xjmp L172
L173:
	.dbline 194
	mov R16,R10
	xcall _OS_CPU_SR_Restore
	.dbline 195
	ldi R16,40
	.dbline -2
L172:
	adiw R28,12
	xcall pop_gset5
	adiw R28,2
	.dbline 0 ; func end
	ret
	.dbsym r psp 12 pc
	.dbsym r err 12 c
	.dbsym r cpu_sr 10 c
	.dbsym r prio 14 c
	.dbsym l ptos 24 pc
	.dbsym l p_arg 22 pV
	.dbsym r task 12 pfV
	.dbend
	.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/os_time.c
	.dbfunc e OSTimeDly _OSTimeDly fV
;         cpu_sr -> R20
;              y -> R10
;          ticks -> R22,R23
	.even
_OSTimeDly::
	xcall push_gset3
	movw R22,R16
	.dbline -1
	.dbline 36
	.dbline 43
	cpi R22,0
	cpc R22,R23
	brne X36
	xjmp L180
X36:
X35:
	.dbline 43
	.dbline 44
	xcall _OS_CPU_SR_Save
	mov R20,R16
	.dbline 45
	lds R30,_OSTCBCur
	lds R31,_OSTCBCur+1
	ldd R10,z+13
	.dbline 46
	ldi R24,<_OSRdyTbl
	ldi R25,>_OSRdyTbl
	mov R2,R10
	clr R3
	add R2,R24
	adc R3,R25
	ldd R4,z+14
	com R4
	movw R30,R2
	ldd R5,z+0
	and R5,R4
	std z+0,R5
	.dbline 47
	mov R30,R10
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	tst R2
	brne L182
	.dbline 47
	.dbline 48
	lds R30,_OSTCBCur
	lds R31,_OSTCBCur+1
	ldd R2,z+15
	com R2
	lds R3,_OSRdyGrp
	and R3,R2
	sts _OSRdyGrp,R3
	.dbline 49
L182:
	.dbline 50
	lds R30,_OSTCBCur
	lds R31,_OSTCBCur+1
	std z+9,R23
	std z+8,R22
	.dbline 51
	mov R16,R20
	xcall _OS_CPU_SR_Restore
	.dbline 52
	xcall _OS_Sched
	.dbline 53
L180:
	.dbline -2
	.dbline 54
L179:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r cpu_sr 20 c
	.dbsym r y 10 c
	.dbsym r ticks 22 i
	.dbend
	.dbfunc e OSTimeDlyHMSM _OSTimeDlyHMSM fc
;          ticks -> y+0
;          loops -> R10,R11
;          milli -> y+14
;        seconds -> y+12
;        minutes -> R12
;          hours -> R10
	.even
_OSTimeDlyHMSM::
	xcall push_gset4
	mov R12,R18
	mov R10,R16
	sbiw R28,4
	.dbline -1
	.dbline 83
	.dbline 88
	tst R10
	brne L185
	.dbline 88
	.dbline 89
	tst R12
	brne L187
	.dbline 89
	.dbline 90
	ldd R0,y+12
	tst R0
	brne L189
	.dbline 90
	.dbline 91
	ldd R0,y+14
	ldd R1,y+15
	tst R0
	brne L191
	tst R1
	brne L191
X37:
	.dbline 91
	.dbline 92
	ldi R16,84
	xjmp L184
L191:
	.dbline 94
L189:
	.dbline 95
L187:
	.dbline 96
L185:
	.dbline 97
	ldi R24,59
	cp R24,R12
	brsh L193
	.dbline 97
	.dbline 98
	ldi R16,81
	xjmp L184
L193:
	.dbline 100
	ldi R24,59
	ldd R0,y+12
	cp R24,R0
	brsh L195
	.dbline 100
	.dbline 101
	ldi R16,82
	xjmp L184
L195:
	.dbline 103
	ldi R24,999
	ldi R25,3
	ldd R0,y+14
	ldd R1,y+15
	cp R24,R0
	cpc R25,R1
	brsh L197
	.dbline 103
	.dbline 104
	ldi R16,83
	xjmp L184
L197:
	.dbline 108
	mov R2,R12
	clr R3
	clr R4
	clr R5
	ldi R20,60
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R5
	st -y,R4
	st -y,R3
	st -y,R2
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	mov R6,R10
	clr R7
	clr R8
	clr R9
	ldi R20,16
	ldi R21,14
	ldi R22,0
	ldi R23,0
	st -y,R9
	st -y,R8
	st -y,R7
	st -y,R6
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R6,R16
	movw R8,R18
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	ldd R2,y+12
	clr R3
	clr R4
	clr R5
	add R6,R2
	adc R7,R3
	adc R8,R4
	adc R9,R5
	ldi R20,50
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R9
	st -y,R8
	st -y,R7
	st -y,R6
	movw R16,R20
	movw R18,R22
	xcall empy32u
	movw R2,R16
	movw R4,R18
	ldi R20,10
	ldi R21,0
	ldi R22,0
	ldi R23,0
	ldd R6,y+14
	ldd R7,y+15
	clr R8
	clr R9
	add R6,R20
	adc R7,R21
	adc R8,R22
	adc R9,R23
	ldi R20,50
	ldi R21,0
	ldi R22,0
	ldi R23,0
	st -y,R9
	st -y,R8
	st -y,R7
	st -y,R6
	movw R16,R20
	movw R18,R22
	xcall empy32u
	ldi R20,232
	ldi R21,3
	ldi R22,0
	ldi R23,0
	st -y,R23
	st -y,R22
	st -y,R21
	st -y,R20
	xcall div32u
	add R2,R16
	adc R3,R17
	adc R4,R18
	adc R5,R19
	movw R30,R28
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 110
	movw R10,R4
	.dbline 111
	ldi R20,255
	ldi R21,255
	ldi R22,0
	ldi R23,0
	and R2,R20
	and R3,R21
	and R4,R22
	and R5,R23
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 112
	ldd R16,z+0
	ldd R17,z+1
	xcall _OSTimeDly
	xjmp L200
L199:
	.dbline 113
	.dbline 114
	ldi R16,32768
	ldi R17,128
	xcall _OSTimeDly
	.dbline 115
	ldi R16,32768
	ldi R17,128
	xcall _OSTimeDly
	.dbline 116
	movw R24,R10
	sbiw R24,1
	movw R10,R24
	.dbline 117
L200:
	.dbline 113
	tst R10
	brne L199
	tst R11
	brne L199
X38:
	.dbline 118
	clr R16
	.dbline -2
L184:
	adiw R28,4
	xcall pop_gset4
	.dbline 0 ; func end
	ret
	.dbsym l ticks 0 l
	.dbsym r loops 10 i
	.dbsym l milli 14 i
	.dbsym l seconds 12 c
	.dbsym r minutes 12 c
	.dbsym r hours 10 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/os_time.c
_OSTCBTbl::
	.blkb 238
	.dbfile /UCOS-II_AVR_ICC/RTOSIC~1/OS_SOURCE/ucos_ii.h
	.dbsym e OSTCBTbl _OSTCBTbl A[238:7]X
_OSTCBPrioTbl::
	.blkb 18
	.dbsym e OSTCBPrioTbl _OSTCBPrioTbl A[18:9]pX
_OSTCBList::
	.blkb 2
	.dbsym e OSTCBList _OSTCBList pX
_OSTCBHighRdy::
	.blkb 2
	.dbsym e OSTCBHighRdy _OSTCBHighRdy pX
_OSTCBFreeList::
	.blkb 2
	.dbsym e OSTCBFreeList _OSTCBFreeList pX
_OSTCBCur::
	.blkb 2
	.dbsym e 

⌨️ 快捷键说明

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