Функция __libc_init_array
является частью механизма CodeSourcery 'CS3' для кода запуска, который обеспечивает статическую инициализацию всех программ перед выполнением main
.
Запустите, обеспечив всебиблиотеки найдены.Этого может быть достаточно, чтобы исправить все ваши проблемы.
Один из подходов - использовать arm-none-eabi-g ++, а не напрямую использовать arm-none-eabi-ld, чтобы выполнить связывание, потому что g ++ должен правильно передавать некоторые важные параметры в arm-none-eabi-смертельная дозаВ некоторых случаях это может быть все, что нужно для поиска и компоновки правильных библиотек.
Если вы не знаете, как собирать данные из командной строки, или arm-none-eabi-g ++ - нетДелая все, чтобы устранить недостающие библиотеки, зайдите на веб-сайт LeafLabs, где они показывают, как собрать из командной строки, используя Makefiles http://leaflabs.com/docs/unix-toolchain.html
Они предоставляют бесплатную среду разработки с открытым исходным кодом.для STM32, построенный для Windows, Linux и Mac, который включает работающий набор инструментов на основе gcc для каждой из этих платформ и достаточное количество библиотек для начала работы http://leaflabs.com/docs/maple-ide-install.html
Даже если вы предпочитаете использоватьВаш инструментарий для фактической сборки, возможно, стоит использовать их, с их Makefiles, для проверки работоспособности процесса, который вы используете для сборки вашей программы.
Я не являюсь членом персонала LeafLabs и не имею никаких отношенийкроме компании, которая купила некоторые из их продуктов, и попробуйте ответить на вопросы на их форуме.