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