STM32 startup kod
Jaroslav Buchta
jaroslav.buchta na hascomp.cz
Středa Srpen 14 09:50:51 CEST 2019
To by asi slo ale velmi mne znervoznuje, ze bych tim nejak ztratil
duveru v IMHO celkem rozsireny toolchain v baliku SW4STM32...
No zkusim jej jeste preinstalovat.
Dne 14.08.2019 v 9:48 Jan Waclawek napsal(a):
> No tak skusit inu verziu prekladaca resp. prekladac z ineho zdroja, moze
> mat zle prelozene kniznice, zle nastavene specs... vsetko veci ktorym
> nerozumiem a nedotykam sa ich. Pisete, ze je to starsi projekt, tak mozno
> tou verziou prekladaca ktorou bol povodne prekladany.
>
> wek
>
>
> ----- Original Message ---------------
>
>> To me napadlo ale nastaveni linkeru by snad melo byt OK, typ jadra i
>> thumb tam je.
>>
>> -mcpu=cortex-m3 -mthumb -mfloat-abi=softfp -specs=nosys.specs
>> -specs=nano.specs -T"../STM32F101RBTx_FLASH_.ld" -Wl,-Map=output.map
>> -Wl,--gc-sections -lm
>>
>> Ale skutecne mi to tak take pripada. Jsem z toho jelen, odkazy v sekci
>> .init_array a .fini_array take vedou na nesmyslny kod...
>>
>>
>> Dne 14.08.2019 v 9:18 Jan Waclawek napsal(a):
>>> Nie je to nahodou ARM binar (t.j. ne-Thumb)?
>>> Pri linkovani boli pouzite prepinace pre thumb a prislusny typ jadra?
>>>
>>>> A taky by me zajimalo, proc se mi vzdycky po vygenerovani novych
>>>> zdrojaku z CubeMX znici .LD soubor
>>> To je zasluzeny trest za pouzivanie CubeMX.
>>>
>>> wek
>>>
>>> ----- Original Message ---------------
>>>> Zdravim, vzal jsem do ruky starsi projekt s procesorem STM32F101RBT6, v
>>>> CubeMX nakonfiguroval a vygeneroval projekt s HAL. Potud vse OK. Preklad
>>>> nesel, dokud jsem nevlozit do nastaveni projektu definici __SOFTFP__,
>>>> budiz, drobna chybka...
>>>>
>>>> Ale program stejne nefunguje, zhavaruje volani fce ve startup kodu
>>>>
>>>> bl __libc_init_array
>>>>
>>>> ktera je ponekud nesmyslna (asi v sekci .preinit_array nic neni ale
>>>> funkce prilinkovana dle map souboru je) a vypada takto - druha instrukce
>>>> skace nekam doprostred fce... Kod i jinak nedava smysl.
>>>>
>>>> __libc_init_array:
>>>> 080013f0: adds r0, #112 ; 0x70
>>>> 080013f2: b.n 0x8000f34 <HAL_RTC_SetDate+68> //!!!!! nesmysl?
>>>> 080013f4: eors r0, r6
>>>> 080013f6: stmdb sp!, {r12, lr}
>>>> 080013fa: b.n 0x8001b3e
>>>>
>>>> ...
>>>>
>>>> Sekce z .map souboru
>>>>
>>>> .text.__libc_init_array
>>>> 0x080013f0 0x88
>>>> c:/ac6/systemworkbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.17.0.201812190825/tools/compiler/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib\libc_nano.a(lib_a-init.o)
>>>> 0x080013f0 __libc_init_array
>>>>
>>>> .preinit_array 0x080014d4 0x0
>>>> 0x080014d4 PROVIDE
>>>> (__preinit_array_start = .)
>>>> *(.preinit_array*)
>>>> 0x080014d4 PROVIDE (__preinit_array_end = .)
>>>>
>>>> .init_array 0x080014d4 0x4
>>>> 0x080014d4 PROVIDE (__init_array_start = .)
>>>> *(SORT_BY_NAME(.init_array.*))
>>>> *(.init_array*)
>>>> .init_array 0x080014d4 0x4
>>>> c:/ac6/systemworkbench/plugins/fr.ac6.mcu.externaltools.arm-none.win32_1.17.0.201812190825/tools/compiler/bin/../lib/gcc/arm-none-eabi/7.3.1/crtbegin.o
>>>> 0x080014d8 PROVIDE (__init_array_end = .)
>>>>
>>>> Prekladac je z SW4STM32 a SW je aktualni. Netusi nekdo, kde muze byt
>>>> chyba? Je snad pouziti techto starych MCU v kombinaci s novymi nastroji
>>>> nefunkcni?
>>>>
>>>> A taky by me zajimalo, proc se mi vzdycky po vygenerovani novych
>>>> zdrojaku z CubeMX znici .LD soubor, zkrati se na delku 0. Staci jej
>>>> smazat a znovu vygenerovat projekt...
>>>>
> _______________________________________________
> 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