📄 main.lst
字号:
1 .file "main.c"
2 .arch at90s8515
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
11 .text
12 .Ltext0:
64 .global main
66 main:
1:main.c **** #include "OS_Includes.h"
2:main.c ****
3:main.c **** //PORTB bit4-bit7 for to drive LED1-LED4.
4:main.c **** #define LED1_ON() (PORTB |= (0x1<<4))
5:main.c **** #define LED1_OFF() (PORTB &= ~(0x1<<4))
6:main.c **** #define LED2_ON() (PORTB |= (0x1<<5))
7:main.c **** #define LED2_OFF() (PORTB &= ~(0x1<<5))
8:main.c **** #define LED3_ON() (PORTB |= (0x1<<6))
9:main.c **** #define LED3_OFF() (PORTB &= ~(0x1<<6))
10:main.c **** #define LED4_ON() (PORTB |= (0x1<<7))
11:main.c **** #define LED4_OFF() (PORTB &= ~(0x1<<7))
12:main.c ****
13:main.c **** #define INIT_LED_Drv() (DDRB |= 0xf0) //PORTB bit4-bit7 used to LED1-LED4
14:main.c ****
15:main.c **** void TaskA(void);
16:main.c **** #define TaskAPrio 1 //声明任务TaskA(void)的优先级。
17:main.c **** OS_STK TaskAStk[MAX_STK_SIZE]; //声明任务TaskA(void)的堆栈空间。
18:main.c **** void TaskB(void);
19:main.c **** #define TaskBPrio 2 //声明任务TaskB(void)的优先级。
20:main.c **** OS_STK TaskBStk[MAX_STK_SIZE]; //声明任务TaskB(void)的堆栈空间。
21:main.c **** void TaskC(void);
22:main.c **** #define TaskCPrio 3 //声明任务TaskC(void)的优先级。
23:main.c **** OS_STK TaskCStk[MAX_STK_SIZE]; //声明任务TaskC(void)的堆栈空间。
24:main.c ****
25:main.c **** int main(void)
26:main.c **** {
68 .LM1:
69 /* prologue: frame size=0 */
70 0000 C0E0 ldi r28,lo8(__stack - 0)
71 0002 D0E0 ldi r29,hi8(__stack - 0)
72 0004 DEBF out __SP_H__,r29
73 0006 CDBF out __SP_L__,r28
74 /* prologue end (size=4) */
27:main.c **** wdt_disable();
76 .LM2:
77 0008 88E1 ldi r24,lo8(24)
78 000a 90E0 ldi r25,hi8(24)
79 000c 20E0 ldi r18,lo8(0)
80 /* #APP */
81 000e 0FB6 in __tmp_reg__,__SREG__
82 0010 F894 cli
83 0012 A895 wdr
84 0014 81BD out 33,r24
85 0016 0FBE out __SREG__,__tmp_reg__
86 0018 21BD out 33,r18
28:main.c **** OSInit(); //初始化OS任务控制块(initialization OSTCB)。
88 .LM3:
89 /* #NOAPP */
90 001a 00D0 rcall OSInit
29:main.c **** OSTaskCreate(TaskA,&TaskAStk[MAX_STK_SIZE-1],TaskAPrio); //建立任务TaskA(void)。
92 .LM4:
93 001c 41E0 ldi r20,lo8(1)
94 001e 60E0 ldi r22,lo8(TaskAStk+63)
95 0020 70E0 ldi r23,hi8(TaskAStk+63)
96 0022 80E0 ldi r24,lo8(pm(TaskA))
97 0024 90E0 ldi r25,hi8(pm(TaskA))
98 0026 00D0 rcall OSTaskCreate
30:main.c **** OSTaskCreate(TaskB,&TaskBStk[MAX_STK_SIZE-1],TaskBPrio); //建立任务TaskB(void)。
100 .LM5:
101 0028 42E0 ldi r20,lo8(2)
102 002a 60E0 ldi r22,lo8(TaskBStk+63)
103 002c 70E0 ldi r23,hi8(TaskBStk+63)
104 002e 80E0 ldi r24,lo8(pm(TaskB))
105 0030 90E0 ldi r25,hi8(pm(TaskB))
106 0032 00D0 rcall OSTaskCreate
31:main.c **** OSTaskCreate(TaskC,&TaskCStk[MAX_STK_SIZE-1],TaskCPrio); //建立任务TaskC(void)。
108 .LM6:
109 0034 43E0 ldi r20,lo8(3)
110 0036 60E0 ldi r22,lo8(TaskCStk+63)
111 0038 70E0 ldi r23,hi8(TaskCStk+63)
112 003a 80E0 ldi r24,lo8(pm(TaskC))
113 003c 90E0 ldi r25,hi8(pm(TaskC))
114 003e 00D0 rcall OSTaskCreate
32:main.c ****
33:main.c **** INIT_LED_Drv();
116 .LM7:
117 0040 87B3 in r24,55-0x20
118 0042 806F ori r24,lo8(-16)
119 0044 87BB out 55-0x20,r24
34:main.c ****
35:main.c **** OSStart(); //起动OS。
121 .LM8:
122 0046 00D0 rcall OSStart
123 .L2:
36:main.c ****
37:main.c **** while (1)
38:main.c **** {
39:main.c **** LED1_ON();
125 .LM9:
126 0048 C49A sbi 56-0x20,4
40:main.c **** OSTaskResume(TaskAPrio);
128 .LM10:
129 004a 81E0 ldi r24,lo8(1)
130 004c 00D0 rcall OSTaskResume
41:main.c **** // OSTaskSuspend(OS_TASK_Me);
42:main.c **** OSTimeDly(1);
132 .LM11:
133 004e 81E0 ldi r24,lo8(1)
134 0050 90E0 ldi r25,hi8(1)
135 0052 00D0 rcall OSTimeDly
43:main.c **** LED1_OFF();
137 .LM12:
138 0054 C498 cbi 56-0x20,4
44:main.c **** OSTimeDly(1);
140 .LM13:
141 0056 81E0 ldi r24,lo8(1)
142 0058 90E0 ldi r25,hi8(1)
143 005a 00D0 rcall OSTimeDly
144 005c F5CF rjmp .L2
145 /* epilogue: frame size=0 */
146 /* epilogue: noreturn */
147 /* epilogue end (size=0) */
148 /* function main size 53 (49) */
151 .global TaskA
153 TaskA:
45:main.c **** }
46:main.c **** }
47:main.c ****
48:main.c ****
49:main.c **** void TaskA(void)
50:main.c **** {
155 .LM14:
156 /* prologue: frame size=0 */
157 /* prologue end (size=0) */
158 .L5:
51:main.c **** while (1)
52:main.c **** {
53:main.c **** OSTaskResume(Task_main_Prio);
160 .LM15:
161 005e 80E0 ldi r24,lo8(0)
162 0060 00D0 rcall OSTaskResume
54:main.c **** LED2_ON();
164 .LM16:
165 0062 C59A sbi 56-0x20,5
55:main.c **** OSTimeDly(2);
167 .LM17:
168 0064 82E0 ldi r24,lo8(2)
169 0066 90E0 ldi r25,hi8(2)
170 0068 00D0 rcall OSTimeDly
56:main.c **** LED2_OFF();
172 .LM18:
173 006a C598 cbi 56-0x20,5
57:main.c **** OSTimeDly(2);
175 .LM19:
176 006c 82E0 ldi r24,lo8(2)
177 006e 90E0 ldi r25,hi8(2)
178 0070 00D0 rcall OSTimeDly
179 0072 F5CF rjmp .L5
180 /* epilogue: frame size=0 */
181 /* epilogue: noreturn */
182 /* epilogue end (size=0) */
183 /* function TaskA size 11 (11) */
186 .global TaskB
188 TaskB:
58:main.c **** }
59:main.c **** }
60:main.c ****
61:main.c **** void TaskB(void)
62:main.c **** {
190 .LM20:
191 /* prologue: frame size=0 */
192 /* prologue end (size=0) */
193 .L8:
63:main.c **** while (1)
64:main.c **** {
65:main.c **** LED3_ON();
195 .LM21:
196 0074 C69A sbi 56-0x20,6
66:main.c **** OSTimeDly(3);
198 .LM22:
199 0076 83E0 ldi r24,lo8(3)
200 0078 90E0 ldi r25,hi8(3)
201 007a 00D0 rcall OSTimeDly
67:main.c **** LED3_OFF();
203 .LM23:
204 007c C698 cbi 56-0x20,6
68:main.c **** OSTimeDly(3);
206 .LM24:
207 007e 83E0 ldi r24,lo8(3)
208 0080 90E0 ldi r25,hi8(3)
209 0082 00D0 rcall OSTimeDly
210 0084 F7CF rjmp .L8
211 /* epilogue: frame size=0 */
212 /* epilogue: noreturn */
213 /* epilogue end (size=0) */
214 /* function TaskB size 9 (9) */
217 .global TaskC
219 TaskC:
69:main.c **** }
70:main.c **** }
71:main.c ****
72:main.c **** void TaskC(void)
73:main.c **** {
221 .LM25:
222 /* prologue: frame size=0 */
223 /* prologue end (size=0) */
224 .L11:
74:main.c **** while (1)
75:main.c **** {
76:main.c **** LED4_ON();
226 .LM26:
227 0086 C79A sbi 56-0x20,7
77:main.c **** OSTimeDly(5);
229 .LM27:
230 0088 85E0 ldi r24,lo8(5)
231 008a 90E0 ldi r25,hi8(5)
232 008c 00D0 rcall OSTimeDly
78:main.c **** LED4_OFF();
234 .LM28:
235 008e C798 cbi 56-0x20,7
79:main.c **** OSTimeDly(5);
237 .LM29:
238 0090 85E0 ldi r24,lo8(5)
239 0092 90E0 ldi r25,hi8(5)
240 0094 00D0 rcall OSTimeDly
241 0096 F7CF rjmp .L11
242 /* epilogue: frame size=0 */
243 /* epilogue: noreturn */
244 /* epilogue end (size=0) */
245 /* function TaskC size 9 (9) */
247 .comm TaskAStk,64,1
248 .comm TaskBStk,64,1
249 .comm TaskCStk,64,1
253 .text
255 Letext:
256 /* File "main.c": code 82 = 0x0052 ( 78), prologues 4, epilogues 0 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\WINDOWS\TEMP/ccvhyhgb.s:66 .text:00000000 main
*COM*:00000040 TaskAStk
C:\WINDOWS\TEMP/ccvhyhgb.s:153 .text:0000005e TaskA
*COM*:00000040 TaskBStk
C:\WINDOWS\TEMP/ccvhyhgb.s:188 .text:00000074 TaskB
*COM*:00000040 TaskCStk
C:\WINDOWS\TEMP/ccvhyhgb.s:219 .text:00000086 TaskC
C:\WINDOWS\TEMP/ccvhyhgb.s:255 .text:00000098 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
OSInit
OSTaskCreate
OSStart
OSTaskResume
OSTimeDly
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -