📄 os_cpu_a.lst
字号:
###############################################################################
# #
# IAR Systems A90 Assembler V1.40C/386 22/Jun/1999 13:23:29 #
# #
# Internal versions FE1.25U CO1.11K BE1.40C #
# #
# Target option = Relative jumps reach entire addr space #
# Source file = os_cpu_a.s90 #
# List file = ..\lst\os_cpu_a.lst #
# Object file = ..\obj\os_cpu_a.r90 #
# Command line = -v1 -r -o ..\obj\os_cpu_a.r90 -l #
# ..\lst\os_cpu_a os_cpu_a.s90 #
# #
# (c) Copyright IAR Systems 1998 #
###############################################################################
1 00000000 ;*********************************************
**********************************************
*************
2 00000000 ;
uC/OS-II
3 00000000 ; The
Real-Time Kernel
4 00000000 ;
5 00000000 ; AVR
Specific code
6 00000000 ;
(IAR V1.40)
7 00000000 ;
8 00000000 ;
9 00000000 ; File : OS_CPU_A.S90
10 00000000 ; By : Ole Saether
11 00000000 ; Port Version : V1.01
12 00000000 ;*********************************************
**********************************************
*************
13 00000000
14 00000000 ;*********************************************
**********************************************
*************
15 00000000 ;
I/O PORT ADDRESSES
16 00000000 ;*********************************************
**********************************************
*************
17 00000000
18 0000003F SREG = 0x3F
19 0000003E SPH = 0x3E
20 0000003D SPL = 0x3D
21 00000032 TCNT0 = 0x32
22 00000000
23 00000000 ;*********************************************
**********************************************
*************
24 00000000 ;
PUBLIC DECLARATIONS
25 00000000 ;*********************************************
**********************************************
*************
26 00000000
27 00000000 MODULE OS_CPU_A
28 00000000 PUBLIC OSStartHighRdy
29 00000000 PUBLIC OSCtxSw
30 00000000 PUBLIC OSIntCtxSw
31 00000000 PUBLIC OSTickISR
32 00000000
33 00000000 ;*********************************************
**********************************************
*************
34 00000000 ;
EXTERNAL DECLARATIONS
35 00000000 ;*********************************************
**********************************************
*************
36 00000000
37 00000000 EXTERN OSIntExit
38 00000000 EXTERN OSIntNesting
39 00000000 EXTERN OSPrioCur
40 00000000 EXTERN OSPrioHighRdy
41 00000000 EXTERN OSRunning
42 00000000 EXTERN OSTaskSwHook
43 00000000 EXTERN OSTCBCur
44 00000000 EXTERN OSTCBHighRdy
45 00000000 EXTERN OSTimeTick
46 00000000
47 00000000 ;*********************************************
**********************************************
*************
48 00000000 ;
MACROS
49 00000000 ;*********************************************
**********************************************
*************
50 00000000
85 00000000
120 00000000
127 00000000
134 00000000
135 00000000 RSEG CODE
136 00000000
137 00000000 ;*********************************************
**********************************************
*************
138 00000000 ; START HIGHEST
PRIORITY TASK READY-TO-RUN
139 00000000 ;
140 00000000 ; Description : This function is called by
OSStart() to start the highest priority task
that was created
141 00000000 ; by your application before
calling OSStart().
142 00000000 ;
143 00000000 ; Note(s) : 1) The (data)stack frame is
assumed to look as follows:
144 00000000 ;
145 00000000 ; OSTCBHighRdy->OSTCBStkPtr
--> LSB of (return) stack pointer
(Low memory)
146 00000000 ;
SPH of (return) stack pointer
147 00000000 ;
Flags to load in status register
148 00000000 ;
R31
149 00000000 ;
R30
150 00000000 ;
R7
151 00000000 ;
.
152 00000000 ;
.
153 00000000 ;
.
154 00000000 ;
R0
(High memory)
155 00000000 ;
156 00000000 ; where the stack pointer
points to the task start address.
157 00000000 ;
158 00000000 ;
159 00000000 ; 2) OSStartHighRdy() MUST:
160 00000000 ; a) Call OSTaskSwHook()
then,
161 00000000 ; b) Set OSRunning to
TRUE,
162 00000000 ; c) Switch to the
highest priority task.
163 00000000 ;*********************************************
**********************************************
*************
164 00000000
165 00000000 .... OSStartHighRdy: RCALL OSTaskSwHook
; Invoke user defined context switch hook
166 00000002 0091.... LDS R16,OSRunning
; Indicate
that we are
multitasking
167 00000006 0395 INC R16
;
168 00000008 0093.... STS OSRunning,R16
;
169 0000000C
170 0000000C E091.... LDS R30,OSTCBHighRdy
; Let Z
point to TCB of
highest priority
task
171 00000010 F091.... LDS R31,OSTCBHighRdy+1
; ready to
run
172 00000014 C191 LD R28,Z+
; Load Y
(R29:R28)
pointer
173 00000016 D191 LD R29,Z+
;
174 00000018
175 00000018 POPSP
; Pop stack pointer
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -