А opencm3 ведь того...
Jun. 15th, 2016 10:20 pmВ попытках установки arm-none-eabi-gcc на ноутбук, которые постоянно заканчивались неудачами, я обнаружил, что бинарники таки откуда-то взялись (видимо, это был stage1 в crossdev, тогда зачем нужен stage2?).
Чтобы попытаться проверить, будет ли компиляться, я взял один из старых проектов и обнаружил, что у меня и opencm3 на ноутбуке нет.
ОК, скачал с гита и обнаружил, что там очень много нововведений (скажем, оно не собирается вообще, т.к. есть поддержка cortex-m7, а в arm-none-eabi-as этой архитектуры нет!).
ОК, подправил Makefile. Скомпилял. Запускаю make install и вижу, что фигвам! Нет такой цели (если что, раньше была).
ОК, копирую ручками. Запускаю make в своем проектике и вижу ошибки: кое-какие функции и глобальные переменные не определены. По-диагонали смотрю примеры и вижу: API довольно-таки сильно переломаны. Нежданчик, да. Обычно когда такое делают,автору отрывают руки, то называют как минимум по-новому (скажем, поломали gtk2, получили gtk3 — зато понятно, что этой дрянью пользоваться нельзя; аналогично с культями — когда из qt2 сначала qt3 запилили, а потом вообще в бешеный ужас превратили).
☹ Внес необходимые правки. Все скомпилилось, но бинарник аж на 2кБ больше стал (между 8кБ и 10кБ таки есть заметная разница, и обвинить в этом более свежую версию gcc вряд ли возможно).
☺ К счастью, на компьютере осталась старая версия opencm3, которая собралась, установилась по make install и скомпилировала мой проектик. И бинарник даже немного меньше получился. Конечно, рано еще радоваться: надо проверить, будет ли оно работать, но уже выводы можно сделать.
Выводы: пока использовать старую версию opencm3, но постараться послать далеко и надолго ее авторов. Либо делать что-то свое, либо искать что-то стабильное, где не будут ломать API!
Чтобы попытаться проверить, будет ли компиляться, я взял один из старых проектов и обнаружил, что у меня и opencm3 на ноутбуке нет.
ОК, скачал с гита и обнаружил, что там очень много нововведений (скажем, оно не собирается вообще, т.к. есть поддержка cortex-m7, а в arm-none-eabi-as этой архитектуры нет!).
ОК, подправил Makefile. Скомпилял. Запускаю make install и вижу, что фигвам! Нет такой цели (если что, раньше была).
ОК, копирую ручками. Запускаю make в своем проектике и вижу ошибки: кое-какие функции и глобальные переменные не определены. По-диагонали смотрю примеры и вижу: API довольно-таки сильно переломаны. Нежданчик, да. Обычно когда такое делают,
☹ Внес необходимые правки. Все скомпилилось, но бинарник аж на 2кБ больше стал (между 8кБ и 10кБ таки есть заметная разница, и обвинить в этом более свежую версию gcc вряд ли возможно).
☺ К счастью, на компьютере осталась старая версия opencm3, которая собралась, установилась по make install и скомпилировала мой проектик. И бинарник даже немного меньше получился. Конечно, рано еще радоваться: надо проверить, будет ли оно работать, но уже выводы можно сделать.
Выводы: пока использовать старую версию opencm3, но постараться послать далеко и надолго ее авторов. Либо делать что-то свое, либо искать что-то стабильное, где не будут ломать API!