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
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
|