STM32 startup kod

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Středa Srpen 14 08:51:53 CEST 2019


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...



Další informace o konferenci Hw-list