📄 dac.lss
字号:
dac.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000112 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000112 000001a6 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000000 00800060 00000112 000001a6 2**0
ALLOC
3 .noinit 00000000 00800060 00800060 000001a6 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000001a6 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 000001a8 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000514 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000028 00000000 00000000 00000598 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 00000054 00000000 00000000 000005c0 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 0000014a 00000000 00000000 00000614 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 000000db 00000000 00000000 0000075e 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000001c8 00000000 00000000 00000839 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 000000b8 00000000 00000000 00000a01 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 45 00 jmp 0x8a <__bad_interrupt>
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: e2 e1 ldi r30, 0x12 ; 18
68: f1 e0 ldi r31, 0x01 ; 1
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: a0 36 cpi r26, 0x60 ; 96
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: a0 e6 ldi r26, 0x60 ; 96
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: a0 36 cpi r26, 0x60 ; 96
82: b1 07 cpc r27, r17
84: e1 f7 brne .-8 ; 0x7e <.do_clear_bss_loop>
86: 0c 94 6a 00 jmp 0xd4 <main>
0000008a <__bad_interrupt>:
8a: 0c 94 00 00 jmp 0x0 <__vectors>
0000008e <SPI_Init>:
void SPI_Init(void)
{
DDRB|= (1<<PB4)|(1<<PB5)|(1<<PB7); /* PB4:SS PB5:MOSI PB6:MISO PB7:SCK */
8e: 87 b3 in r24, 0x17 ; 23
90: 80 6b ori r24, 0xB0 ; 176
92: 87 bb out 0x17, r24 ; 23
DDRB&=~(1<<PB6);
94: be 98 cbi 0x17, 6 ; 23
SPCR=(1<<SPE)|(1<<MSTR)|(1<<CPOL)|(1<<CPHA)|(0<<SPR1)|(SPR0);
96: 8c e5 ldi r24, 0x5C ; 92
98: 8d b9 out 0x0d, r24 ; 13
SPSR = (1<<SPI2X);
9a: 81 e0 ldi r24, 0x01 ; 1
9c: 8e b9 out 0x0e, r24 ; 14
9e: 08 95 ret
000000a0 <SPI_RW>:
}
unsigned char SPI_RW(unsigned char Data)
{
SPDR=Data;
a0: 8f b9 out 0x0f, r24 ; 15
while(!(SPSR&0x80));
a2: 77 9b sbis 0x0e, 7 ; 14
a4: fe cf rjmp .-4 ; 0xa2 <SPI_RW+0x2>
Data=SPDR;
a6: 8f b1 in r24, 0x0f ; 15
return Data;
}
a8: 99 27 eor r25, r25
aa: 08 95 ret
000000ac <DA_Convert>:
#define RTC_CE_RESET() PORTC&=~(1<<PC7)
void DA_Convert(unsigned int DAVal)
{
ac: 0f 93 push r16
ae: 1f 93 push r17
b0: 8c 01 movw r16, r24
DA_CS_RESET();
b2: da 98 cbi 0x1b, 2 ; 27
SPI_RW((DAVal>>6)&0xFF);
b4: 26 e0 ldi r18, 0x06 ; 6
b6: 96 95 lsr r25
b8: 87 95 ror r24
ba: 2a 95 dec r18
bc: e1 f7 brne .-8 ; 0xb6 <DA_Convert+0xa>
be: 0e 94 50 00 call 0xa0 <SPI_RW>
SPI_RW((DAVal<<2)&0xFF);
c2: 80 2f mov r24, r16
c4: 88 0f add r24, r24
c6: 88 0f add r24, r24
c8: 0e 94 50 00 call 0xa0 <SPI_RW>
DA_CS_SET();
cc: da 9a sbi 0x1b, 2 ; 27
ce: 1f 91 pop r17
d0: 0f 91 pop r16
d2: 08 95 ret
000000d4 <main>:
}
int main(void)
{
d4: cf e5 ldi r28, 0x5F ; 95
d6: d4 e0 ldi r29, 0x04 ; 4
d8: de bf out 0x3e, r29 ; 62
da: cd bf out 0x3d, r28 ; 61
int i=0;
/* Set LED and Smg LE pin as output , databus as output */
DDRA |=(1<<PA4)|(1<<PA5)|(1<<PA6);
dc: 8a b3 in r24, 0x1a ; 26
de: 80 67 ori r24, 0x70 ; 112
e0: 8a bb out 0x1a, r24 ; 26
DDRB = 0xFF;
e2: 8f ef ldi r24, 0xFF ; 255
e4: 87 bb out 0x17, r24 ; 23
/* Off the Smg display */
PORTA|= (1<<PA5);
e6: dd 9a sbi 0x1b, 5 ; 27
PORTB = 0x00;
e8: 18 ba out 0x18, r1 ; 24
PORTA&=~(1<<PA5);
ea: dd 98 cbi 0x1b, 5 ; 27
/* Off the LED display */
PORTA|= (1<<PA6);
ec: de 9a sbi 0x1b, 6 ; 27
PORTB = 0xFF;
ee: 88 bb out 0x18, r24 ; 24
PORTA&=~(1<<PA6);
f0: de 98 cbi 0x1b, 6 ; 27
DDRA |= (1<<PA2);
f2: d2 9a sbi 0x1a, 2 ; 26
DDRC |= (1<<PC7);
f4: a7 9a sbi 0x14, 7 ; 20
RTC_CE_RESET();
f6: af 98 cbi 0x15, 7 ; 21
SPI_Init();
f8: 0e 94 47 00 call 0x8e <SPI_Init>
while(1)
{
for(i=0;i<MAX;i+=8)
fc: c0 e0 ldi r28, 0x00 ; 0
fe: d0 e0 ldi r29, 0x00 ; 0
DA_Convert(i);
100: ce 01 movw r24, r28
102: 0e 94 56 00 call 0xac <DA_Convert>
106: 28 96 adiw r28, 0x08 ; 8
108: 83 e0 ldi r24, 0x03 ; 3
10a: cf 3f cpi r28, 0xFF ; 255
10c: d8 07 cpc r29, r24
10e: c4 f3 brlt .-16 ; 0x100 <main+0x2c>
110: f5 cf rjmp .-22 ; 0xfc <main+0x28>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -