📄 main.lst
字号:
1 .file "main.c"
2 .arch atmega128
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:
84 .global pMsgTsk
85 .data
88 pMsgTsk:
89 0000 0000 .word T5mbox
90 .LC0:
91 0002 4865 6C6C .string "Hello"
91 6F00
92 .global T5mbox
95 T5mbox:
96 0008 01 .byte 1
97 0009 0000 .word .LC0
98 .global Tmbox
99 .global Tmbox
100 .section .bss
103 Tmbox:
104 0000 0000 .skip 2,0
105 .global T2sem
106 .global T2sem
109 T2sem:
110 0002 0000 .skip 2,0
111 .global t6
112 .global t6
115 t6:
116 0004 00 .skip 1,0
117 .global t5
118 .global t5
121 t5:
122 0005 00 .skip 1,0
123 .global t4
124 .global t4
127 t4:
128 0006 00 .skip 1,0
129 .global t3
130 .global t3
133 t3:
134 0007 00 .skip 1,0
135 .global t2
136 .global t2
139 t2:
140 0008 00 .skip 1,0
141 .global t1
142 .global t1
145 t1:
146 0009 00 .skip 1,0
147 .global Task5Stk
148 .global Task5Stk
151 Task5Stk:
152 000a 0000 0000 .skip 64,0
152 0000 0000
152 0000 0000
152 0000 0000
152 0000 0000
153 .global Task4Stk
154 .global Task4Stk
157 Task4Stk:
158 004a 0000 0000 .skip 64,0
158 0000 0000
158 0000 0000
158 0000 0000
158 0000 0000
159 .global Task3Stk
160 .global Task3Stk
163 Task3Stk:
164 008a 0000 0000 .skip 64,0
164 0000 0000
164 0000 0000
164 0000 0000
164 0000 0000
165 .global Task2Stk
166 .global Task2Stk
169 Task2Stk:
170 00ca 0000 0000 .skip 64,0
170 0000 0000
170 0000 0000
170 0000 0000
170 0000 0000
171 .global Main_TaskStk
172 .global Main_TaskStk
175 Main_TaskStk:
176 010a 0000 0000 .skip 64,0
176 0000 0000
176 0000 0000
176 0000 0000
176 0000 0000
177 .text
180 .global Main_Task
182 Main_Task:
1:APP1/main.c **** #include <avr/io.h>
2:APP1/main.c **** #include "ucos_ii.h"
3:APP1/main.c **** #include "lcd.h"
4:APP1/main.c ****
5:APP1/main.c **** OS_STK Main_TaskStk[OS_USER_TASK_STK_SIZE]={0};
6:APP1/main.c **** OS_STK Task2Stk[OS_USER_TASK_STK_SIZE]={0};
7:APP1/main.c **** OS_STK Task3Stk[OS_USER_TASK_STK_SIZE]={0};
8:APP1/main.c **** OS_STK Task4Stk[OS_USER_TASK_STK_SIZE]={0};
9:APP1/main.c **** OS_STK Task5Stk[OS_USER_TASK_STK_SIZE]={0};
10:APP1/main.c ****
11:APP1/main.c **** volatile unsigned char t1=0;
12:APP1/main.c **** volatile unsigned char t2=0;
13:APP1/main.c **** volatile unsigned char t3=0;
14:APP1/main.c **** volatile unsigned char t4=0;
15:APP1/main.c **** volatile unsigned char t5=0;
16:APP1/main.c **** volatile unsigned char t6=0;
17:APP1/main.c ****
18:APP1/main.c **** OS_EVENT *T2sem=(OS_EVENT *)0;
19:APP1/main.c **** OS_EVENT *Tmbox=(OS_EVENT *)0;
20:APP1/main.c ****
21:APP1/main.c **** struct msgTask
22:APP1/main.c **** {
23:APP1/main.c **** unsigned char cnt;
24:APP1/main.c **** unsigned char *s;
25:APP1/main.c **** };
26:APP1/main.c ****
27:APP1/main.c **** struct msgTask T5mbox={1,"Hello"};
28:APP1/main.c **** struct msgTask *pMsgTsk=&T5mbox;
29:APP1/main.c **** /*任务声明*/
30:APP1/main.c **** void Task2(void *pdata);
31:APP1/main.c **** void Task3(void *pdata);
32:APP1/main.c **** void Task4(void *pdata);
33:APP1/main.c **** void Task5(void *pdata);
34:APP1/main.c ****
35:APP1/main.c ****
36:APP1/main.c **** void Main_Task(void *pdata)
37:APP1/main.c **** {
184 .LM1:
185 /* prologue: frame size=0 */
186 /* prologue end (size=0) */
38:APP1/main.c **** pdata=pdata;
39:APP1/main.c ****
40:APP1/main.c **** TIMSK&=0xFC;
188 .LM2:
189 0000 87B7 in r24,87-0x20
190 0002 8C7F andi r24,lo8(-4)
191 0004 87BF out 87-0x20,r24
41:APP1/main.c ****
42:APP1/main.c **** #if OS_TICKS_PER_SEC <= (F_CPU/1024/256)
43:APP1/main.c **** #error "OS_TICKS_PER_SEC < (F_CPU/1024/256) "
44:APP1/main.c **** #endif
45:APP1/main.c ****
46:APP1/main.c **** OCR0=F_CPU/1024/OS_TICKS_PER_SEC; //匹配寄存器
193 .LM3:
194 0006 88E4 ldi r24,lo8(72)
195 0008 81BF out 81-0x20,r24
47:APP1/main.c **** TCNT0=0;//计数初值
197 .LM4:
198 000a 12BE out 82-0x20,__zero_reg__
48:APP1/main.c **** TCCR0=(1<<WGM01)|0x05;//CTC模式1024分频
200 .LM5:
201 000c 8DE0 ldi r24,lo8(13)
202 000e 83BF out 83-0x20,r24
49:APP1/main.c **** TIMSK|=2;//tc0输出匹配中断使能
204 .LM6:
205 0010 87B7 in r24,87-0x20
206 0012 8260 ori r24,lo8(2)
207 0014 87BF out 87-0x20,r24
50:APP1/main.c ****
51:APP1/main.c **** DDRB|=0x02;
209 .LM7:
210 0016 B99A sbi 55-0x20,1
52:APP1/main.c ****
53:APP1/main.c **** hello();
212 .LM8:
213 0018 0E94 0000 call hello
54:APP1/main.c **** OSTaskCreate(Task2,0,&Task2Stk[OS_USER_TASK_STK_SIZE-1],2);
215 .LM9:
216 001c 22E0 ldi r18,lo8(2)
217 001e 40E0 ldi r20,lo8(Task2Stk+63)
218 0020 50E0 ldi r21,hi8(Task2Stk+63)
219 0022 60E0 ldi r22,lo8(0)
220 0024 70E0 ldi r23,hi8(0)
221 0026 80E0 ldi r24,lo8(pm(Task2))
222 0028 90E0 ldi r25,hi8(pm(Task2))
223 002a 0E94 0000 call OSTaskCreate
55:APP1/main.c **** OSTaskCreate(Task3,0,&Task3Stk[OS_USER_TASK_STK_SIZE-1],3);
225 .LM10:
226 002e 23E0 ldi r18,lo8(3)
227 0030 40E0 ldi r20,lo8(Task3Stk+63)
228 0032 50E0 ldi r21,hi8(Task3Stk+63)
229 0034 60E0 ldi r22,lo8(0)
230 0036 70E0 ldi r23,hi8(0)
231 0038 80E0 ldi r24,lo8(pm(Task3))
232 003a 90E0 ldi r25,hi8(pm(Task3))
233 003c 0E94 0000 call OSTaskCreate
56:APP1/main.c **** OSTaskCreate(Task4,0,&Task4Stk[OS_USER_TASK_STK_SIZE-1],5);
235 .LM11:
236 0040 25E0 ldi r18,lo8(5)
237 0042 40E0 ldi r20,lo8(Task4Stk+63)
238 0044 50E0 ldi r21,hi8(Task4Stk+63)
239 0046 60E0 ldi r22,lo8(0)
240 0048 70E0 ldi r23,hi8(0)
241 004a 80E0 ldi r24,lo8(pm(Task4))
242 004c 90E0 ldi r25,hi8(pm(Task4))
243 004e 0E94 0000 call OSTaskCreate
57:APP1/main.c **** OSTaskCreate(Task5,0,&Task5Stk[OS_USER_TASK_STK_SIZE-1],4);
245 .LM12:
246 0052 24E0 ldi r18,lo8(4)
247 0054 40E0 ldi r20,lo8(Task5Stk+63)
248 0056 50E0 ldi r21,hi8(Task5Stk+63)
249 0058 60E0 ldi r22,lo8(0)
250 005a 70E0 ldi r23,hi8(0)
251 005c 80E0 ldi r24,lo8(pm(Task5))
252 005e 90E0 ldi r25,hi8(pm(Task5))
253 0060 0E94 0000 call OSTaskCreate
254 .L2:
58:APP1/main.c **** while(1)
59:APP1/main.c **** {
60:APP1/main.c ****
61:APP1/main.c **** OSTimeDlyHMSM(0,0,1,0);
256 .LM13:
257 0064 20E0 ldi r18,lo8(0)
258 0066 30E0 ldi r19,hi8(0)
259 0068 41E0 ldi r20,lo8(1)
260 006a 60E0 ldi r22,lo8(0)
261 006c 862F mov r24,r22
262 006e 0E94 0000 call OSTimeDlyHMSM
62:APP1/main.c **** t1++;
264 .LM14:
265 0072 8091 0000 lds r24,t1
266 0076 8F5F subi r24,lo8(-(1))
267 0078 8093 0000 sts t1,r24
63:APP1/main.c **** PORTB^=0x02;
269 .LM15:
270 007c 88B3 in r24,56-0x20
271 007e 92E0 ldi r25,lo8(2)
272 0080 8927 eor r24,r25
273 0082 88BB out 56-0x20,r24
64:APP1/main.c **** PORTD^=0x10;
275 .LM16:
276 0084 82B3 in r24,50-0x20
277 0086 90E1 ldi r25,lo8(16)
278 0088 8927 eor r24,r25
279 008a 82BB out 50-0x20,r24
65:APP1/main.c **** OS_ENTER_CRITICAL();
281 .LM17:
282 /* #APP */
283 008c 0FB6 in __tmp_reg__,__SREG__
284 008e F894 cli
285 0090 0F92 push __tmp_reg__
66:APP1/main.c **** display_1str(1,0,(char)OSCPUUsage);
287 .LM18:
288 /* #NOAPP */
289 0092 4091 0000 lds r20,OSCPUUsage
290 0096 60E0 ldi r22,lo8(0)
291 0098 81E0 ldi r24,lo8(1)
292 009a 0E94 0000 call display_1str
67:APP1/main.c **** OS_EXIT_CRITICAL();
294 .LM19:
295 /* #APP */
296 009e 0F90 pop __tmp_reg__
297 00a0 0FBE out __SREG__,__tmp_reg__
298 /* #NOAPP */
299 00a2 E0CF rjmp .L2
300 /* epilogue: frame size=0 */
301 /* epilogue: noreturn */
302 /* epilogue end (size=0) */
303 /* function Main_Task size 87 (87) */
305 .Lscope0:
308 .global Task2
310 Task2:
68:APP1/main.c **** }
69:APP1/main.c **** }
70:APP1/main.c ****
71:APP1/main.c **** void Task2(void *pdata)
72:APP1/main.c **** {
312 .LM20:
313 /* prologue: frame size=1 */
314 00a4 CF93 push r28
315 00a6 DF93 push r29
316 00a8 CDB7 in r28,__SP_L__
317 00aa DEB7 in r29,__SP_H__
318 00ac 2197 sbiw r28,1
319 00ae 0FB6 in __tmp_reg__,__SREG__
320 00b0 F894 cli
321 00b2 DEBF out __SP_H__,r29
322 00b4 0FBE out __SREG__,__tmp_reg__
323 00b6 CDBF out __SP_L__,r28
324 /* prologue end (size=10) */
73:APP1/main.c **** unsigned char err=0;
326 .LM21:
327 00b8 1982 std Y+1,__zero_reg__
328 .L12:
74:APP1/main.c **** pdata=pdata;
75:APP1/main.c ****
76:APP1/main.c **** /* MCUCR=0x02;//int0下降沿产生异步中断
77:APP1/main.c **** GICR=0x40;//通用中断控制器 使能int0中断
78:APP1/main.c ****
79:APP1/main.c **** TCCR2=0x08; // CTC 模式, TOP=OCR2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -