eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2017-01-20 12:02 am

Решена проблема деления на STM32F042

В попытке выяснить, кто же виноват, и что с этим делать, я собрал в кучу заголовочные файлы от ST с инициализацией от opencm3 и сделал "безбиблиотечную" среду.
Для проверки деления набросал «мыргалку», которая либо равномерно мигает диодом с периодом 4 секунды (если надета перемычка между землей и PA12), либо морзянит "SOS".
arm-none-eabi-gcc, собираемый кроссдевом в генте на этом примере обломался: как только я снимал перемычку, микроконтроллер уходил в глубокие раздумья.

Гугол подсказал мне, что эта проблема возникала далеко не у меня одного. И решения ее стандартным gcc просто нет! Но есть пропатченные тулчейны. Отсюда я скачал тулчейн, распаковал директорию в /opt и попробовал.
Теперь в директории arm-none-eabi/lib/thumb появились раздельные библиотеки для разных архитектур ARM. Вот эта строчка Makefile
LDLIBS		+= $(shell $(CC) $(CFLAGS) -print-libgcc-file-name)
позволяет слинковаться с правильной библиотекой (v6-m/libgcc.a). В итоге деление работает без проблем!

Жаль, что в генте так плохо с разработкой под микроконтроллеры!

[identity profile] eddy-em.livejournal.com 2017-01-20 07:12 am (UTC)(link)
Надо тоже к своей девборде ноги припаять, и на 030 основные эксперименты проводить. А то, боюсь, пока дойдет до серьезной разработки, я флеш в nucleo выжгу вусмерть! Там не так-то и много циклов перезаписи гарантируется (конечно, это не 100, как у STM8S003 — 100 циклов я за полчаса уничтожу — но и не миллиард...).