📄 os_cpu_a.lst
字号:
A51 MACRO ASSEMBLER OS_CPU_A 04/08/2008 09:22:25 PAGE 1
MACRO ASSEMBLER A51 V8.00d
OBJECT MODULE PLACED IN OS_CPU_A.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE OS_CPU_A.ASM SET(LARGE) DEBUG EP
LOC OBJ LINE SOURCE
1 ;******************************************************************************************
**************
2 ; uC/OS-II
3 ; The Real-Time Kernel
4 ;
5 ; (c) Copyright 1992-2002, Jean J. Labrosse, Weston, FL
6 ; All Rights Reserved
7 ;
8 ;
9 ; 8051/8052 Specific code
10 ; LARGE MEMORY MODEL
11 ;
12 ; Keil C Compiler V6.23a
13 ; (MSC51 Compatible Target)
14 ;
15 ; File : OS_CPU_A.ASM
16 ; By : Jean J. Labrosse
17 ; Replant : wl.peng
18 ;******************************************************************************************
**************
19
20 NAME OS_CPU_A
21
22 ;******************************************************************************************
**************
23 ; PUBLIC and EXTERNAL REFERENCES
24 ;******************************************************************************************
**************
25
26 ?PR?_?OSStartHighRdy?OS_CPU_A SEGMENT CODE
27 ?PR?_?OSCtxSw?OS_CPU_A SEGMENT CODE
28 ?PR?_?OSIntCtxSw?OS_CPU_A SEGMENT CODE
29 ?PR?_?OSTickISR?OS_CPU_A SEGMENT CODE
30 ?STACK SEGMENT IDATA
31 DT?OS_CPU_A SEGMENT DATA
32
33 PUBLIC _?OSTickISR
34 PUBLIC _?OSStartHighRdy
35 PUBLIC _?OSCtxSw
36 PUBLIC _?OSIntCtxSw
37 PUBLIC OSTickRate
38 PUBLIC OSTickCtr
39
40 EXTRN DATA (?C_XBP)
41 EXTRN XDATA (OSTCBCur)
42 EXTRN XDATA (OSTCBHighRdy)
43 EXTRN XDATA (OSPrioCur)
44 EXTRN XDATA (OSPrioHighRdy)
45 EXTRN XDATA (OSRunning)
46
47 EXTRN CODE (_?OSIntEnter)
48 EXTRN CODE (_?OSIntExit)
49 EXTRN CODE (_?OSTimeTick)
50 EXTRN CODE (_?OSTaskSwHook)
51
52 ;******************************************************************************************
**************
53 ; MACRO DEFINE
A51 MACRO ASSEMBLER OS_CPU_A 04/08/2008 09:22:25 PAGE 2
54 ;******************************************************************************************
**************
55
56 PUSHALL MACRO
57 PUSH ACC
58 PUSH B
59 PUSH DPH
60 PUSH DPL
61 PUSH PSW
62
63 IRP REG, <R0, R1, R2, R3, R4, R5, R6, R7>
64 MOV A, REG
65 PUSH ACC
66 ENDM
67
68 ENDM
69
70
71 POPALL MACRO
72 IRP REG, <R7, R6, R5, R4, R3, R2, R1, R0>
73 POP ACC
74 MOV REG, A
75 ENDM
76
77 POP PSW
78 POP DPL
79 POP DPH
80 POP B
81 POP ACC
82 ENDM
83
84
85 LoadXBP MACRO
86 MOV DPH, ?C_XBP
87 MOV DPL, ?C_XBP+1
88 ENDM
89
90
91 SaveXBP MACRO
92 ;PUSH IE
93 ;CLR EA
94 MOV ?C_XBP, DPH
95 MOV ?C_XBP+1,DPL
96 ;POP IE
97 ENDM
98
99
100 LoadReg MACRO REG
101 MOVX A, @DPTR
102 MOV REG, A
103 ENDM
104
105
106 SaveReg MACRO REG
107 MOV A, REG
108 MOVX @DPTR, A
109 ENDM
110
111
112 ;******************************************************************************************
**************
113 ; VARIABLE DEFINE
114 ;******************************************************************************************
**************
115
---- 116 RSEG ?STACK
A51 MACRO ASSEMBLER OS_CPU_A 04/08/2008 09:22:25 PAGE 3
0000 117 DS 1 ; SP start
address (acllocation by keil c)
118
---- 119 RSEG DT?OS_CPU_A
0000 120 OSTickRate:
0000 121 DS 1
0001 122 OSTickCtr:
0001 123 DS 1
124
125 ;******************************************************************************************
**************
126 ; void _?OSStartHighRdy(void);
127 ;******************************************************************************************
**************
128
---- 129 RSEG ?PR?_?OSStartHighRdy?OS_CPU_A
0000 130 _?OSStartHighRdy:
131
0000 120000 F 132 LCALL _?OSTaskSwHook
133
134 ; OSRunning = TRUE;
0003 758200 F 135 MOV DPL, #LOW(OSRunning)
0006 758300 F 136 MOV DPH, #HIGH(OSRunning)
137 SaveReg #01
140
000C 020000 F 141 LJMP ?C_XBP_Load
142
143 ;******************************************************************************************
**************
144 ; void OSCtxSw(void);
145 ;******************************************************************************************
**************
146
---- 147 RSEG ?PR?_?OSCtxSw?OS_CPU_A
0000 148 _?OSCtxSw:
149 PUSHALL
0022 177 SP_Offset:
178 LoadXBP
181
0028 E581 182 MOV A, SP
002A C3 183 CLR C
002B 9400 F 184 SUBB A, #?STACK-1
002D FD 185 MOV R5, A
002E 04 186 INC A
002F C3 187 CLR C
0030 C582 188 XCH A, DPL
0032 9582 189 SUBB A, DPL
0034 5002 190 JNC SP_Save
0036 1583 191 DEC DPH
0038 192 SP_Save:
0038 F582 193 MOV DPL, A
194
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -