📄 demo.lst
字号:
259
260 /* #NOAPP */
261 .LBE5:
71:demo.c **** while(boot_rww_busy())
72:demo.c **** boot_rww_enable();
263 .LM17:
264 00c0 07B6 in __tmp_reg__,87-0x20
265 00c2 06FE sbrs __tmp_reg__,6
266 00c4 0CC0 rjmp .L59
267 00c6 81E1 ldi r24,lo8(17)
268 .L71:
269 .LBB6:
270 00c8 07B6 in __tmp_reg__,87-0x20
271 00ca 00FC sbrc __tmp_reg__,0
272 00cc FDCF rjmp .L71
273 .L50:
274 00ce E199 sbic 60-0x20,1
275 00d0 FECF rjmp .L50
276 /* #APP */
277 00d2 8093 5700 sts 87, r24
278 00d6 E895 spm
279
280 /* #NOAPP */
281 .LBE6:
282 00d8 07B6 in __tmp_reg__,87-0x20
283 00da 06FC sbrc __tmp_reg__,6
284 00dc F5CF rjmp .L71
285 .L59:
73:demo.c ****
74:demo.c **** g_wPageIndex++;
287 .LM18:
288 00de 4F5F subi r20,lo8(-(1))
289 00e0 5F4F sbci r21,hi8(-(1))
290 00e2 5093 0000 sts (g_wPageIndex)+1,r21
291 00e6 4093 0000 sts g_wPageIndex,r20
292 /* epilogue: frame size=0 */
293 00ea CF91 pop r28
294 00ec 1F91 pop r17
295 00ee 0F91 pop r16
296 00f0 0895 ret
297 /* epilogue end (size=4) */
298 /* function WritePage size 132 (125) */
302 .global ReadPage
304 ReadPage:
75:demo.c **** }
76:demo.c ****
77:demo.c **** void ReadPage(void)
78:demo.c **** {
306 .LM19:
307 /* prologue: frame size=0 */
308 00f2 1F93 push r17
309 00f4 CF93 push r28
310 00f6 DF93 push r29
311 /* prologue end (size=3) */
312 00f8 C0E0 ldi r28,lo8(0)
313 00fa D0E0 ldi r29,hi8(0)
314 00fc 1FE3 ldi r17,lo8(63)
315 .L76:
316 .LBB7:
79:demo.c **** uchar i;
80:demo.c ****
81:demo.c **** for(i=0;i<PAGE_SIZE;i++)
82:demo.c **** uart_putc(pgm_read_byte(i+(g_wPageIndex*PAGE_SIZE)));
318 .LM20:
319 00fe E091 0000 lds r30,g_wPageIndex
320 0102 F091 0000 lds r31,(g_wPageIndex)+1
321 0106 76E0 ldi r23,6
322 0108 EE0F 1: lsl r30
323 010a FF1F rol r31
324 010c 7A95 dec r23
325 010e E1F7 brne 1b
326 0110 EC0F add r30,r28
327 0112 FD1F adc r31,r29
328 /* #APP */
329 0114 8491 lpm r24, Z
330
331 /* #NOAPP */
332 .LBE7:
333 0116 74DF rcall uart_putc
335 .LM21:
336 0118 1150 subi r17,lo8(-(-1))
337 011a 2196 adiw r28,1
338 011c 17FF sbrs r17,7
339 011e EFCF rjmp .L76
83:demo.c ****
84:demo.c **** g_wPageIndex++;
341 .LM22:
342 0120 8091 0000 lds r24,g_wPageIndex
343 0124 9091 0000 lds r25,(g_wPageIndex)+1
344 0128 0196 adiw r24,1
345 012a 9093 0000 sts (g_wPageIndex)+1,r25
346 012e 8093 0000 sts g_wPageIndex,r24
347 /* epilogue: frame size=0 */
348 0132 DF91 pop r29
349 0134 CF91 pop r28
350 0136 1F91 pop r17
351 0138 0895 ret
352 /* epilogue end (size=4) */
353 /* function ReadPage size 39 (32) */
360 .global main
362 main:
85:demo.c **** }
86:demo.c ****
87:demo.c **** int main(void)
88:demo.c **** {
364 .LM23:
365 /* prologue: frame size=0 */
366 013a C0E0 ldi r28,lo8(__stack - 0)
367 013c D0E0 ldi r29,hi8(__stack - 0)
368 013e DEBF out __SP_H__,r29
369 0140 CDBF out __SP_L__,r28
370 /* prologue end (size=4) */
89:demo.c **** uchar tmp;
90:demo.c ****
91:demo.c **** //uart init
92:demo.c **** UBRRH=0;
372 .LM24:
373 0142 10BC out 64-0x20,__zero_reg__
93:demo.c **** UBRRL=25;//9600 baud 6MHz:38 4MHz:25
375 .LM25:
376 0144 89E1 ldi r24,lo8(25)
377 0146 89B9 out 41-0x20,r24
94:demo.c **** UCSRB=(1<<RXEN)|(1<<TXEN);
379 .LM26:
380 0148 88E1 ldi r24,lo8(24)
381 014a 8AB9 out 42-0x20,r24
382 .L94:
95:demo.c ****
96:demo.c **** while(1)
97:demo.c **** {
98:demo.c **** tmp=uart_getc();//recv command
384 .LM27:
385 014c 5DDF rcall uart_getc
99:demo.c ****
100:demo.c ****
101:demo.c **** switch(tmp)
387 .LM28:
388 014e 9927 clr r25
389 0150 8F3A cpi r24,175
390 0152 9105 cpc r25,__zero_reg__
391 0154 01F1 breq .L85
392 0156 803B cpi r24,176
393 0158 9105 cpc r25,__zero_reg__
394 015a 3CF4 brge .L89
395 015c 803A cpi r24,160
396 015e 9105 cpc r25,__zero_reg__
397 0160 E1F0 breq .L86
398 0162 8A3A cpi r24,170
399 0164 9105 cpc r25,__zero_reg__
400 0166 D9F0 breq .L87
401 0168 F1CF rjmp .L94
402 .L89:
403 016a 803B cpi r24,176
404 016c 9105 cpc r25,__zero_reg__
405 016e 21F0 breq .L83
406 0170 8F3B cpi r24,191
407 0172 9105 cpc r25,__zero_reg__
408 0174 51F0 breq .L84
409 0176 EACF rjmp .L94
410 .L83:
102:demo.c **** {
103:demo.c **** case 0xB0://设置页地址
104:demo.c **** g_wPageIndex=uart_getc();
412 .LM29:
413 0178 47DF rcall uart_getc
414 017a 9927 clr r25
415 017c 9093 0000 sts (g_wPageIndex)+1,r25
416 0180 8093 0000 sts g_wPageIndex,r24
105:demo.c **** uart_putc(g_wPageIndex);
418 .LM30:
419 0184 8091 0000 lds r24,g_wPageIndex
420 0188 0BC0 rjmp .L93
421 .L84:
106:demo.c **** break;
107:demo.c ****
108:demo.c **** case 0xBF:
109:demo.c **** reset();
423 .LM31:
424 018a E091 0000 lds r30,reset
425 018e F091 0000 lds r31,(reset)+1
426 0192 0995 icall
110:demo.c **** break;
428 .LM32:
429 0194 DBCF rjmp .L94
430 .L85:
111:demo.c ****
112:demo.c **** case 0xAF://写一页
113:demo.c **** WritePage();
432 .LM33:
433 0196 3DDF rcall WritePage
434 0198 02C0 rjmp .L87
435 .L86:
114:demo.c **** uart_putc(UART_ACK); //应答
115:demo.c **** break;
116:demo.c ****
117:demo.c **** case 0xA0://读一页
118:demo.c **** ReadPage();
437 .LM34:
438 019a ABDF rcall ReadPage
119:demo.c **** break;
440 .LM35:
441 019c D7CF rjmp .L94
442 .L87:
120:demo.c ****
121:demo.c **** case UART_ACK:
122:demo.c **** uart_putc(UART_ACK);
444 .LM36:
445 019e 8AEA ldi r24,lo8(-86)
446 .L93:
447 01a0 2FDF rcall uart_putc
123:demo.c **** break;
449 .LM37:
450 01a2 D4CF rjmp .L94
451 /* epilogue: frame size=0 */
452 /* epilogue: noreturn */
453 /* epilogue end (size=0) */
454 /* function main size 53 (49) */
456 .comm g_aPageTemp,64,1
460 .text
462 Letext:
463 /* File "demo.c": code 233 = 0x00e9 ( 213), prologues 10, epilogues 10 */
DEFINED SYMBOLS
*ABS*:00000000 demo.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:72 .bss:00000000 reset
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:78 .bss:00000002 g_wPageIndex
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:85 .text:00000000 uart_putc
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:106 .text:00000008 uart_getc
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:130 .text:00000012 WritePage
*COM*:00000040 g_aPageTemp
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:304 .text:000000f2 ReadPage
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:362 .text:0000013a main
J:\DOCUME~1\tcf\LOCALS~1\Temp/cckjaaaa.s:462 .text:000001a4 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -