📄 uartpacket.lst
字号:
250 00d6 8881 ld r24,Y
251 00d8 8E5F subi r24,lo8(-(2))
252 00da 8093 0000 sts dbgTail,r24
73:uartPacket.c **** appendByte = 0;
254 .LM30:
255 00de 1092 0000 sts appendByte,__zero_reg__
256 .L3:
257 /* epilogue: frame size=0 */
258 00e2 DF91 pop r29
259 00e4 CF91 pop r28
260 00e6 0895 ret
261 /* epilogue end (size=3) */
262 /* function uartDebug_txPacket size 93 (88) */
266 .global __vector_20
268 __vector_20:
74:uartPacket.c **** }
75:uartPacket.c **** }
76:uartPacket.c ****
77:uartPacket.c **** /***************************************************************************
78:uartPacket.c **** __vector_20(void)
79:uartPacket.c **** *功能描述:UART发送完成中断
80:uartPacket.c **** *参数说明:无
81:uartPacket.c **** *返回值: 无
82:uartPacket.c **** **************************************************************************/
83:uartPacket.c ****
84:uartPacket.c **** void __attribute((interrupt)) __vector_20(void)
85:uartPacket.c **** {
270 .LM31:
271 /* prologue: frame size=0 */
272 00e8 7894 sei
273 00ea 1F92 push __zero_reg__
274 00ec 0F92 push __tmp_reg__
275 00ee 0FB6 in __tmp_reg__,__SREG__
276 00f0 0F92 push __tmp_reg__
277 00f2 1124 clr __zero_reg__
278 00f4 8F93 push r24
279 00f6 9F93 push r25
280 00f8 EF93 push r30
281 00fa FF93 push r31
282 /* prologue end (size=10) */
86:uartPacket.c **** char byte;
87:uartPacket.c **** if(dbgBufCount > 0 && dbgBufCount < dbgTail) {
284 .LM32:
285 00fc 9091 0000 lds r25,dbgBufCount
286 0100 9923 tst r25
287 0102 29F1 breq .L12
289 .LM33:
290 0104 8091 0000 lds r24,dbgTail
291 0108 9817 cp r25,r24
292 010a 08F5 brsh .L12
88:uartPacket.c **** if (appendByte == 0) // 不是发送附加字节
294 .LM34:
295 010c 8091 0000 lds r24,appendByte
296 0110 8823 tst r24
297 0112 C1F4 brne .L13
89:uartPacket.c **** {
90:uartPacket.c **** byte = dbgBuf[dbgBufCount++];
299 .LM35:
300 0114 E92F mov r30,r25
301 0116 FF27 clr r31
302 0118 E050 subi r30,lo8(-(dbgBuf))
303 011a F040 sbci r31,hi8(-(dbgBuf))
304 011c 9F5F subi r25,lo8(-(1))
305 011e 9093 0000 sts dbgBufCount,r25
306 0122 E081 ld r30,Z
91:uartPacket.c **** if (byte == 0x7E)
308 .LM36:
309 0124 EE37 cpi r30,lo8(126)
310 0126 31F4 brne .L14
92:uartPacket.c **** {
93:uartPacket.c **** appendByte = 0x5E;
312 .LM37:
313 0128 8EE5 ldi r24,lo8(94)
314 012a 8093 0000 sts appendByte,r24
94:uartPacket.c **** * (volatile unsigned char *)(0x0C + 0x20) = 0x7D; // 将data写入数据寄存器UDR0
316 .LM38:
317 012e 8DE7 ldi r24,lo8(125)
318 0130 8CB9 out 44-0x20,r24
319 0132 06C0 rjmp .L20
320 .L14:
95:uartPacket.c **** * (volatile unsigned char *)(0x0B + 0x20) |= 1 << 6; // 向TXC位写逻辑1,从而清零该
96:uartPacket.c **** return;
97:uartPacket.c **** }
98:uartPacket.c **** if (byte == 0x7D)
322 .LM39:
323 0134 ED37 cpi r30,lo8(125)
324 0136 19F4 brne .L15
99:uartPacket.c **** {
100:uartPacket.c **** appendByte = 0x5D;
326 .LM40:
327 0138 8DE5 ldi r24,lo8(93)
328 013a 8093 0000 sts appendByte,r24
329 .L15:
101:uartPacket.c **** * (volatile unsigned char *)(0x0C + 0x20) = 0x7D; // 将data写入数据寄存器UDR0
102:uartPacket.c **** * (volatile unsigned char *)(0x0B + 0x20) |= 1 << 6; // 向TXC位写逻辑1,从而清零该
103:uartPacket.c **** return;
104:uartPacket.c **** }
105:uartPacket.c **** * (volatile unsigned char *)(0x0C + 0x20) = byte; // 将data写入数据寄存器UDR0
331 .LM41:
332 013e ECB9 out 44-0x20,r30
333 .L20:
106:uartPacket.c **** * (volatile unsigned char *)(0x0B + 0x20) |= 1 << 6; // 向TXC位写逻辑1,从而清零该位
335 .LM42:
336 0140 5E9A sbi 43-0x20,6
337 0142 15C0 rjmp .L11
338 .L13:
107:uartPacket.c **** }
108:uartPacket.c **** else // 发送附加字节
109:uartPacket.c **** {
110:uartPacket.c **** * (volatile unsigned char *)(0x0C + 0x20) = appendByte; // 将data写入数据寄存器UDR0
340 .LM43:
341 0144 8CB9 out 44-0x20,r24
111:uartPacket.c **** * (volatile unsigned char *)(0x0B + 0x20) |= 1 << 6; // 向TXC位写逻辑1,从而清零该位
343 .LM44:
344 0146 5E9A sbi 43-0x20,6
112:uartPacket.c **** appendByte = 0;
346 .LM45:
347 0148 1092 0000 sts appendByte,__zero_reg__
348 014c 10C0 rjmp .L11
349 .L12:
113:uartPacket.c **** }
114:uartPacket.c **** } else if (dbgBufCount == dbgTail){
351 .LM46:
352 014e 8091 0000 lds r24,dbgTail
353 0152 9817 cp r25,r24
354 0154 51F4 brne .L18
115:uartPacket.c **** * (volatile unsigned char *)(0x0C + 0x20) = dbgBuf[dbgTail]; // 将data写入数据寄存器UDR0
356 .LM47:
357 0156 E92F mov r30,r25
358 0158 FF27 clr r31
359 015a E050 subi r30,lo8(-(dbgBuf))
360 015c F040 sbci r31,hi8(-(dbgBuf))
361 015e 8081 ld r24,Z
362 0160 8CB9 out 44-0x20,r24
116:uartPacket.c **** * (volatile unsigned char *)(0x0B + 0x20) |= 1 << 6; // 向TXC位写逻辑1,从而清零该位
364 .LM48:
365 0162 5E9A sbi 43-0x20,6
117:uartPacket.c **** dbgBufCount = 0;
367 .LM49:
368 0164 1092 0000 sts dbgBufCount,__zero_reg__
369 0168 02C0 rjmp .L11
370 .L18:
118:uartPacket.c **** }
119:uartPacket.c **** else{
120:uartPacket.c **** UARTState = UART_IDLE;
372 .LM50:
373 016a 1092 0000 sts UARTState,__zero_reg__
374 .L11:
375 /* epilogue: frame size=0 */
376 016e FF91 pop r31
377 0170 EF91 pop r30
378 0172 9F91 pop r25
379 0174 8F91 pop r24
380 0176 0F90 pop __tmp_reg__
381 0178 0FBE out __SREG__,__tmp_reg__
382 017a 0F90 pop __tmp_reg__
383 017c 1F90 pop __zero_reg__
384 017e 1895 reti
385 /* epilogue end (size=9) */
386 /* function __vector_20 size 76 (57) */
390 .global __vector_18
392 __vector_18:
121:uartPacket.c **** }
122:uartPacket.c **** }
123:uartPacket.c ****
124:uartPacket.c **** /***************************************************************************
125:uartPacket.c **** __vector_18(void)
126:uartPacket.c ****
127:uartPacket.c **** *功能描述:UART接收完成中断
128:uartPacket.c **** *参数说明:无
129:uartPacket.c **** *返回值: 无
130:uartPacket.c **** **************************************************************************/
131:uartPacket.c ****
132:uartPacket.c **** void __attribute((signal)) __vector_18(void)
133:uartPacket.c **** {
394 .LM51:
395 /* prologue: frame size=0 */
396 0180 1F92 push __zero_reg__
397 0182 0F92 push __tmp_reg__
398 0184 0FB6 in __tmp_reg__,__SREG__
399 0186 0F92 push __tmp_reg__
400 0188 1124 clr __zero_reg__
401 /* prologue end (size=5) */
402 /* epilogue: frame size=0 */
403 018a 0F90 pop __tmp_reg__
404 018c 0FBE out __SREG__,__tmp_reg__
405 018e 0F90 pop __tmp_reg__
406 0190 1F90 pop __zero_reg__
407 0192 1895 reti
408 /* epilogue end (size=5) */
409 /* function __vector_18 size 10 (0) */
411 .comm UARTState,1,1
412 .comm dbgBuf,104,1
413 .comm dbgHead,1,1
414 .comm dbgTail,1,1
415 .comm dbgBufCount,1,1
416 .comm appendByte,1,1
423 .text
425 Letext:
426 /* File "uartPacket.c": code 202 = 0x00ca ( 166), prologues 17, epilogues 19 */
DEFINED SYMBOLS
*ABS*:00000000 uartPacket.c
*ABS*:0000003f __SREG__
*ABS*:0000003e __SP_H__
*ABS*:0000003d __SP_L__
*ABS*:00000000 __tmp_reg__
*ABS*:00000001 __zero_reg__
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cc4obaaa.s:73 .text:00000000 uartDebug_init
*COM*:00000001 UARTState
*COM*:00000001 dbgBufCount
*COM*:00000068 dbgBuf
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cc4obaaa.s:120 .text:0000002c uartDebug_txByte
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cc4obaaa.s:134 .text:0000002e uartDebug_txPacket
*COM*:00000001 dbgTail
*COM*:00000001 appendByte
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cc4obaaa.s:268 .text:000000e8 __vector_20
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cc4obaaa.s:392 .text:00000180 __vector_18
*COM*:00000001 dbgHead
C:\DOCUME~1\xiapeng\LOCALS~1\Temp/cc4obaaa.s:425 .text:00000194 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -