📄 hjmcu.lss
字号:
hjmcu.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000296 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000028 00800060 00000296 0000032a 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000002 00800088 00800088 00000352 2**0
ALLOC
3 .noinit 00000000 0080008a 0080008a 00000352 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000352 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00000354 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 000006c0 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 00000744 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000094 00000000 00000000 00000758 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 0000020b 00000000 00000000 000007ec 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00000139 00000000 00000000 000009f7 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000001a5 00000000 00000000 00000b30 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 00000123 00000000 00000000 00000cd5 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 2a 00 jmp 0x54 <__ctors_end>
4: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
8: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
10: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
14: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
18: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
1c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
20: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
24: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
28: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
2c: 0c 94 f3 00 jmp 0x1e6 <__vector_11>
30: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
34: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
38: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
3c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
40: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
44: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
48: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
4c: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
50: 0c 94 45 00 jmp 0x8a <__bad_interrupt>
00000054 <__ctors_end>:
54: 11 24 eor r1, r1
56: 1f be out 0x3f, r1 ; 63
58: cf e5 ldi r28, 0x5F ; 95
5a: d4 e0 ldi r29, 0x04 ; 4
5c: de bf out 0x3e, r29 ; 62
5e: cd bf out 0x3d, r28 ; 61
00000060 <__do_copy_data>:
60: 10 e0 ldi r17, 0x00 ; 0
62: a0 e6 ldi r26, 0x60 ; 96
64: b0 e0 ldi r27, 0x00 ; 0
66: e6 e9 ldi r30, 0x96 ; 150
68: f2 e0 ldi r31, 0x02 ; 2
6a: 02 c0 rjmp .+4 ; 0x70 <.do_copy_data_start>
0000006c <.do_copy_data_loop>:
6c: 05 90 lpm r0, Z+
6e: 0d 92 st X+, r0
00000070 <.do_copy_data_start>:
70: a8 38 cpi r26, 0x88 ; 136
72: b1 07 cpc r27, r17
74: d9 f7 brne .-10 ; 0x6c <.do_copy_data_loop>
00000076 <__do_clear_bss>:
76: 10 e0 ldi r17, 0x00 ; 0
78: a8 e8 ldi r26, 0x88 ; 136
7a: b0 e0 ldi r27, 0x00 ; 0
7c: 01 c0 rjmp .+2 ; 0x80 <.do_clear_bss_start>
0000007e <.do_clear_bss_loop>:
7e: 1d 92 st X+, r1
00000080 <.do_clear_bss_start>:
80: aa 38 cpi r26, 0x8A ; 138
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 78 00 jmp 0xf0 <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <Port_Init>:
//端口状态初始化设置函数
void Port_Init()
{
PORTA = 0X00;
8e: 1b ba out 0x1b, r1 ; 27
DDRA = 0x00; //ADC通道设置为输入口,高阻态
90: 1a ba out 0x1a, r1 ; 26
92: 08 95 ret
00000094 <Usart_Init>:
}
//USART寄存器配置函数
void Usart_Init()
{
UCSRA = 0X00;
94: 1b b8 out 0x0b, r1 ; 11
UCSRC |= (1<<URSEL) | (1 << UCSZ1) | (1 << UCSZ0); //异步,数据格式8,N,1
96: 80 b5 in r24, 0x20 ; 32
98: 86 68 ori r24, 0x86 ; 134
9a: 80 bd out 0x20, r24 ; 32
//UCSRC寄存器与UBRRH寄存器共用相同的I/O地址,写 UCSRC 时, URSEL 应设置为 1。
UBRRL = (F_CPU / BAUD / 16 - 1) % 256; //波特率设置
9c: 8d e4 ldi r24, 0x4D ; 77
9e: 89 b9 out 0x09, r24 ; 9
UBRRH = (F_CPU / BAUD / 16 - 1) / 256;
a0: 10 bc out 0x20, r1 ; 32
UCSRB |= (1 << RXCIE) | (1 << RXEN) | (1 << TXEN); //发送使能
a2: 8a b1 in r24, 0x0a ; 10
a4: 88 69 ori r24, 0x98 ; 152
a6: 8a b9 out 0x0a, r24 ; 10
a8: 08 95 ret
000000aa <AD_Init>:
}
//字节发送函数
void Usart_PutChar(unsigned char cTXData)
{
while( !(UCSRA & (1 << UDRE)) ); //只有数据寄存器为空时才能发送数据
UDR = cTXData; //发送数据送USART I/O数据寄存器-UDR
}
//接收中断函数
ISR(USART_RXC_vect )
{
unsigned char Rev;
Rev = UDR; //从USART I/O数据寄存器-UDR中读出数据
Usart_PutChar(Rev); //将接收到的数据发送
}
void Usart_PutString(unsigned char *pcString)
{
while (*pcString)
{
Usart_PutChar(*pcString++);
}
Usart_PutChar(0x0D);
Usart_PutChar(0x0A); //结尾发送回车换行
}
//AD转换初始化函数
void AD_Init()
{
ADMUX |= (1 << REFS0); //ADC参考电压为AVcc,ADC结果右对齐,选择通道ADC0
aa: 3e 9a sbi 0x07, 6 ; 7
ADCSRA |= (1 << ADEN) | (1 << ADPS2) | (1 << ADPS1); //使能AD转换,ADC时钟64分频
ac: 86 b1 in r24, 0x06 ; 6
ae: 86 68 ori r24, 0x86 ; 134
b0: 86 b9 out 0x06, r24 ; 6
b2: 08 95 ret
000000b4 <AD_GetData>:
}
//AD转换函数
unsigned int AD_GetData()
{
ADCSRA |= (1 << ADSC); //开始AD转换
b4: 36 9a sbi 0x06, 6 ; 6
while(!(ADCSRA & (1 << ADIF))); //等待转换完成
b6: 34 9b sbis 0x06, 4 ; 6
b8: fe cf rjmp .-4 ; 0xb6 <AD_GetData+0x2>
ADCSRA |= (1 << ADIF); //清零ADC中断标志位
ba: 34 9a sbi 0x06, 4 ; 6
return ADC; //返回ADC值
bc: 84 b1 in r24, 0x04 ; 4
be: 95 b1 in r25, 0x05 ; 5
c0: 08 95 ret
000000c2 <Usart_PutChar>:
c2: 5d 9b sbis 0x0b, 5 ; 11
c4: fe cf rjmp .-4 ; 0xc2 <Usart_PutChar>
c6: 8c b9 out 0x0c, r24 ; 12
c8: 08 95 ret
000000ca <Usart_PutString>:
ca: cf 93 push r28
cc: df 93 push r29
ce: ec 01 movw r28, r24
d0: 88 81 ld r24, Y
d2: 88 23 and r24, r24
d4: 21 f0 breq .+8 ; 0xde <Usart_PutString+0x14>
d6: 89 91 ld r24, Y+
d8: 0e 94 61 00 call 0xc2 <Usart_PutChar>
dc: f9 cf rjmp .-14 ; 0xd0 <Usart_PutString+0x6>
de: 8d e0 ldi r24, 0x0D ; 13
e0: 0e 94 61 00 call 0xc2 <Usart_PutChar>
e4: 8a e0 ldi r24, 0x0A ; 10
e6: 0e 94 61 00 call 0xc2 <Usart_PutChar>
ea: df 91 pop r29
ec: cf 91 pop r28
ee: 08 95 ret
000000f0 <main>:
f0: cf e5 ldi r28, 0x5F ; 95
f2: d4 e0 ldi r29, 0x04 ; 4
f4: de bf out 0x3e, r29 ; 62
f6: cd bf out 0x3d, r28 ; 61
f8: 0e 94 47 00 call 0x8e <Port_Init>
fc: 0e 94 4a 00 call 0x94 <Usart_Init>
100: 0e 94 55 00 call 0xaa <AD_Init>
104: 80 e6 ldi r24, 0x60 ; 96
106: 90 e0 ldi r25, 0x00 ; 0
108: 0e 94 65 00 call 0xca <Usart_PutString>
10c: 8f e6 ldi r24, 0x6F ; 111
10e: 90 e0 ldi r25, 0x00 ; 0
110: 0e 94 65 00 call 0xca <Usart_PutString>
114: 78 94 sei
116: 0e 94 5a 00 call 0xb4 <AD_GetData>
11a: aa 27 eor r26, r26
11c: bb 27 eor r27, r27
11e: bc 01 movw r22, r24
120: cd 01 movw r24, r26
122: 22 e9 ldi r18, 0x92 ; 146
124: 33 e1 ldi r19, 0x13 ; 19
126: 40 e0 ldi r20, 0x00 ; 0
128: 50 e0 ldi r21, 0x00 ; 0
12a: 0e 94 18 01 call 0x230 <__mulsi3>
12e: 97 ff sbrs r25, 7
130: 04 c0 rjmp .+8 ; 0x13a <main+0x4a>
132: 61 50 subi r22, 0x01 ; 1
134: 7c 4f sbci r23, 0xFC ; 252
136: 8f 4f sbci r24, 0xFF ; 255
138: 9f 4f sbci r25, 0xFF ; 255
13a: dc 01 movw r26, r24
13c: cb 01 movw r24, r22
13e: 2a e0 ldi r18, 0x0A ; 10
140: b5 95 asr r27
142: a7 95 ror r26
144: 97 95 ror r25
146: 87 95 ror r24
148: 2a 95 dec r18
14a: d1 f7 brne .-12 ; 0x140 <main+0x50>
14c: 90 93 89 00 sts 0x0089, r25
150: 80 93 88 00 sts 0x0088, r24
154: 68 ee ldi r22, 0xE8 ; 232
156: 73 e0 ldi r23, 0x03 ; 3
158: 0e 94 37 01 call 0x26e <__udivmodhi4>
15c: cb 01 movw r24, r22
15e: 80 5d subi r24, 0xD0 ; 208
160: 0e 94 61 00 call 0xc2 <Usart_PutChar>
164: 8e e2 ldi r24, 0x2E ; 46
166: 0e 94 61 00 call 0xc2 <Usart_PutChar>
16a: 80 91 88 00 lds r24, 0x0088
16e: 90 91 89 00 lds r25, 0x0089
172: 68 ee ldi r22, 0xE8 ; 232
174: 73 e0 ldi r23, 0x03 ; 3
176: 0e 94 37 01 call 0x26e <__udivmodhi4>
17a: 64 e6 ldi r22, 0x64 ; 100
17c: 70 e0 ldi r23, 0x00 ; 0
17e: 0e 94 37 01 call 0x26e <__udivmodhi4>
182: cb 01 movw r24, r22
184: 80 5d subi r24, 0xD0 ; 208
186: 0e 94 61 00 call 0xc2 <Usart_PutChar>
18a: 80 91 88 00 lds r24, 0x0088
18e: 90 91 89 00 lds r25, 0x0089
192: 64 e6 ldi r22, 0x64 ; 100
194: 70 e0 ldi r23, 0x00 ; 0
196: 0e 94 37 01 call 0x26e <__udivmodhi4>
19a: 6a e0 ldi r22, 0x0A ; 10
19c: 70 e0 ldi r23, 0x00 ; 0
19e: 0e 94 37 01 call 0x26e <__udivmodhi4>
1a2: cb 01 movw r24, r22
1a4: 80 5d subi r24, 0xD0 ; 208
1a6: 0e 94 61 00 call 0xc2 <Usart_PutChar>
1aa: 80 91 88 00 lds r24, 0x0088
1ae: 90 91 89 00 lds r25, 0x0089
1b2: 6a e0 ldi r22, 0x0A ; 10
1b4: 70 e0 ldi r23, 0x00 ; 0
1b6: 0e 94 37 01 call 0x26e <__udivmodhi4>
1ba: 80 5d subi r24, 0xD0 ; 208
1bc: 0e 94 61 00 call 0xc2 <Usart_PutChar>
1c0: 86 e5 ldi r24, 0x56 ; 86
1c2: 0e 94 61 00 call 0xc2 <Usart_PutChar>
1c6: 8d e0 ldi r24, 0x0D ; 13
1c8: 0e 94 61 00 call 0xc2 <Usart_PutChar>
1cc: 8a e0 ldi r24, 0x0A ; 10
1ce: 0e 94 61 00 call 0xc2 <Usart_PutChar>
1d2: e0 e0 ldi r30, 0x00 ; 0
1d4: f0 e0 ldi r31, 0x00 ; 0
1d6: 2d e1 ldi r18, 0x1D ; 29
*/
void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
1d8: cf 01 movw r24, r30
1da: 01 97 sbiw r24, 0x01 ; 1
1dc: f1 f7 brne .-4 ; 0x1da <main+0xea>
1de: 21 50 subi r18, 0x01 ; 1
1e0: 27 ff sbrs r18, 7
1e2: fa cf rjmp .-12 ; 0x1d8 <main+0xe8>
1e4: 98 cf rjmp .-208 ; 0x116 <main+0x26>
000001e6 <__vector_11>:
1e6: 1f 92 push r1
1e8: 0f 92 push r0
1ea: 0f b6 in r0, 0x3f ; 63
1ec: 0f 92 push r0
1ee: 11 24 eor r1, r1
1f0: 2f 93 push r18
1f2: 3f 93 push r19
1f4: 4f 93 push r20
1f6: 5f 93 push r21
1f8: 6f 93 push r22
1fa: 7f 93 push r23
1fc: 8f 93 push r24
1fe: 9f 93 push r25
200: af 93 push r26
202: bf 93 push r27
204: ef 93 push r30
206: ff 93 push r31
208: 8c b1 in r24, 0x0c ; 12
20a: 0e 94 61 00 call 0xc2 <Usart_PutChar>
20e: ff 91 pop r31
210: ef 91 pop r30
212: bf 91 pop r27
214: af 91 pop r26
216: 9f 91 pop r25
218: 8f 91 pop r24
21a: 7f 91 pop r23
21c: 6f 91 pop r22
21e: 5f 91 pop r21
220: 4f 91 pop r20
222: 3f 91 pop r19
224: 2f 91 pop r18
226: 0f 90 pop r0
228: 0f be out 0x3f, r0 ; 63
22a: 0f 90 pop r0
22c: 1f 90 pop r1
22e: 18 95 reti
00000230 <__mulsi3>:
230: 62 9f mul r22, r18
232: d0 01 movw r26, r0
234: 73 9f mul r23, r19
236: f0 01 movw r30, r0
238: 82 9f mul r24, r18
23a: e0 0d add r30, r0
23c: f1 1d adc r31, r1
23e: 64 9f mul r22, r20
240: e0 0d add r30, r0
242: f1 1d adc r31, r1
244: 92 9f mul r25, r18
246: f0 0d add r31, r0
248: 83 9f mul r24, r19
24a: f0 0d add r31, r0
24c: 74 9f mul r23, r20
24e: f0 0d add r31, r0
250: 65 9f mul r22, r21
252: f0 0d add r31, r0
254: 99 27 eor r25, r25
256: 72 9f mul r23, r18
258: b0 0d add r27, r0
25a: e1 1d adc r30, r1
25c: f9 1f adc r31, r25
25e: 63 9f mul r22, r19
260: b0 0d add r27, r0
262: e1 1d adc r30, r1
264: f9 1f adc r31, r25
266: bd 01 movw r22, r26
268: cf 01 movw r24, r30
26a: 11 24 eor r1, r1
26c: 08 95 ret
0000026e <__udivmodhi4>:
26e: aa 1b sub r26, r26
270: bb 1b sub r27, r27
272: 51 e1 ldi r21, 0x11 ; 17
274: 07 c0 rjmp .+14 ; 0x284 <__udivmodhi4_ep>
00000276 <__udivmodhi4_loop>:
276: aa 1f adc r26, r26
278: bb 1f adc r27, r27
27a: a6 17 cp r26, r22
27c: b7 07 cpc r27, r23
27e: 10 f0 brcs .+4 ; 0x284 <__udivmodhi4_ep>
280: a6 1b sub r26, r22
282: b7 0b sbc r27, r23
00000284 <__udivmodhi4_ep>:
284: 88 1f adc r24, r24
286: 99 1f adc r25, r25
288: 5a 95 dec r21
28a: a9 f7 brne .-22 ; 0x276 <__udivmodhi4_loop>
28c: 80 95 com r24
28e: 90 95 com r25
290: bc 01 movw r22, r24
292: cd 01 movw r24, r26
294: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -