?? ucos_ii.s
字號:
.module Ucos_ii.c
.area lit(rom, con, rel)
_OSMapTbl::
.byte 1,2
.byte 4,8
.byte 16,32
.byte 64,128
.dbfile D:\job\avrtest\光盤\開發(fā)板\iccavr\source/os_core.c
.dbsym e OSMapTbl _OSMapTbl A[8:8]kc
_OSUnMapTbl::
.byte 0,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 5,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 6,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 5,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 7,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 5,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 6,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 5,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 4,0
.byte 1,0
.byte 2,0
.byte 1,0
.byte 3,0
.byte 1,0
.byte 2,0
.byte 1,0
.dbsym e OSUnMapTbl _OSUnMapTbl A[256:256]kc
.area text(rom, con, rel)
.dbfile D:\job\avrtest\光盤\開發(fā)板\iccavr\source/os_core.c
.dbfunc e OSInit _OSInit fV
; i -> R10,R11
.even
_OSInit::
rcall push_gset3x
sbiw R28,3
.dbline -1
.dbline 77
; /*
; *********************************************************************************************************
; * uC/OS-II
; * The Real-Time Kernel
; *
; * (c) Copyright 1992-1998, Jean J. Labrosse, Plantation, FL
; * All Rights Reserved
; *
; * V2.00
; *
; * File : uCOS_II.C
; * By : Jean J. Labrosse
; *********************************************************************************************************
; */
;
; #define OS_GLOBALS /* Declare GLOBAL variables */
; #include "includes.h"
;
;
; #define OS_MASTER_FILE /* Prevent the following files from including includes.h */
; #include "os_core.c"
; #include "os_task.c"
; #include "os_time.c"
; #include "74164.c"
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 81
;
;
;
;
ldi R24,0
ldi R25,0
ldi R26,0
ldi R27,0
sts _OSTime+1,R25
sts _OSTime,R24
sts _OSTime+2+1,R27
sts _OSTime+2,R26
.dbline 82
;
clr R2
sts _OSIntNesting,R2
.dbline 83
;
sts _OSLockNesting,R2
.dbline 85
;
;
sts _OSTaskCtr,R2
.dbline 87
;
;
sts _OSRunning,R2
.dbline 88
;
ldi R24,0
ldi R25,0
ldi R26,0
ldi R27,0
sts _OSIdleCtr+1,R25
sts _OSIdleCtr,R24
sts _OSIdleCtr+2+1,R27
sts _OSIdleCtr+2,R26
.dbline 90
;
;
ldi R24,0
ldi R25,0
ldi R26,0
ldi R27,0
sts _OSCtxSwCtr+1,R25
sts _OSCtxSwCtr,R24
sts _OSCtxSwCtr+2+1,R27
sts _OSCtxSwCtr+2,R26
.dbline 91
;
sts _OSRdyGrp,R2
.dbline 92
clr R10
clr R11
rjmp L6
L3:
.dbline 92
.dbline 93
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
movw R30,R10
add R30,R24
adc R31,R25
clr R2
std z+0,R2
.dbline 94
L4:
.dbline 92
movw R24,R10
adiw R24,1
movw R10,R24
L6:
.dbline 92
;
movw R24,R10
cpi R24,2
ldi R30,0
cpc R25,R30
brlo L3
.dbline 96
;
;
;
;
clr R2
sts _OSPrioCur,R2
.dbline 97
;
sts _OSPrioHighRdy,R2
.dbline 98
;
clr R3
sts _OSTCBHighRdy+1,R3
sts _OSTCBHighRdy,R2
.dbline 99
;
sts _OSTCBCur+1,R3
sts _OSTCBCur,R2
.dbline 100
;
sts _OSTCBList+1,R3
sts _OSTCBList,R2
.dbline 101
clr R10
clr R11
rjmp L10
L7:
.dbline 101
.dbline 102
ldi R16,2
ldi R17,0
movw R18,R10
rcall empy16s
movw R30,R16
ldi R24,<_OSTCBPrioTbl
ldi R25,>_OSTCBPrioTbl
add R30,R24
adc R31,R25
clr R2
clr R3
std z+0,R2
std z+1,R3
.dbline 103
L8:
.dbline 101
movw R24,R10
adiw R24,1
movw R10,R24
L10:
.dbline 101
;
movw R24,R10
cpi R24,16
ldi R30,0
cpc R25,R30
brlo L7
.dbline 104
clr R10
clr R11
rjmp L14
L11:
.dbline 104
.dbline 105
movw R18,R10
subi R18,255 ; offset = 1
sbci R19,255
ldi R16,14
ldi R17,0
rcall empy16s
movw R2,R16
ldi R24,<_OSTCBTbl
ldi R25,>_OSTCBTbl
add R2,R24
adc R3,R25
ldi R16,14
ldi R17,0
movw R18,R10
rcall empy16s
movw R30,R16
ldi R24,<_OSTCBTbl+2
ldi R25,>_OSTCBTbl+2
add R30,R24
adc R31,R25
std z+0,R2
std z+1,R3
.dbline 106
L12:
.dbline 104
movw R24,R10
adiw R24,1
movw R10,R24
L14:
.dbline 104
;
;
;
movw R24,R10
cpi R24,5
ldi R30,0
cpc R25,R30
brlo L11
.dbline 107
;
;
;
clr R2
clr R3
sts _OSTCBTbl+70+2+1,R3
sts _OSTCBTbl+70+2,R2
.dbline 108
;
ldi R24,<_OSTCBTbl
ldi R25,>_OSTCBTbl
sts _OSTCBFreeList+1,R25
sts _OSTCBFreeList,R24
.dbline 111
clr R10
clr R11
rjmp L21
L18:
.dbline 111
.dbline 112
movw R18,R10
subi R18,255 ; offset = 1
sbci R19,255
ldi R16,8
ldi R17,0
rcall empy16s
movw R2,R16
ldi R24,<_OSEventTbl
ldi R25,>_OSEventTbl
add R2,R24
adc R3,R25
ldi R16,8
ldi R17,0
movw R18,R10
rcall empy16s
movw R30,R16
ldi R24,<_OSEventTbl
ldi R25,>_OSEventTbl
add R30,R24
adc R31,R25
std z+0,R2
std z+1,R3
.dbline 113
L19:
.dbline 111
movw R24,R10
adiw R24,1
movw R10,R24
L21:
.dbline 111
;
;
;
movw R24,R10
cpi R24,1
ldi R30,0
cpc R25,R30
brlo L18
.dbline 114
;
;
;
clr R2
clr R3
sts _OSEventTbl+8+1,R3
sts _OSEventTbl+8,R2
.dbline 115
;
ldi R24,<_OSEventTbl
ldi R25,>_OSEventTbl
sts _OSEventFreeList+1,R25
sts _OSEventFreeList,R24
.dbline 119
;
;
;
;
ldi R24,15
std y+2,R24
ldi R24,<_OSTaskIdleStk+99
ldi R25,>_OSTaskIdleStk+99
std y+0,R24
std y+1,R25
clr R18
clr R19
ldi R16,<PL_OSTaskIdle
ldi R17,>PL_OSTaskIdle
rcall _OSTaskCreate
.dbline -2
.dbline 124
;
;
;
;
;
L2:
adiw R28,3
rcall pop_gset3x
.dbline 0 ; func end
ret
.dbsym r i 10 i
.dbend
.dbfunc e OSIntExit _OSIntExit fV
.even
_OSIntExit::
.dbline -1
.dbline 146
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 147
;
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 147
.dbline 148
;
lds R24,_OSIntNesting
subi R24,1
mov R2,R24
sts _OSIntNesting,R2
lds R4,_OSLockNesting
or R2,R4
breq X0
rjmp L25
X0:
.dbline 148
.dbline 149
;
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
lds R30,_OSRdyGrp
clr R31
add R30,R24
adc R31,R25
lpm R30,Z
sts _OSIntExitY,R30
.dbline 150
;
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 151
;
lds R2,_OSPrioCur
cp R4,R2
breq L27
.dbline 151
.dbline 152
;
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 153
;
ldi R24,1
ldi R25,0
ldi R26,0
ldi R27,0
lds R4,_OSCtxSwCtr+2
lds R5,_OSCtxSwCtr+2+1
lds R2,_OSCtxSwCtr
lds R3,_OSCtxSwCtr+1
add R2,R24
adc R3,R25
adc R4,R26
adc R5,R27
sts _OSCtxSwCtr+1,R3
sts _OSCtxSwCtr,R2
sts _OSCtxSwCtr+2+1,R5
sts _OSCtxSwCtr+2,R4
.dbline 154
;
rcall _OSIntCtxSw
.dbline 155
;
L27:
.dbline 156
;
L25:
.dbline 157
;
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 157
.dbline -2
.dbline 158
;
L24:
.dbline 0 ; func end
ret
.dbend
.dbfunc e OSSched _OSSched fV
; y -> R10
.even
_OSSched::
rcall push_gset3x
.dbline -1
.dbline 178
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 182
;
;
;
;
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 182
.dbline 183
;
lds R2,_OSIntNesting
lds R3,_OSLockNesting
or R3,R2
breq X1
rjmp L30
X1:
.dbline 183
.dbline 184
;
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
lds R30,_OSRdyGrp
clr R31
add R30,R24
adc R31,R25
lpm R10,Z
.dbline 185
;
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R30,R10
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,R10
clr R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
add R4,R2
adc R5,R3
sts _OSPrioHighRdy,R4
.dbline 186
;
lds R2,_OSPrioCur
cp R4,R2
breq L32
.dbline 186
.dbline 187
;
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 188
;
ldi R24,1
ldi R25,0
ldi R26,0
ldi R27,0
lds R4,_OSCtxSwCtr+2
lds R5,_OSCtxSwCtr+2+1
lds R2,_OSCtxSwCtr
lds R3,_OSCtxSwCtr+1
add R2,R24
adc R3,R25
adc R4,R26
adc R5,R27
sts _OSCtxSwCtr+1,R3
sts _OSCtxSwCtr,R2
sts _OSCtxSwCtr+2+1,R5
sts _OSCtxSwCtr+2,R4
.dbline 189
;
rcall _OSCtxSw
.dbline 190
;
L32:
.dbline 191
;
L30:
.dbline 192
;
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 192
.dbline -2
.dbline 193
;
L29:
rcall pop_gset3x
.dbline 0 ; func end
ret
.dbsym r y 10 c
.dbend
.dbfunc e OSStart _OSStart fV
; x -> R12
; y -> R10
.even
_OSStart::
rcall push_gset4x
.dbline -1
.dbline 214
.dbline 219
lds R2,_OSRunning
tst R2
breq X2
rjmp L35
X2:
.dbline 219
.dbline 220
ldi R24,<_OSUnMapTbl
ldi R25,>_OSUnMapTbl
lds R30,_OSRdyGrp
clr R31
add R30,R24
adc R31,R25
lpm R10,Z
.dbline 221
ldi R24,<_OSRdyTbl
ldi R25,>_OSRdyTbl
mov R30,R10
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 R12,Z
.dbline 222
mov R2,R12
clr R3
mov R4,R10
clr R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
add R4,R2
adc R5,R3
sts _OSPrioHighRdy,R4
.dbline 223
mov R2,R4
sts _OSPrioCur,R2
.dbline 224
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 225
sts _OSTCBCur+1,R3
sts _OSTCBCur,R2
.dbline 226
rcall _OSStartHighRdy
.dbline 227
L35:
.dbline -2
.dbline 228
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
L34:
rcall pop_gset4x
.dbline 0 ; func end
ret
.dbsym r x 12 c
.dbsym r y 10 c
.dbend
.dbfunc e OSTaskIdle _OSTaskIdle fV
; pdata -> R16,R17
.even
_OSTaskIdle::
.dbline -1
.dbline 244
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 245
;
.dbline 246
L38:
.dbline 246
.dbline 247
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 247
.dbline 248
ldi R24,1
ldi R25,0
ldi R26,0
ldi R27,0
lds R4,_OSIdleCtr+2
lds R5,_OSIdleCtr+2+1
lds R2,_OSIdleCtr
lds R3,_OSIdleCtr+1
add R2,R24
adc R3,R25
adc R4,R26
adc R5,R27
sts _OSIdleCtr+1,R3
sts _OSIdleCtr,R2
sts _OSIdleCtr+2+1,R5
sts _OSIdleCtr+2,R4
.dbline 249
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
.dbline 249
.dbline 250
.dbline 246
.dbline 246
rjmp L38
X3:
.dbline -2
L37:
.dbline 0 ; func end
ret
.dbsym r pdata 16 pV
.dbend
.dbfunc e OSTCBInit _OSTCBInit fc
; ptcb -> R10,R11
; opt -> y+10
; pext -> y+8
; stk_size -> y+6
; id -> y+4
; pbos -> y+2
; ptos -> R18,R19
; prio -> R16
.even
_OSTCBInit::
rcall push_gset3x
.dbline -1
.dbline 297
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
.dbline 301
;
;
;
;
st -y,r16
in r16,0x3F
cli
push r16
ld r16,y+
.dbline 301
.dbline 302
;
lds R10,_OSTCBFreeList
lds R11,_OSTCBFreeList+1
.dbline 303
;
tst R10
brne X4
tst R11
brne X6
rjmp L43
X6:
X4:
.dbline 303
.dbline 304
;
movw R30,R10
ldd R2,z+2
ldd R3,z+3
sts _OSTCBFreeList+1,R3
sts _OSTCBFreeList,R2
.dbline 305
;
st -y,r16
pop r16
out 0x3F,r16
ld r16,y+
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -