J'ai des difficultés à lier mon projet STM32 avec CMake. La commande de liaison qui est générée est:Liaison du projet C/C++ STM32 avec arm-none-eabi-gcc, newlib et cmake
/Users/jeremy/gcc-arm-none-eabi-6-2017-q2-update/bin/arm-none-eabi-g++ -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fdata-sections -ffunction-sections -g -Og -gdwarf-2 -MMD -MP -std=c++11 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -specs=nano.specs -T/Users/jeremy/stm32l432kc_freertos_template/STM32L432KCUx_FLASH.ld -Wl,-Map=target.map,--cref -Wl,--gc-sections
< ... lots of .o files here ...>
-o stm32l432kc_freertos -lc -lm -lnosys
Malheureusement, je reçois deux ensembles d'erreurs. La première est:
arm-none-eabi/bin/ld: warning: cannot find entry symbol arch_paths_first; defaulting to 0000000008000190
qui indique qu'il n'y a pas de symbole d'entrée, mais dans le fichier LD la première ligne de code est: ENTRY(Reset_Handler)
. Le symbole Reset_Handler
est défini dans un fichier lié startup_stm32l432xx.s
.
La deuxième série d'erreurs concernent la stdlib:
/Users/jeremy/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/libg_nano.a(lib_a-signalr.o): In function `_kill_r':
signalr.c:(.text._kill_r+0xe): undefined reference to `_kill'
/Users/jeremy/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/lib/thumb/v7e-m/fpv4-sp/hard/libg_nano.a(lib_a-signalr.o): In function `_getpid_r':
signalr.c:(.text._getpid_r+0x0): undefined reference to `_getpid'
qui sont censés être résolus en liant -lnosys
, mais l'éditeur de liens semble ignorer que. Essentiellement, l'éditeur de liens semble ignorer certaines des directives du fichier LD et ignorer certains des indicateurs que j'ai transmis. Je réalise que c'est probablement quelque chose que je fais mal, mais je ne vois pas ce que c'est.
Si j'ajoute -specs=nosys.specs
, les deux dernières erreurs disparaissent, mais cela ne devrait pas être nécessaire? Quelqu'un peut-il m'aider s'il vous plaît à comprendre ce qui ne va pas ici?