|
发表于 2019-12-9 07:03:17
|
显示全部楼层
本帖最后由 Himem 于 2019-12-9 07:48 编辑
以gcc为相对路径.\bin\avr-gcc-5.4.0.exe
的.\avr\lib\crt*.o
随便objdump了一个型号,感觉应该有关系
- H:\arduino-1.8.8\hardware\tools\avr\avr\lib\avr5\crtatmega168p.o: file format elf32-avr
- H:\arduino-1.8.8\hardware\tools\avr\avr\lib\avr5\crtatmega168p.o
- architecture: avr:5, flags 0x00000011:
- HAS_RELOC, HAS_SYMS
- start address 0x00000000
- Sections:
- Idx Name Size VMA LMA File off Algn
- 0 .text 00000004 00000000 00000000 00000034 2**0
- CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
- 1 .data 00000000 00000000 00000000 00000038 2**0
- CONTENTS, ALLOC, LOAD, DATA
- 2 .bss 00000000 00000000 00000000 00000038 2**0
- ALLOC
- 3 .debug_abbrev 000005a2 00000000 00000000 00000038 2**0
- CONTENTS, READONLY, DEBUGGING
- 4 .debug_info 000005f4 00000000 00000000 000005da 2**0
- CONTENTS, RELOC, READONLY, DEBUGGING
- 5 .debug_line 0000001a 00000000 00000000 00000bce 2**0
- CONTENTS, READONLY, DEBUGGING
- 6 .debug_str 00000208 00000000 00000000 00000be8 2**0
- CONTENTS, READONLY, DEBUGGING
- 7 .vectors 00000068 00000000 00000000 00000df0 2**0
- CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
- 8 .init0 00000000 00000000 00000000 00000e58 2**0
- CONTENTS, ALLOC, LOAD, READONLY, CODE
- 9 .init2 0000000c 00000000 00000000 00000e58 2**0
- CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
- 10 .init9 00000008 00000000 00000000 00000e64 2**0
- CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
- 11 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 00000e6c 2**2
- CONTENTS, READONLY
- SYMBOL TABLE:
- 00000000 l d .text 00000000 .text
- 00000000 l d .data 00000000 .data
- 00000000 l d .bss 00000000 .bss
- 00000000 l d .debug_abbrev 00000000 .debug_abbrev
- 00000000 l d .debug_info 00000000 .debug_info
- 00000000 l d .debug_line 00000000 .debug_line
- 00000000 l d .debug_str 00000000 .debug_str
- 00000000 l d .vectors 00000000 .vectors
- 00000000 l d .init0 00000000 .init0
- 00000000 l d .init2 00000000 .init2
- 00000000 l d .init9 00000000 .init9
- 00000000 l d .note.gnu.avr.deviceinfo 00000000 .note.gnu.avr.deviceinfo
- 00000000 g .vectors 00000000 __vectors
- 00000000 w .init0 00000000 __init
- 00000000 w .text 00000000 __vector_1
- 00000000 g .text 00000000 __bad_interrupt
- 00000000 w .text 00000000 __vector_2
- 00000000 w .text 00000000 __vector_3
- 00000000 w .text 00000000 __vector_4
- 00000000 w .text 00000000 __vector_5
- 00000000 w .text 00000000 __vector_6
- 00000000 w .text 00000000 __vector_7
- 00000000 w .text 00000000 __vector_8
- 00000000 w .text 00000000 __vector_9
- 00000000 w .text 00000000 __vector_10
- 00000000 w .text 00000000 __vector_11
- 00000000 w .text 00000000 __vector_12
- 00000000 w .text 00000000 __vector_13
- 00000000 w .text 00000000 __vector_14
- 00000000 w .text 00000000 __vector_15
- 00000000 w .text 00000000 __vector_16
- 00000000 w .text 00000000 __vector_17
- 00000000 w .text 00000000 __vector_18
- 00000000 w .text 00000000 __vector_19
- 00000000 w .text 00000000 __vector_20
- 00000000 w .text 00000000 __vector_21
- 00000000 w .text 00000000 __vector_22
- 00000000 w .text 00000000 __vector_23
- 00000000 w .text 00000000 __vector_24
- 00000000 w .text 00000000 __vector_25
- 00000000 w .vectors 00000000 __vector_default
- 000004ff w *ABS* 00000000 __stack
- 00000000 w *ABS* 00000000 __heap_end
- 00000000 *UND* 00000000 main
- 00000000 *UND* 00000000 exit
- 00000003 w *ABS* 00000000 __FUSE_REGION_LENGTH__
- Disassembly of section .text:
- 00000000 <__bad_interrupt>:
- 0: 0c 94 00 00 jmp 0 ; 0x0 <__bad_interrupt>
- 0: R_AVR_CALL __vector_default
- Disassembly of section .vectors:
- 00000000 <__vectors>:
- 0: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 0: R_AVR_CALL __init
- 4: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 4: R_AVR_CALL __vector_1
- 8: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 8: R_AVR_CALL __vector_2
- c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- c: R_AVR_CALL __vector_3
- 10: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 10: R_AVR_CALL __vector_4
- 14: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 14: R_AVR_CALL __vector_5
- 18: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 18: R_AVR_CALL __vector_6
- 1c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 1c: R_AVR_CALL __vector_7
- 20: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 20: R_AVR_CALL __vector_8
- 24: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 24: R_AVR_CALL __vector_9
- 28: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 28: R_AVR_CALL __vector_10
- 2c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 2c: R_AVR_CALL __vector_11
- 30: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 30: R_AVR_CALL __vector_12
- 34: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 34: R_AVR_CALL __vector_13
- 38: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 38: R_AVR_CALL __vector_14
- 3c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 3c: R_AVR_CALL __vector_15
- 40: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 40: R_AVR_CALL __vector_16
- 44: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 44: R_AVR_CALL __vector_17
- 48: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 48: R_AVR_CALL __vector_18
- 4c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 4c: R_AVR_CALL __vector_19
- 50: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 50: R_AVR_CALL __vector_20
- 54: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 54: R_AVR_CALL __vector_21
- 58: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 58: R_AVR_CALL __vector_22
- 5c: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 5c: R_AVR_CALL __vector_23
- 60: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 60: R_AVR_CALL __vector_24
- 64: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
- 64: R_AVR_CALL __vector_25
- Disassembly of section .init2:
- 00000000 <.init2>:
- 0: 11 24 eor r1, r1
- 2: 1f be out 0x3f, r1 ; 63
- 4: c0 e0 ldi r28, 0x00 ; 0
- 4: R_AVR_LO8_LDI __stack
- 6: d0 e0 ldi r29, 0x00 ; 0
- 6: R_AVR_HI8_LDI __stack
- 8: de bf out 0x3e, r29 ; 62
- a: cd bf out 0x3d, r28 ; 61
- Disassembly of section .init9:
- 00000000 <.init9>:
- 0: 0e 94 00 00 call 0 ; 0x0 <.init9>
- 0: R_AVR_CALL main
- 4: 0c 94 00 00 jmp 0 ; 0x0 <.init9>
- 4: R_AVR_CALL exit
复制代码 |
|