📄 main.lss
字号:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000004c 00800100 0000329c 00003330 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 0000329c 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .bss 000005b1 0080014c 0080014c 0000337c 2**0
ALLOC
3 .noinit 00000000 008006fd 008006fd 0000337c 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 0000337c 2**0
CONTENTS
5 .stab 00008a60 00000000 00000000 0000337c 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 00003b16 00000000 00000000 0000bddc 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 46 00 jmp 0x8c
4: 0c 94 63 00 jmp 0xc6
8: 0c 94 63 00 jmp 0xc6
c: 0c 94 63 00 jmp 0xc6
10: 0c 94 63 00 jmp 0xc6
14: 0c 94 63 00 jmp 0xc6
18: 0c 94 63 00 jmp 0xc6
1c: 0c 94 63 00 jmp 0xc6
20: 0c 94 63 00 jmp 0xc6
24: 0c 94 63 00 jmp 0xc6
28: 0c 94 63 00 jmp 0xc6
2c: 0c 94 63 00 jmp 0xc6
30: 0c 94 63 10 jmp 0x20c6
34: 0c 94 63 00 jmp 0xc6
38: 0c 94 63 00 jmp 0xc6
3c: 0c 94 06 0a jmp 0x140c
40: 0c 94 63 00 jmp 0xc6
44: 0c 94 c7 0c jmp 0x198e
48: 0c 94 6a 0e jmp 0x1cd4
4c: 0c 94 63 00 jmp 0xc6
50: 0c 94 1f 0e jmp 0x1c3e
54: 0c 94 24 01 jmp 0x248
58: 0c 94 63 00 jmp 0xc6
5c: 0c 94 63 00 jmp 0xc6
60: 0c 94 63 00 jmp 0xc6
64: 0c 94 63 00 jmp 0xc6
68: 0c 94 63 00 jmp 0xc6
6c: 0c 94 63 00 jmp 0xc6
70: 0c 94 63 00 jmp 0xc6
74: 0c 94 63 00 jmp 0xc6
78: 0c 94 63 00 jmp 0xc6
7c: 0c 94 63 00 jmp 0xc6
80: 0c 94 63 00 jmp 0xc6
84: 0c 94 63 00 jmp 0xc6
88: 0c 94 63 00 jmp 0xc6
0000008c <__ctors_end>:
8c: 11 24 eor r1, r1
8e: 1f be out 0x3f, r1 ; 63
90: cf ef ldi r28, 0xFF ; 255
92: d0 e1 ldi r29, 0x10 ; 16
94: de bf out 0x3e, r29 ; 62
96: cd bf out 0x3d, r28 ; 61
00000098 <__do_copy_data>:
98: 11 e0 ldi r17, 0x01 ; 1
9a: a0 e0 ldi r26, 0x00 ; 0
9c: b1 e0 ldi r27, 0x01 ; 1
9e: ec e9 ldi r30, 0x9C ; 156
a0: f2 e3 ldi r31, 0x32 ; 50
a2: 00 e0 ldi r16, 0x00 ; 0
a4: 0b bf out 0x3b, r16 ; 59
a6: 02 c0 rjmp .+4 ; 0xac
000000a8 <.__do_copy_data_loop>:
a8: 07 90 elpm r0, Z+
aa: 0d 92 st X+, r0
000000ac <.__do_copy_data_start>:
ac: ac 34 cpi r26, 0x4C ; 76
ae: b1 07 cpc r27, r17
b0: d9 f7 brne .-10 ; 0xa8
000000b2 <__do_clear_bss>:
b2: 16 e0 ldi r17, 0x06 ; 6
b4: ac e4 ldi r26, 0x4C ; 76
b6: b1 e0 ldi r27, 0x01 ; 1
b8: 01 c0 rjmp .+2 ; 0xbc
000000ba <.do_clear_bss_loop>:
ba: 1d 92 st X+, r1
000000bc <.do_clear_bss_start>:
bc: ad 3f cpi r26, 0xFD ; 253
be: b1 07 cpc r27, r17
c0: e1 f7 brne .-8 ; 0xba
c2: 0c 94 65 00 jmp 0xca
000000c6 <__bad_interrupt>:
c6: 0c 94 00 00 jmp 0x0
000000ca <main>:
*/
#include "os.h"
int main(void)
{
ca: cf ef ldi r28, 0xFF ; 255
cc: d0 e1 ldi r29, 0x10 ; 16
ce: de bf out 0x3e, r29 ; 62
d0: cd bf out 0x3d, r28 ; 61
MainHardwareInit();
d2: 0e 94 47 07 call 0xe8e
OSSchedInit();
d6: 0e 94 4c 07 call 0xe98
MainStdControlInit();
da: 0e 94 5f 07 call 0xebe
MainStdControlStart();
de: 0e 94 63 07 call 0xec6
EnableInterrupt();
e2: 0e 94 67 07 call 0xece
while (1) {
OSHRunTask();
e6: 0e 94 9e 07 call 0xf3c
ea: fd cf rjmp .-6 ; 0xe6
000000ec <ADCHPLInitPortmap>:
void ADCHPLInitPortmap(void)
{
{ uint8_t atomicState = AtomicStart();
ec: 0e 94 73 07 call 0xee6
f0: 28 2f mov r18, r24
{
if (HPLADCM_init_portmap_done == FALSE) {
f2: 80 91 52 01 lds r24, 0x0152
f6: 88 23 and r24, r24
f8: 91 f4 brne .+36 ; 0x11e
int i;
for (i = 0; i < OSH_ADC_PORTMAPSIZE; i++)
fa: 80 e0 ldi r24, 0x00 ; 0
fc: 90 e0 ldi r25, 0x00 ; 0
fe: e3 e5 ldi r30, 0x53 ; 83
100: f1 e0 ldi r31, 0x01 ; 1
adcPortmap[i] = i;
102: 81 93 st Z+, r24
104: 01 96 adiw r24, 0x01 ; 1
106: 8c 30 cpi r24, 0x0C ; 12
108: 91 05 cpc r25, r1
10a: dc f3 brlt .-10 ; 0x102
adcPortmap[OS_ADC_BANDGAP_PORT] = OSH_ACTUAL_BANDGAP_PORT;
10c: 8e e1 ldi r24, 0x1E ; 30
10e: 80 93 5d 01 sts 0x015D, r24
adcPortmap[OS_ADC_GND_PORT] = OSH_ACTUAL_GND_PORT;
112: 8f e1 ldi r24, 0x1F ; 31
114: 80 93 5e 01 sts 0x015E, r24
HPLADCM_init_portmap_done = TRUE;
118: 81 e0 ldi r24, 0x01 ; 1
11a: 80 93 52 01 sts 0x0152, r24
}
}
AtomicEnd(atomicState); }
11e: 82 2f mov r24, r18
120: 0e 94 71 07 call 0xee2
124: 08 95 ret
00000126 <ADCControlInit>:
126: 0e 94 73 07 call 0xee6
12a: 10 92 4d 01 sts 0x014D, r1
12e: 10 92 4c 01 sts 0x014C, r1
132: 10 92 51 01 sts 0x0151, r1
136: 10 92 50 01 sts 0x0150, r1
13a: 10 92 4f 01 sts 0x014F, r1
13e: 10 92 4e 01 sts 0x014E, r1
142: 0e 94 71 07 call 0xee2
146: 0e 94 76 00 call 0xec
14a: 0e 94 73 07 call 0xee6
14e: 9e e0 ldi r25, 0x0E ; 14
150: 96 b9 out 0x06, r25 ; 6
152: 17 b8 out 0x07, r1 ; 7
154: 0e 94 71 07 call 0xee2
158: 81 e0 ldi r24, 0x01 ; 1
15a: 90 e0 ldi r25, 0x00 ; 0
15c: 08 95 ret
0000015e <ADCBindPort>:
15e: 1f 93 push r17
160: cf 93 push r28
162: c8 2f mov r28, r24
164: 16 2f mov r17, r22
166: 8c 30 cpi r24, 0x0C ; 12
168: 90 f4 brcc .+36 ; 0x18e
16a: 8a 30 cpi r24, 0x0A ; 10
16c: 81 f0 breq .+32 ; 0x18e
16e: 8b 30 cpi r24, 0x0B ; 11
170: 71 f0 breq .+28 ; 0x18e
172: 0e 94 76 00 call 0xec
176: 0e 94 73 07 call 0xee6
17a: ec 2f mov r30, r28
17c: ff 27 eor r31, r31
17e: ed 5a subi r30, 0xAD ; 173
180: fe 4f sbci r31, 0xFE ; 254
182: 10 83 st Z, r17
184: 0e 94 71 07 call 0xee2
188: 81 e0 ldi r24, 0x01 ; 1
18a: 90 e0 ldi r25, 0x00 ; 0
18c: 02 c0 rjmp .+4 ; 0x192
18e: 80 e0 ldi r24, 0x00 ; 0
190: 90 e0 ldi r25, 0x00 ; 0
192: cf 91 pop r28
194: 1f 91 pop r17
196: 08 95 ret
00000198 <ADCHPLSamplePort>:
}
void __attribute((signal)) __vector_21(void)
{
uint16_t data = * (volatile unsigned int *)(unsigned int )& * (volatile unsigned char *)(0x04 + 0x20);
data &= 0x3ff;
* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 4;
* (volatile unsigned char *)(0x06 + 0x20) &= ~(1 << 7);
EnableInterrupt();
ADCHPLDataReady(data);
}
static result_t ADCHPLSamplePort(uint8_t port)
{
198: 1f 93 push r17
19a: 18 2f mov r17, r24
{ uint8_t atomicState = AtomicStart();
19c: 0e 94 73 07 call 0xee6
{
* (volatile unsigned char *)(0x07 + 0x20) = adcPortmap[port] & 0x1F;
1a0: e3 e5 ldi r30, 0x53 ; 83
1a2: f1 e0 ldi r31, 0x01 ; 1
1a4: e1 0f add r30, r17
1a6: f1 1d adc r31, r1
1a8: 90 81 ld r25, Z
1aa: 9f 71 andi r25, 0x1F ; 31
1ac: 97 b9 out 0x07, r25 ; 7
}
AtomicEnd(atomicState); }
1ae: 0e 94 71 07 call 0xee2
* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 7;
1b2: 37 9a sbi 0x06, 7 ; 6
* (volatile unsigned char *)(0x06 + 0x20) |= 1 << 6;
1b4: 36 9a sbi 0x06, 6 ; 6
return SUCCESS;
} 1b6: 81 e0 ldi r24, 0x01 ; 1
1b8: 90 e0 ldi r25, 0x00 ; 0
1ba: 1f 91 pop r17
1bc: 08 95 ret
000001be <ADCGetData>:
1be: df 92 push r13
1c0: ef 92 push r14
1c2: ff 92 push r15
1c4: 0f 93 push r16
1c6: 1f 93 push r17
1c8: cf 93 push r28
1ca: df 93 push r29
1cc: 18 2f mov r17, r24
1ce: 01 e0 ldi r16, 0x01 ; 1
1d0: 8d 30 cpi r24, 0x0D ; 13
1d2: 18 f0 brcs .+6 ; 0x1da
1d4: 80 e0 ldi r24, 0x00 ; 0
1d6: 90 e0 ldi r25, 0x00 ; 0
1d8: 2e c0 rjmp .+92 ; 0x236
1da: e8 2e mov r14, r24
1dc: ff 24 eor r15, r15
1de: c1 e0 ldi r28, 0x01 ; 1
1e0: d0 e0 ldi r29, 0x00 ; 0
1e2: 0e 2c mov r0, r14
1e4: 02 c0 rjmp .+4 ; 0x1ea
1e6: cc 0f add r28, r28
1e8: dd 1f adc r29, r29
1ea: 0a 94 dec r0
1ec: e2 f7 brpl .-8 ; 0x1e6
1ee: 0e 94 73 07 call 0xee6
1f2: d8 2e mov r13, r24
1f4: 20 91 4e 01 lds r18, 0x014E
1f8: 30 91 4f 01 lds r19, 0x014F
1fc: ce 01 movw r24, r28
1fe: 82 23 and r24, r18
200: 93 23 and r25, r19
202: 89 2b or r24, r25
204: 11 f0 breq .+4 ; 0x20a
206: 00 e0 ldi r16, 0x00 ; 0
208: 11 c0 rjmp .+34 ; 0x22c
20a: ce 01 movw r24, r28
20c: 82 2b or r24, r18
20e: 93 2b or r25, r19
210: 90 93 4f 01 sts 0x014F, r25
214: 80 93 4e 01 sts 0x014E, r24
218: 23 2b or r18, r19
21a: 41 f4 brne .+16 ; 0x22c
21c: f0 92 4d 01 sts 0x014D, r15
220: e0 92 4c 01 sts 0x014C, r14
224: 81 2f mov r24, r17
226: 0e 94 cc 00 call 0x198
22a: 08 2f mov r16, r24
22c: 8d 2d mov r24, r13
22e: 0e 94 71 07 call 0xee2
232: 80 2f mov r24, r16
234: 99 27 eor r25, r25
236: 99 27 eor r25, r25
238: df 91 pop r29
23a: cf 91 pop r28
23c: 1f 91 pop r17
23e: 0f 91 pop r16
240: ff 90 pop r15
242: ef 90 pop r14
244: df 90 pop r13
246: 08 95 ret
00000248 <__vector_21>:
248: 1f 92 push r1
24a: 0f 92 push r0
24c: 0f b6 in r0, 0x3f ; 63
24e: 0f 92 push r0
250: 11 24 eor r1, r1
252: ef 92 push r14
254: ff 92 push r15
256: 0f 93 push r16
258: 1f 93 push r17
25a: 2f 93 push r18
25c: 3f 93 push r19
25e: 4f 93 push r20
260: 5f 93 push r21
262: 6f 93 push r22
264: 7f 93 push r23
266: 8f 93 push r24
268: 9f 93 push r25
26a: af 93 push r26
26c: bf 93 push r27
26e: cf 93 push r28
270: df 93 push r29
272: ef 93 push r30
274: ff 93 push r31
276: c4 b1 in r28, 0x04 ; 4
278: d5 b1 in r29, 0x05 ; 5
27a: d3 70 andi r29, 0x03 ; 3
27c: 34 9a sbi 0x06, 4 ; 6
27e: 37 98 cbi 0x06, 7 ; 6
280: 0e 94 67 07 call 0xece
284: 0e 94 73 07 call 0xee6
288: 08 2f mov r16, r24
28a: 80 91 4c 01 lds r24, 0x014C
28e: e8 2e mov r14, r24
290: ff 24 eor r15, r15
292: 41 e0 ldi r20, 0x01 ; 1
294: 50 e0 ldi r21, 0x00 ; 0
296: 9a 01 movw r18, r20
298: 0e 2c mov r0, r14
29a: 02 c0 rjmp .+4 ; 0x2a0
29c: 22 0f add r18, r18
29e: 33 1f adc r19, r19
2a0: 0a 94 dec r0
2a2: e2 f7 brpl .-8 ; 0x29c
2a4: 80 91 50 01 lds r24, 0x0150
2a8: 90 91 51 01 lds r25, 0x0151
2ac: 82 23 and r24, r18
2ae: 93 23 and r25, r19
2b0: 89 2b or r24, r25
2b2: 61 f4 brne .+24 ; 0x2cc
2b4: 20 95 com r18
2b6: 30 95 com r19
2b8: 80 91 4e 01 lds r24, 0x014E
2bc: 90 91 4f 01 lds r25, 0x014F
2c0: 82 23 and r24, r18
2c2: 93 23 and r25, r19
2c4: 90 93 4f 01 sts 0x014F, r25
2c8: 80 93 4e 01 sts 0x014E, r24
2cc: 60 91 4e 01 lds r22, 0x014E
2d0: 70 91 4f 01 lds r23, 0x014F
2d4: 61 15 cp r22, r1
2d6: 71 05 cpc r23, r1
2d8: 11 f1 breq .+68 ; 0x31e
2da: fa 01 movw r30, r20
2dc: 40 91 4c 01 lds r20, 0x014C
2e0: 50 91 4d 01 lds r21, 0x014D
2e4: 4f 5f subi r20, 0xFF ; 255
2e6: 5f 4f sbci r21, 0xFF ; 255
2e8: 4c 30 cpi r20, 0x0C ; 12
2ea: 51 05 cpc r21, r1
2ec: 11 f0 breq .+4 ; 0x2f2
2ee: 9a 01 movw r18, r20
2f0: 02 c0 rjmp .+4 ; 0x2f6
2f2: 20 e0 ldi r18, 0x00 ; 0
2f4: 30 e0 ldi r19, 0x00 ; 0
2f6: a9 01 movw r20, r18
2f8: cf 01 movw r24, r30
2fa: 02 2e mov r0, r18
2fc: 02 c0 rjmp .+4 ; 0x302
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -