📄 si4700.lss
字号:
si4700.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000978 00000000 00000000 00000094 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000022 00800060 00000978 00000a0c 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000001 00800082 00800082 00000a2e 2**0
ALLOC
3 .noinit 00000000 00800083 00800083 00000a2e 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 00000a2e 2**0
CONTENTS
5 .stab 0000036c 00000000 00000000 00000a30 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00000084 00000000 00000000 00000d9c 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_aranges 00000014 00000000 00000000 00000e20 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_pubnames 0000015d 00000000 00000000 00000e34 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_info 000006ce 00000000 00000000 00000f91 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_abbrev 00000200 00000000 00000000 0000165f 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_line 000005ce 00000000 00000000 0000185f 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_str 000002be 00000000 00000000 00001e2d 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 1c c0 rjmp .+56 ; 0x3a <__init>
2: 35 c0 rjmp .+106 ; 0x6e <__bad_interrupt>
4: 34 c0 rjmp .+104 ; 0x6e <__bad_interrupt>
6: 33 c0 rjmp .+102 ; 0x6e <__bad_interrupt>
8: 32 c0 rjmp .+100 ; 0x6e <__bad_interrupt>
a: 31 c0 rjmp .+98 ; 0x6e <__bad_interrupt>
c: 30 c0 rjmp .+96 ; 0x6e <__bad_interrupt>
e: 2f c0 rjmp .+94 ; 0x6e <__bad_interrupt>
10: 2e c0 rjmp .+92 ; 0x6e <__bad_interrupt>
12: 2d c0 rjmp .+90 ; 0x6e <__bad_interrupt>
14: 2c c0 rjmp .+88 ; 0x6e <__bad_interrupt>
16: 64 c3 rjmp .+1736 ; 0x6e0 <__vector_11>
18: 2a c0 rjmp .+84 ; 0x6e <__bad_interrupt>
1a: 29 c0 rjmp .+82 ; 0x6e <__bad_interrupt>
1c: 28 c0 rjmp .+80 ; 0x6e <__bad_interrupt>
1e: 27 c0 rjmp .+78 ; 0x6e <__bad_interrupt>
20: 26 c0 rjmp .+76 ; 0x6e <__bad_interrupt>
22: 25 c0 rjmp .+74 ; 0x6e <__bad_interrupt>
24: 24 c0 rjmp .+72 ; 0x6e <__bad_interrupt>
00000026 <__ctors_end>:
26: 88 c3 rjmp .+1808 ; 0x738 <main+0x30>
28: dc c3 rjmp .+1976 ; 0x7e2 <main+0xda>
2a: 31 c4 rjmp .+2146 ; 0x88e <main+0x186>
2c: 34 c4 rjmp .+2152 ; 0x896 <main+0x18e>
2e: 37 c4 rjmp .+2158 ; 0x89e <main+0x196>
30: 3a c4 rjmp .+2164 ; 0x8a6 <main+0x19e>
32: 3d c4 rjmp .+2170 ; 0x8ae <main+0x1a6>
34: 44 c4 rjmp .+2184 ; 0x8be <main+0x1b6>
36: 50 c4 rjmp .+2208 ; 0x8d8 <main+0x1d0>
38: 53 c4 rjmp .+2214 ; 0x8e0 <main+0x1d8>
0000003a <__init>:
3a: 11 24 eor r1, r1
3c: 1f be out 0x3f, r1 ; 63
3e: cf e5 ldi r28, 0x5F ; 95
40: d4 e0 ldi r29, 0x04 ; 4
42: de bf out 0x3e, r29 ; 62
44: cd bf out 0x3d, r28 ; 61
00000046 <__do_copy_data>:
46: 10 e0 ldi r17, 0x00 ; 0
48: a0 e6 ldi r26, 0x60 ; 96
4a: b0 e0 ldi r27, 0x00 ; 0
4c: e8 e7 ldi r30, 0x78 ; 120
4e: f9 e0 ldi r31, 0x09 ; 9
50: 02 c0 rjmp .+4 ; 0x56 <.do_copy_data_start>
00000052 <.do_copy_data_loop>:
52: 05 90 lpm r0, Z+
54: 0d 92 st X+, r0
00000056 <.do_copy_data_start>:
56: a2 38 cpi r26, 0x82 ; 130
58: b1 07 cpc r27, r17
5a: d9 f7 brne .-10 ; 0x52 <.do_copy_data_loop>
0000005c <__do_clear_bss>:
5c: 10 e0 ldi r17, 0x00 ; 0
5e: a2 e8 ldi r26, 0x82 ; 130
60: b0 e0 ldi r27, 0x00 ; 0
62: 01 c0 rjmp .+2 ; 0x66 <.do_clear_bss_start>
00000064 <.do_clear_bss_loop>:
64: 1d 92 st X+, r1
00000066 <.do_clear_bss_start>:
66: a3 38 cpi r26, 0x83 ; 131
68: b1 07 cpc r27, r17
6a: e1 f7 brne .-8 ; 0x64 <.do_clear_bss_loop>
6c: 4d c3 rjmp .+1690 ; 0x708 <main>
0000006e <__bad_interrupt>:
6e: c8 cf rjmp .-112 ; 0x0 <__vectors>
00000070 <ResetSi4700_2w>:
#define WRITE 0x20
UINT8 com_buf;
void ResetSi4700_2w(void)
{
PORTC=0xff;
70: 8f ef ldi r24, 0xFF ; 255
72: 85 bb out 0x15, r24 ; 21
DDRC=0xff;
74: 84 bb out 0x14, r24 ; 20
sda(0);
76: ac 98 cbi 0x15, 4 ; 21
rst(0);
78: a9 98 cbi 0x15, 1 ; 21
scl(1);
7a: ad 9a sbi 0x15, 5 ; 21
//_delay_ms(1);
rst(1);
7c: a9 9a sbi 0x15, 1 ; 21
sda(1);
7e: ac 9a sbi 0x15, 4 ; 21
80: 08 95 ret
00000082 <OperationSi4700_2w>:
//_delay_ms(1);
}
unsigned char OperationSi4700_2w(unsigned char operation, unsigned char *data, unsigned char numBytes)
{
82: 0f 93 push r16
84: 1f 93 push r17
86: cf 93 push r28
88: df 93 push r29
8a: 58 2f mov r21, r24
8c: db 01 movw r26, r22
unsigned char controlWord, j, error = 0;
8e: 00 e0 ldi r16, 0x00 ; 0
int i;
/***************************************************
START: make sure here SDIO_DIR =OUT, SCLK = 1, SDIO = 1
****************************************************/
scl(1);
90: ad 9a sbi 0x15, 5 ; 21
sda(1);
92: ac 9a sbi 0x15, 4 ; 21
sda(0);
94: ac 98 cbi 0x15, 4 ; 21
scl(0);
96: ad 98 cbi 0x15, 5 ; 21
/***************************************************
WRITE CONTROL DATA: make sure here: SLCK = 0; SDIO = 0
****************************************************/
if(operation == READ)
98: 81 32 cpi r24, 0x21 ; 33
9a: 09 f0 breq .+2 ; 0x9e <OperationSi4700_2w+0x1c>
controlWord = 0x21;
else
controlWord = 0x20;
9c: 80 e2 ldi r24, 0x20 ; 32
for(i = 7; i>=0; i--)
9e: 67 e0 ldi r22, 0x07 ; 7
a0: 70 e0 ldi r23, 0x00 ; 0
a2: 28 2f mov r18, r24
a4: 33 27 eor r19, r19
{
sda( (controlWord >> i) & 0x01);
a6: c9 01 movw r24, r18
a8: 06 2e mov r0, r22
aa: 02 c0 rjmp .+4 ; 0xb0 <OperationSi4700_2w+0x2e>
ac: 95 95 asr r25
ae: 87 95 ror r24
b0: 0a 94 dec r0
b2: e2 f7 brpl .-8 ; 0xac <OperationSi4700_2w+0x2a>
b4: 80 ff sbrs r24, 0
b6: 02 c0 rjmp .+4 ; 0xbc <OperationSi4700_2w+0x3a>
b8: ac 9a sbi 0x15, 4 ; 21
ba: 01 c0 rjmp .+2 ; 0xbe <OperationSi4700_2w+0x3c>
bc: ac 98 cbi 0x15, 4 ; 21
//_delay_us(2);
scl(1);
be: ad 9a sbi 0x15, 5 ; 21
scl(0);
c0: ad 98 cbi 0x15, 5 ; 21
c2: 61 50 subi r22, 0x01 ; 1
c4: 70 40 sbci r23, 0x00 ; 0
c6: 77 ff sbrs r23, 7
c8: ee cf rjmp .-36 ; 0xa6 <OperationSi4700_2w+0x24>
//_delay_us(2);
}
/***************************
CHECK ACK for control word
***************************/
BIT_CLR(DDRC,4);
ca: a4 98 cbi 0x14, 4 ; 20
//_delay_us(2);
scl(1);
cc: ad 9a sbi 0x15, 5 ; 21
if(sda_pin != 0)
ce: 83 b3 in r24, 0x13 ; 19
d0: 99 27 eor r25, r25
d2: 80 71 andi r24, 0x10 ; 16
d4: 90 70 andi r25, 0x00 ; 0
d6: 24 e0 ldi r18, 0x04 ; 4
d8: 95 95 asr r25
da: 87 95 ror r24
dc: 2a 95 dec r18
de: e1 f7 brne .-8 ; 0xd8 <OperationSi4700_2w+0x56>
e0: 00 97 sbiw r24, 0x00 ; 0
e2: 11 f0 breq .+4 ; 0xe8 <OperationSi4700_2w+0x66>
{
error = 1;
goto STOP;
}
scl(0);
//_delay_us(2);
/***************************************
WRITE or READ data
****************************************/
for(j = 0; j < numBytes; j++, data++)
{
if(operation == WRITE)
BIT_SET(DDRC,4);
else
BIT_CLR(DDRC,4);
for(i = 7; i>=0; i--)
{
if(operation == WRITE)
sda( (*data >> i) & 0x01);
//_delay_us(2);
scl(1);
if(operation == READ)
*data = (*data << 1) | sda_pin;
scl(0);
//_delay_us(2);
}
/******************************
CHECK ACK or SEND ACK=0
*******************************/
if(operation == WRITE)
BIT_CLR(DDRC,4);
else
{
BIT_SET(DDRC,4);
if(j == (numBytes -1))
sda(1)
else
sda(0)
}
//_delay_us(2);
scl(1);
if(operation == WRITE)
if(sda_pin != 0)
{
error = 1;
e4: 01 e0 ldi r16, 0x01 ; 1
goto STOP;
e6: 4e c0 rjmp .+156 ; 0x184 <OperationSi4700_2w+0x102>
e8: ad 98 cbi 0x15, 5 ; 21
ea: 10 e0 ldi r17, 0x00 ; 0
ec: 14 17 cp r17, r20
ee: 08 f0 brcs .+2 ; 0xf2 <OperationSi4700_2w+0x70>
f0: 49 c0 rjmp .+146 ; 0x184 <OperationSi4700_2w+0x102>
f2: e4 2f mov r30, r20
f4: ff 27 eor r31, r31
f6: 31 97 sbiw r30, 0x01 ; 1
f8: ec 01 movw r28, r24
fa: 50 32 cpi r21, 0x20 ; 32
fc: 11 f4 brne .+4 ; 0x102 <OperationSi4700_2w+0x80>
fe: a4 9a sbi 0x14, 4 ; 20
100: 01 c0 rjmp .+2 ; 0x104 <OperationSi4700_2w+0x82>
102: a4 98 cbi 0x14, 4 ; 20
104: 67 e0 ldi r22, 0x07 ; 7
106: 70 e0 ldi r23, 0x00 ; 0
108: 50 32 cpi r21, 0x20 ; 32
10a: 69 f4 brne .+26 ; 0x126 <OperationSi4700_2w+0xa4>
10c: 8c 91 ld r24, X
10e: 99 27 eor r25, r25
110: 06 2e mov r0, r22
112: 02 c0 rjmp .+4 ; 0x118 <OperationSi4700_2w+0x96>
114: 95 95 asr r25
116: 87 95 ror r24
118: 0a 94 dec r0
11a: e2 f7 brpl .-8 ; 0x114 <OperationSi4700_2w+0x92>
11c: 80 ff sbrs r24, 0
11e: 02 c0 rjmp .+4 ; 0x124 <OperationSi4700_2w+0xa2>
120: ac 9a sbi 0x15, 4 ; 21
122: 01 c0 rjmp .+2 ; 0x126 <OperationSi4700_2w+0xa4>
124: ac 98 cbi 0x15, 4 ; 21
126: ad 9a sbi 0x15, 5 ; 21
128: 51 32 cpi r21, 0x21 ; 33
12a: 81 f4 brne .+32 ; 0x14c <OperationSi4700_2w+0xca>
12c: 8c 91 ld r24, X
12e: 28 2f mov r18, r24
130: 33 27 eor r19, r19
132: 22 0f add r18, r18
134: 33 1f adc r19, r19
136: 83 b3 in r24, 0x13 ; 19
138: 99 27 eor r25, r25
13a: 80 71 andi r24, 0x10 ; 16
13c: 90 70 andi r25, 0x00 ; 0
13e: 34 e0 ldi r19, 0x04 ; 4
140: 95 95 asr r25
142: 87 95 ror r24
144: 3a 95 dec r19
146: e1 f7 brne .-8 ; 0x140 <OperationSi4700_2w+0xbe>
148: 82 2b or r24, r18
14a: 8c 93 st X, r24
14c: ad 98 cbi 0x15, 5 ; 21
14e: 61 50 subi r22, 0x01 ; 1
150: 70 40 sbci r23, 0x00 ; 0
152: 77 ff sbrs r23, 7
154: d9 cf rjmp .-78 ; 0x108 <OperationSi4700_2w+0x86>
156: 50 32 cpi r21, 0x20 ; 32
158: 11 f4 brne .+4 ; 0x15e <OperationSi4700_2w+0xdc>
15a: a4 98 cbi 0x14, 4 ; 20
15c: 07 c0 rjmp .+14 ; 0x16c <OperationSi4700_2w+0xea>
15e: a4 9a sbi 0x14, 4 ; 20
160: ce 17 cp r28, r30
162: df 07 cpc r29, r31
164: 11 f4 brne .+4 ; 0x16a <OperationSi4700_2w+0xe8>
166: ac 9a sbi 0x15, 4 ; 21
168: 01 c0 rjmp .+2 ; 0x16c <OperationSi4700_2w+0xea>
16a: ac 98 cbi 0x15, 4 ; 21
16c: ad 9a sbi 0x15, 5 ; 21
16e: 50 32 cpi r21, 0x20 ; 32
170: 11 f4 brne .+4 ; 0x176 <OperationSi4700_2w+0xf4>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -