ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
3 июля
559421
Dingo (14.11.2014 13:05 - 13:36, просмотров: 19629)
[решил] Пытаюсь освоить ARM. Ошибка линковки. При сборке на STM32F407 barebone выдаёт ошибку: ld.exe: section .init loaded at [080005a4,080005a7] overlaps section .data loaded at [080005a4,080005b3] Осваивать только начал, поэтому боюсь заблудиться и прошу совета - куда пнуть линкер, что и где прописать? В прицепке скрипт линкера (взят с чужого примера), вывод команды arm-none-eabi-objdump.exe -h по собранным объектникам, и map-файл. Ну и grep '.init' по нему:
 .init_array    0x00000000        0x4 c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/crtbegin.o
 .text          0x00000000        0x0 c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m\libc.a(lib_a-init.o)
 .data          0x00000000        0x0 c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m\libc.a(lib_a-init.o)
 .bss           0x00000000        0x0 c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m\libc.a(lib_a-init.o)
 .init_array.00000
 .init          0x00000000        0x8 c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/crtn.o
 .text.__libc_init_array
                0x08000554       0x50 c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m\libc.a(lib_a-init.o)
                0x08000554                __libc_init_array
.init           0x080005a4        0x4
 .init          0x080005a4        0x4 c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/armv7e-m/crti.o
                0x080005a4                _init
                0x0000012a       0x2e c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m\libc.a(lib_a-init.o)
 .debug_frame   0x00000704       0x2c c:/program files/gnu tools arm embedded/4.8 2014q3/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib/armv7e-m\libc.a(lib_a-init.o)
Добавил в скрипт линкеру место для init:
    .text :
    {
	    . = ALIGN(4);
	    
	*(.init)		/* added Hoksmur*/
        *(.text)                   /* remaining code */