📄 os_cpu_c.lst
字号:
267 0078 8081 ld r24,Z
268 007a 8993 st Y+,r24
118:OS_CPU_C.c **** OSTaskStackBottom[i] = cp;
270 .LM21:
271 007c FD01 movw r30,r26
272 007e E050 subi r30,lo8(-(OSTaskStackBottom))
273 0080 F040 sbci r31,hi8(-(OSTaskStackBottom))
274 0082 D183 std Z+1,r29
275 0084 C083 st Z,r28
119:OS_CPU_C.c **** *cp++ = ((uint8*)(&TaskFuction[i]))[HIGH_BYTE];
277 .LM22:
278 0086 A050 subi r26,lo8(-(TaskFuction))
279 0088 B040 sbci r27,hi8(-(TaskFuction))
280 008a 8C91 ld r24,X
281 008c 8993 st Y+,r24
283 .LM23:
284 008e 9150 subi r25,lo8(-(-1))
285 0090 01F7 brne .L17
120:OS_CPU_C.c **** }
121:OS_CPU_C.c ****
122:OS_CPU_C.c **** /* 允许中断 */
123:OS_CPU_C.c **** Os_Enter_Sum = 1;
124:OS_CPU_C.c **** OS_EXIT_CRITICAL();
287 .LM24:
288 0092 9093 0000 sts Os_Enter_Sum,r25
289 /* #APP */
290 0096 7894 sei
291 /* #NOAPP */
292 /* epilogue: frame size=0 */
293 0098 DF91 pop r29
294 009a CF91 pop r28
295 009c 0895 ret
296 /* epilogue end (size=3) */
297 /* function OSStart size 79 (74) */
304 .Lscope2:
306 .global OSTickInit
308 OSTickInit:
125:OS_CPU_C.c **** /* 函数返回优先级最高的任务 */
126:OS_CPU_C.c **** }
127:OS_CPU_C.c **** /**************************************************************************************************
128:OS_CPU_C.c **** ** 函数名称: OSTickInit()
129:OS_CPU_C.c **** ** 功能描述: 系统节拍定时器初始化
130:OS_CPU_C.c **** ** 输 入: 无
131:OS_CPU_C.c **** ** 输 出: 无
132:OS_CPU_C.c **** ** 全局变量: 无
133:OS_CPU_C.c **** ** 调用模块:
134:OS_CPU_C.c **** **
135:OS_CPU_C.c **** ** 作 者: 徐宝田
136:OS_CPU_C.c **** ** 日 期: 2002年2月22日
137:OS_CPU_C.c **** **-------------------------------------------------------------------------------------------------
138:OS_CPU_C.c **** ** 修改人:
139:OS_CPU_C.c **** ** 日 期:
140:OS_CPU_C.c **** **-------------------------------------------------------------------------------------------------
141:OS_CPU_C.c **** ***************************************************************************************************
142:OS_CPU_C.c **** void OSTickInit(void)
143:OS_CPU_C.c **** {
310 .LM25:
311 /* prologue: frame size=0 */
312 /* prologue end (size=0) */
144:OS_CPU_C.c **** TCCR0 = 0;
314 .LM26:
315 009e 13BE out 83-0x20,__zero_reg__
145:OS_CPU_C.c **** TCCR0 |= (1<<CS02)|(1<<CS00); /* 256预分频 */
317 .LM27:
318 00a0 83B7 in r24,83-0x20
319 00a2 8560 ori r24,lo8(5)
320 00a4 83BF out 83-0x20,r24
146:OS_CPU_C.c **** TIMSK |= (1<<TOIE0); /* T0溢出中断允许 */
322 .LM28:
323 00a6 89B7 in r24,89-0x20
324 00a8 8160 ori r24,lo8(1)
325 00aa 89BF out 89-0x20,r24
147:OS_CPU_C.c **** TCNT0 =69; /* 置计数起始值 (256-CPU_OSC/1024/OS_TICKS_PER_SEC) */
327 .LM29:
328 00ac 85E4 ldi r24,lo8(69)
329 00ae 82BF out 82-0x20,r24
330 /* epilogue: frame size=0 */
331 00b0 0895 ret
332 /* epilogue end (size=1) */
333 /* function OSTickInit size 10 (9) */
335 .Lscope3:
337 .global __vector_9
339 __vector_9:
148:OS_CPU_C.c **** }
149:OS_CPU_C.c **** /**************************************************************************************************
150:OS_CPU_C.c **** ** 函数名称: OSTickISR
151:OS_CPU_C.c **** ** 功能描述: 系统时钟中断服务函数
152:OS_CPU_C.c **** ** 输 入: 无
153:OS_CPU_C.c **** ** 输 出: 无
154:OS_CPU_C.c **** ** 全局变量: 无
155:OS_CPU_C.c **** ** 调用模块: OS_INT_ENTER,(UserTickTimer),OSTimeTick,OSIntExit
156:OS_CPU_C.c **** **
157:OS_CPU_C.c **** ** 作 者: 徐宝田
158:OS_CPU_C.c **** ** 日 期: 2005年5月30日
159:OS_CPU_C.c **** **-------------------------------------------------------------------------------------------------
160:OS_CPU_C.c **** ** 修改人:
161:OS_CPU_C.c **** ** 日 期:
162:OS_CPU_C.c **** **-------------------------------------------------------------------------------------------------
163:OS_CPU_C.c **** ***************************************************************************************************
164:OS_CPU_C.c **** SIGNAL(SIG_OVERFLOW0)
165:OS_CPU_C.c **** {
341 .LM30:
342 /* prologue: frame size=0 */
343 00b2 1F92 push __zero_reg__
344 00b4 0F92 push __tmp_reg__
345 00b6 0FB6 in __tmp_reg__,__SREG__
346 00b8 0F92 push __tmp_reg__
347 00ba 1124 clr __zero_reg__
348 00bc 2F93 push r18
349 00be 3F93 push r19
350 00c0 4F93 push r20
351 00c2 5F93 push r21
352 00c4 6F93 push r22
353 00c6 7F93 push r23
354 00c8 8F93 push r24
355 00ca 9F93 push r25
356 00cc AF93 push r26
357 00ce BF93 push r27
358 00d0 EF93 push r30
359 00d2 FF93 push r31
360 /* prologue end (size=17) */
166:OS_CPU_C.c **** if(1==Alarm)
362 .LM31:
363 00d4 8091 0000 lds r24,Alarm
364 00d8 8130 cpi r24,lo8(1)
365 00da 31F4 brne .L29
167:OS_CPU_C.c **** {
168:OS_CPU_C.c **** PORTD &=~(PIND&0x01);
367 .LM32:
368 00dc 90B3 in r25,48-0x20
369 00de 9170 andi r25,lo8(1)
370 00e0 9095 com r25
371 00e2 82B3 in r24,50-0x20
372 00e4 8923 and r24,r25
373 00e6 82BB out 50-0x20,r24
374 .L29:
169:OS_CPU_C.c **** }
170:OS_CPU_C.c ****
171:OS_CPU_C.c **** #if TICK_TIMER_SHARING >1
172:OS_CPU_C.c **** static uint8 TickSum = 0;
173:OS_CPU_C.c **** #endif
174:OS_CPU_C.c **** TCNT0+= 69; //(256-CPU_OSC/1024/OS_TICKS_PER_SEC)
376 .LM33:
377 00e8 82B7 in r24,82-0x20
378 00ea 8B5B subi r24,lo8(-(69))
379 00ec 82BF out 82-0x20,r24
175:OS_CPU_C.c **** #if EN_USER_TICK_TIMER > 0
176:OS_CPU_C.c ****
177:OS_CPU_C.c **** #endif
178:OS_CPU_C.c **** #if TICK_TIMER_SHARING >1
179:OS_CPU_C.c **** TickSum = (TickSum + 1) % TICK_TIMER_SHARING;
180:OS_CPU_C.c **** if (TickSum != 0)
181:OS_CPU_C.c **** {
182:OS_CPU_C.c **** return;
183:OS_CPU_C.c **** }
184:OS_CPU_C.c **** #endif
185:OS_CPU_C.c ****
186:OS_CPU_C.c **** #if EN_OS_INT_ENTER > 0
187:OS_CPU_C.c **** OS_INT_ENTER(); /* 中断开始处理
381 .LM34:
382 00ee 8091 0000 lds r24,OSIntNesting
383 00f2 8F5F subi r24,lo8(-(1))
384 00f4 8093 0000 sts OSIntNesting,r24
385 /* #APP */
386 00f8 7894 sei
188:OS_CPU_C.c **** #endif
189:OS_CPU_C.c ****
190:OS_CPU_C.c ****
191:OS_CPU_C.c **** #if EN_TIMER_SHARING > 0
192:OS_CPU_C.c **** OSTimeTick(); /* 调用系统时钟处理函数
388 .LM35:
389 /* #NOAPP */
390 00fa 0E94 0000 call OSTimeTick
193:OS_CPU_C.c **** #else
194:OS_CPU_C.c **** OSIntSendSignal(TIME_ISR_TASK_ID); /* 唤醒ID为TIME_ISR_TASK_ID的任务
195:OS_CPU_C.c **** #endif
196:OS_CPU_C.c ****
197:OS_CPU_C.c **** OSIntExit(); /* 中断结束处理
392 .LM36:
393 00fe 0E94 0000 call OSIntExit
394 /* epilogue: frame size=0 */
395 0102 FF91 pop r31
396 0104 EF91 pop r30
397 0106 BF91 pop r27
398 0108 AF91 pop r26
399 010a 9F91 pop r25
400 010c 8F91 pop r24
401 010e 7F91 pop r23
402 0110 6F91 pop r22
403 0112 5F91 pop r21
404 0114 4F91 pop r20
405 0116 3F91 pop r19
406 0118 2F91 pop r18
407 011a 0F90 pop __tmp_reg__
408 011c 0FBE out __SREG__,__tmp_reg__
409 011e 0F90 pop __tmp_reg__
410 0120 1F90 pop __zero_reg__
411 0122 1895 reti
412 /* epilogue end (size=17) */
413 /* function __vector_9 size 58 (24) */
415 .Lscope4:
416 .comm OSTaskStackBottom,12,1
421 .text
423 Letext:
424 /* File "OS_CPU_C.c": code 149 = 0x0095 ( 108), prologues 19, epilogues 22 */
DEFINED SYMBOLS
*ABS*:00000000 OS_CPU_C.c
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:128 .data:00000000 pdata_end
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:135 .bss:00000000 Alarm
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:141 .data:00000002 TaskFuction
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:150 .text:00000000 OSIdle
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:168 .text:00000002 OSInitHook
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:182 .text:00000004 OSStart
*COM*:0000000c OSTaskStackBottom
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:308 .text:0000009e OSTickInit
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:339 .text:000000b2 __vector_9
C:\DOCUME~1\64564564\LOCALS~1\Temp/ccAnaaaa.s:423 .text:00000124 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__heap_start
task0
task1
task2
task3
Os_Enter_Sum
OSIntNesting
OSTimeTick
OSIntExit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -