Re: STM32F4xx __libc_init_array a ARM kód.

Josef Štengl ok1ced na nagano.cz
Pondělí Březen 27 13:57:38 CEST 2017


Aha, vypadá do na správnou cestu. Nemáte náhodou nějaký makefile nebo něco podobného? Mě to přiřazuje obecnou knihovnu pro 
arm (z nadřazeného adresáře, než jsou ty specializované) a nevím jak to přesvědčit aby přiřadil jinou.

  -march=armv7e-m nezabírá

Bude to nějaký jednoduchý způsob, jako obvykle, jen se ho dobrat.


To, že považuji IDE za obtěžující frontend s mezivrstvu mě asi trestá :-)


Dne 27.3.2017 v 12:14 Hynek Sladky napsal(a):
> V .map souboru by melo byt videt, ktere knihovny jsou prilinkovane. Podle me by mely byt vsechny pro stejnou architekturu
> (ARMv7-M nebo ARMv7E-M), pak by tedy mely obsahovat vzdy pouze Thumb instrukce. Ted jsem se dival do jednoho ze svych
> projekyu pro STM32F4xx a vsechny standardni funkce jsou prilinkovane z knihoven v adresari armv7e-m...
>
> Hynek Sladky
>
>
> Dne 27.3.2017 11:28, Josef Štengl napsal(a):
>> Ahoj,
>>   vytvářím nový projekt pro Cortex-m4 (trošku mě překvapilo, že oproti cortex-a/r je to prakticky jiný procesor) pomocí
>> STM32CubeMX + gcc (tahle kombinace poprvé, jak procesor tak překladač, tak se s tím zatím peru :-). No a drhne to na fci
>> volání __libc_init_array, ve které se to zadrhne. Co jsem se dočetl, tak se většinou pro C komentuje. To sice také
>> funguje, ale nechápal jsem proč to nejde a bloudí a co dělá (jsem někdy nemístně zvědavý).
>> V asm výpisu (LST file) jsem zjistil, že kód je místo THUMB ARM. ARM ten procesor dle dokumentace neumí a nemám tušení
>> jak se to interpretuje.
>>
>> Procesor je STM32F329 (bude pak 405)
>>
>> Nemá někdo tušení, jak přesvědčit kompilátor/linker aby přidával svůj kus kódu ve správných instrukcích (THUMB only)?
>>
>> Našel jsem zmíňku o výpis možných knihoven pro překladač, ale už jsem nenašel jak s touto informací naložit.
>> Buď to nikdo neřeší, nebo něco přehlížím.
>>
>> #arm-none-eabi-gcc --print-multi-lib
>>
>> .;
>> thumb;@mthumb
>> fpu;@mfloat-abi=hard
>> armv6-m;@mthumb na march=armv6s-m
>> armv7-m;@mthumb na march=armv7-m
>> armv7e-m;@mthumb na march=armv7e-m
>> armv7-ar/thumb;@mthumb na march=armv7
>> armv7e-m/softfp;@mthumb na march=armv7e-m na mfloat-abi=softfp na mfpu=fpv4-sp-d16
>> armv7e-m/fpu;@mthumb na march=armv7e-m na mfloat-abi=hard na mfpu=fpv4-sp-d16
>> armv7-ar/thumb/softfp;@mthumb na march=armv7 na mfloat-abi=softfp na mfpu=vfpv3-d16
>> armv7-ar/thumb/fpu;@mthumb na march=armv7 na mfloat-abi=hard na mfpu=vfpv3-d16
>> thumb/armv7-ar/fpu/vfpv3-d16/be;@mthumb na march=armv7 na mfloat-abi=hard na mfpu=vfpv3-d16 na mbig-endian
>>
>>
>> Překlad:
>> arm-none-eabi-gcc -MT obj/usart.o -MMD -MP -mthumb -mlittle-endian -mcpu=cortex-m4 -mfpu=vfpv4-d16 -DSTM32F4
>> -DSTM32F429xx -DUSE_STDPERIPH_DRIVER -DVECT_TAB_SRAM   ...
>>
>> Linkování:
>> arm-none-eabi-gcc -mthumb -mlittle-endian -mcpu=cortex-m4 -mfpu=vfpv4-d16
>> -Wl,--gc-sections,-Map=SmartAtFire_SCU-cortex-m4_debug.map,--cref ...
>>
>>
>> Díky za každé nakopnutí.
>> ced
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


Další informace o konferenci Hw-list