Lösung: undefined symbol __main_stack_size__ in ChibiOS 3.x

English Deutsch

Problem:

Beim Versuch, ChibiOS 3.x zu kompilieren, erhältst du während der Linking-Phase eine dieser Fehlermeldungen:

undefined_stack_symbols.txt
undefined symbol `__main_stack_size__' referenced in expression
undefined symbol `__process_stack_size__' referenced in expression

Lösung

Im Gegensatz zu ChibiOS 2.x enthalten die ChibiOS 3.x-Linker-Skripte nicht die Stack-Größen-Definitionen. Wenn du ein benutzerdefiniertes Build-System verwendest, musst du diese Linker-Flags hinzufügen, z.B. durch Setzen der LDFLAGS-Umgebungsvariablen:

set_ldflags.sh
-Wl,--defsym=__process_stack_size__=0x400 -Wl,--defsym=__main_stack_size__=0x400

Der Wert 0x400 (1024) ist der Standard-Makefile-Wert in ChibiOS zum Zeitpunkt der Erstellung dieses Textes. Du kannst auch benutzerdefinierte geeignete Werte verwenden, falls gewünscht. Es ist wahrscheinlich, dass dies der Grund ist, warum der extern-definierte Linker-Variablen-basierte Ansatz für ChibiOS 3.x überhaupt gewählt wurde.


Check out similar posts by category: C/C++, Embedded