Сообщение Re[12]: Самый низкоуровневый язык, ага от 07.10.2023 14:23
Изменено 07.10.2023 14:27 vsb
Re[12]: Самый низкоуровневый язык, ага
Здравствуйте, Евгений Музыченко, Вы писали:
vsb>>в объектном файле откуда-то затесались пустые функции _init и _fini
ЕМ>В объектном коде есть их вызовы? Они попадают в конечный бинарник? Если да, кто их там вызывает?
Нет, вызовов нет. В конечный бинарник попадают, вызовов там нет.
vsb>>в объектном файле откуда-то затесались пустые функции _init и _fini
ЕМ>В объектном коде есть их вызовы? Они попадают в конечный бинарник? Если да, кто их там вызывает?
Нет, вызовов нет. В конечный бинарник попадают, вызовов там нет.
Re[12]: Самый низкоуровневый язык, ага
Здравствуйте, Евгений Музыченко, Вы писали:
vsb>>в объектном файле откуда-то затесались пустые функции _init и _fini
ЕМ>В объектном коде есть их вызовы? Они попадают в конечный бинарник? Если да, кто их там вызывает?
Нет, вызовов нет. В конечный бинарник попадают, вызовов там нет. Программа почти минимальная (без оптимизации).
vsb>>в объектном файле откуда-то затесались пустые функции _init и _fini
ЕМ>В объектном коде есть их вызовы? Они попадают в конечный бинарник? Если да, кто их там вызывает?
Нет, вызовов нет. В конечный бинарник попадают, вызовов там нет. Программа почти минимальная (без оптимизации).
arm-none-eabi-objdump -d build/gd32e103_ads1298r.elf
build/gd32e103_ads1298r.elf: file format elf32-littlearm
Disassembly of section .text:
08000150 <halt>:
8000150: e52db004 push {fp} @ (str fp, [sp, #-4]!)
8000154: e28db000 add fp, sp, #0
8000158: e24dd00c sub sp, sp, #12
800015c: e1a03000 mov r3, r0
8000160: e54b3005 strb r3, [fp, #-5]
8000164: e59f3014 ldr r3, [pc, #20] @ 8000180 <halt+0x30>
8000168: e5d33000 ldrb r3, [r3]
800016c: e59f200c ldr r2, [pc, #12] @ 8000180 <halt+0x30>
8000170: e55b3005 ldrb r3, [fp, #-5]
8000174: e5c23000 strb r3, [r2]
8000178: e1a00000 nop @ (mov r0, r0)
800017c: eafffffd b 8000178 <halt+0x28>
8000180: 20000000 .word 0x20000000
08000184 <start>:
8000184: e52db004 push {fp} @ (str fp, [sp, #-4]!)
8000188: e28db000 add fp, sp, #0
800018c: e1a00000 nop @ (mov r0, r0)
8000190: e28bd000 add sp, fp, #0
8000194: e49db004 pop {fp} @ (ldr fp, [sp], #4)
8000198: e12fff1e bx lr
0800019c <foo>:
800019c: e52db004 push {fp} @ (str fp, [sp, #-4]!)
80001a0: e28db000 add fp, sp, #0
80001a4: e59f3014 ldr r3, [pc, #20] @ 80001c0 <foo+0x24>
80001a8: e3a02001 mov r2, #1
80001ac: e5832000 str r2, [r3]
80001b0: e1a00000 nop @ (mov r0, r0)
80001b4: e28bd000 add sp, fp, #0
80001b8: e49db004 pop {fp} @ (ldr fp, [sp], #4)
80001bc: e12fff1e bx lr
80001c0: 20000004 .word 0x20000004
080001c4 <clocks_init>:
80001c4: e52db004 push {fp} @ (str fp, [sp, #-4]!)
80001c8: e28db000 add fp, sp, #0
80001cc: e1a00000 nop @ (mov r0, r0)
80001d0: e28bd000 add sp, fp, #0
80001d4: e49db004 pop {fp} @ (ldr fp, [sp], #4)
80001d8: e12fff1e bx lr
080001dc <reset_handler>:
80001dc: e92d4800 push {fp, lr}
80001e0: e28db004 add fp, sp, #4
80001e4: e24dd018 sub sp, sp, #24
80001e8: ebfffff5 bl 80001c4 <clocks_init>
80001ec: e59f3090 ldr r3, [pc, #144] @ 8000284 <reset_handler+0xa8>
80001f0: e50b3008 str r3, [fp, #-8]
80001f4: e59f308c ldr r3, [pc, #140] @ 8000288 <reset_handler+0xac>
80001f8: e50b3014 str r3, [fp, #-20] @ 0xffffffec
80001fc: ea000004 b 8000214 <reset_handler+0x38>
8000200: e51b3008 ldr r3, [fp, #-8]
8000204: e2832004 add r2, r3, #4
8000208: e50b2008 str r2, [fp, #-8]
800020c: e3a02000 mov r2, #0
8000210: e5832000 str r2, [r3]
8000214: e51b2008 ldr r2, [fp, #-8]
8000218: e51b3014 ldr r3, [fp, #-20] @ 0xffffffec
800021c: e1520003 cmp r2, r3
8000220: 3afffff6 bcc 8000200 <reset_handler+0x24>
8000224: e59f3060 ldr r3, [pc, #96] @ 800028c <reset_handler+0xb0>
8000228: e50b300c str r3, [fp, #-12]
800022c: e59f305c ldr r3, [pc, #92] @ 8000290 <reset_handler+0xb4>
8000230: e50b3010 str r3, [fp, #-16]
8000234: e59f3058 ldr r3, [pc, #88] @ 8000294 <reset_handler+0xb8>
8000238: e50b3018 str r3, [fp, #-24] @ 0xffffffe8
800023c: ea000007 b 8000260 <reset_handler+0x84>
8000240: e51b200c ldr r2, [fp, #-12]
8000244: e2823004 add r3, r2, #4
8000248: e50b300c str r3, [fp, #-12]
800024c: e51b3010 ldr r3, [fp, #-16]
8000250: e2831004 add r1, r3, #4
8000254: e50b1010 str r1, [fp, #-16]
8000258: e5922000 ldr r2, [r2]
800025c: e5832000 str r2, [r3]
8000260: e51b2010 ldr r2, [fp, #-16]
8000264: e51b3018 ldr r3, [fp, #-24] @ 0xffffffe8
8000268: e1520003 cmp r2, r3
800026c: 3afffff3 bcc 8000240 <reset_handler+0x64>
8000270: ebffffc3 bl 8000184 <start>
8000274: e1a00000 nop @ (mov r0, r0)
8000278: e24bd004 sub sp, fp, #4
800027c: e8bd4800 pop {fp, lr}
8000280: e12fff1e bx lr
8000284: 20000000 .word 0x20000000
8000288: 20000008 .word 0x20000008
800028c: 08000350 .word 0x08000350
8000290: 20000008 .word 0x20000008
8000294: 20000008 .word 0x20000008
08000298 <nmi_handler>:
8000298: e92d4800 push {fp, lr}
800029c: e28db004 add fp, sp, #4
80002a0: e3a00002 mov r0, #2
80002a4: ebffffa9 bl 8000150 <halt>
80002a8: e1a00000 nop @ (mov r0, r0)
80002ac: e24bd004 sub sp, fp, #4
80002b0: e8bd4800 pop {fp, lr}
80002b4: e12fff1e bx lr
080002b8 <hard_fault_handler>:
80002b8: e92d4800 push {fp, lr}
80002bc: e28db004 add fp, sp, #4
80002c0: e3a00003 mov r0, #3
80002c4: ebffffa1 bl 8000150 <halt>
80002c8: e1a00000 nop @ (mov r0, r0)
80002cc: e24bd004 sub sp, fp, #4
80002d0: e8bd4800 pop {fp, lr}
80002d4: e12fff1e bx lr
080002d8 <mem_manage_handler>:
80002d8: e92d4800 push {fp, lr}
80002dc: e28db004 add fp, sp, #4
80002e0: e3a00004 mov r0, #4
80002e4: ebffff99 bl 8000150 <halt>
80002e8: e1a00000 nop @ (mov r0, r0)
80002ec: e24bd004 sub sp, fp, #4
80002f0: e8bd4800 pop {fp, lr}
80002f4: e12fff1e bx lr
080002f8 <bus_fault_handler>:
80002f8: e92d4800 push {fp, lr}
80002fc: e28db004 add fp, sp, #4
8000300: e3a00005 mov r0, #5
8000304: ebffff91 bl 8000150 <halt>
8000308: e1a00000 nop @ (mov r0, r0)
800030c: e24bd004 sub sp, fp, #4
8000310: e8bd4800 pop {fp, lr}
8000314: e12fff1e bx lr
08000318 <usage_fault_handler>:
8000318: e92d4800 push {fp, lr}
800031c: e28db004 add fp, sp, #4
8000320: e3a00006 mov r0, #6
8000324: ebffff89 bl 8000150 <halt>
8000328: e1a00000 nop @ (mov r0, r0)
800032c: e24bd004 sub sp, fp, #4
8000330: e8bd4800 pop {fp, lr}
8000334: e12fff1e bx lr
08000338 <_init>:
8000338: e1a0c00d mov ip, sp
800033c: e92ddff8 push {r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc}
8000340: e24cb004 sub fp, ip, #4
08000344 <_fini>:
8000344: e1a0c00d mov ip, sp
8000348: e92ddff8 push {r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc}
800034c: e24cb004 sub fp, ip, #4