You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

178 lines
6.7 KiB
Plaintext

1 .file "uart.c"
2 __SP_H__ = 0x3e
3 __SP_L__ = 0x3d
4 __SREG__ = 0x3f
5 __RAMPZ__ = 0x3b
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .text
9 .Ltext0:
10 .cfi_sections .debug_frame
11 .global USART_Init
13 USART_Init:
14 .LFB0:
15 .file 1 "src/uart.c"
1:src/uart.c **** #include <avr/io.h>
2:src/uart.c **** #include "uart.h"
3:src/uart.c ****
4:src/uart.c ****
5:src/uart.c ****
6:src/uart.c **** void USART_Init(unsigned int ubrr)
7:src/uart.c **** {
16 .loc 1 7 0
17 .cfi_startproc
18 .LVL0:
19 /* prologue: function */
20 /* frame size = 0 */
21 /* stack size = 0 */
22 .L__stack_usage = 0
8:src/uart.c **** /*Set baud rate */
9:src/uart.c **** UBRR0H = ubrr>>8;
23 .loc 1 9 0
24 0000 9093 C500 sts 197,r25
10:src/uart.c **** UBRR0L = ubrr;
25 .loc 1 10 0
26 0004 8093 C400 sts 196,r24
11:src/uart.c **** /*Enable receiver and transmitter */
12:src/uart.c **** UCSR0B = (1<<TXEN0);
27 .loc 1 12 0
28 0008 88E0 ldi r24,lo8(8)
29 .LVL1:
30 000a 8093 C100 sts 193,r24
13:src/uart.c **** //| (1<<RXEN0)
14:src/uart.c **** //|(1<<RXCIE0);
15:src/uart.c **** /* Set frame format: 8data, 1 stop bit */
16:src/uart.c **** UCSR0C = (1<<UCSZ00) | (1 << UCSZ01);
31 .loc 1 16 0
32 000e 86E0 ldi r24,lo8(6)
33 0010 8093 C200 sts 194,r24
34 0014 0895 ret
35 .cfi_endproc
36 .LFE0:
38 .global USART_Transmit
40 USART_Transmit:
41 .LFB1:
17:src/uart.c **** }
18:src/uart.c ****
19:src/uart.c **** void USART_Transmit(unsigned char data )
20:src/uart.c **** {
42 .loc 1 20 0
43 .cfi_startproc
44 /* prologue: function */
45 /* frame size = 0 */
46 /* stack size = 0 */
47 .L__stack_usage = 0
48 .LVL2:
49 .L4:
21:src/uart.c **** /* Wait for empty transmit buffer */
22:src/uart.c **** while ( !( UCSR0A & (1<<UDRE0)) )
50 .loc 1 22 0 discriminator 1
51 0016 9091 C000 lds r25,192
52 001a 95FF sbrs r25,5
53 001c 00C0 rjmp .L4
23:src/uart.c **** ;
24:src/uart.c **** /* Put data into buffer, sends the data */
25:src/uart.c **** UDR0 = data;
54 .loc 1 25 0
55 001e 8093 C600 sts 198,r24
56 0022 0895 ret
57 .cfi_endproc
58 .LFE1:
60 .global uart_puts
62 uart_puts:
63 .LFB2:
26:src/uart.c **** }
27:src/uart.c ****
28:src/uart.c **** void uart_puts(char * str) {
64 .loc 1 28 0
65 .cfi_startproc
66 .LVL3:
67 0024 CF93 push r28
68 .LCFI0:
69 .cfi_def_cfa_offset 3
70 .cfi_offset 28, -2
71 0026 DF93 push r29
72 .LCFI1:
73 .cfi_def_cfa_offset 4
74 .cfi_offset 29, -3
75 /* prologue: function */
76 /* frame size = 0 */
77 /* stack size = 2 */
78 .L__stack_usage = 2
79 0028 EC01 movw r28,r24
80 .LVL4:
81 .L7:
29:src/uart.c **** while (*str) {
82 .loc 1 29 0 discriminator 1
83 002a 8991 ld r24,Y+
84 .LVL5:
85 002c 8823 tst r24
86 002e 01F0 breq .L9
87 .LVL6:
88 .LBB4:
89 .LBB5:
30:src/uart.c **** putchar(*str++);
31:src/uart.c **** }
32:src/uart.c **** }
33:src/uart.c ****
34:src/uart.c ****
35:src/uart.c **** int putchar(int c){
36:src/uart.c **** USART_Transmit((char) c);
90 .loc 1 36 0
91 0030 0E94 0000 call USART_Transmit
92 .LVL7:
93 0034 00C0 rjmp .L7
94 .LVL8:
95 .L9:
96 /* epilogue start */
97 .LBE5:
98 .LBE4:
32:src/uart.c **** }
99 .loc 1 32 0
100 0036 DF91 pop r29
101 0038 CF91 pop r28
102 .LVL9:
103 003a 0895 ret
104 .cfi_endproc
105 .LFE2:
107 .global putchar
109 putchar:
110 .LFB3:
35:src/uart.c **** int putchar(int c){
111 .loc 1 35 0
112 .cfi_startproc
113 .LVL10:
114 /* prologue: function */
115 /* frame size = 0 */
116 /* stack size = 0 */
117 .L__stack_usage = 0
118 .loc 1 36 0
119 003c 0E94 0000 call USART_Transmit
120 .LVL11:
37:src/uart.c **** //while ( !( UCSR0A & (1<<UDRE0)) )
38:src/uart.c **** //UDR0 = c;
39:src/uart.c **** return 0;
40:src/uart.c **** }
121 .loc 1 40 0
122 0040 80E0 ldi r24,0
123 0042 90E0 ldi r25,0
124 0044 0895 ret
125 .cfi_endproc
126 .LFE3:
128 .Letext0:
129 .file 2 "/usr/local/CrossPack-AVR-20131216/avr/include/stdint.h"
DEFINED SYMBOLS
*ABS*:00000000 uart.c
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:2 *ABS*:0000003e __SP_H__
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:3 *ABS*:0000003d __SP_L__
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:4 *ABS*:0000003f __SREG__
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:5 *ABS*:0000003b __RAMPZ__
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:6 *ABS*:00000000 __tmp_reg__
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:7 *ABS*:00000001 __zero_reg__
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:13 .text:00000000 USART_Init
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:40 .text:00000016 USART_Transmit
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:62 .text:00000024 uart_puts
/var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccFBVmxm.s:109 .text:0000003c putchar
NO UNDEFINED SYMBOLS