2017-01-20

eddy_em: (Костерок)
2017-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). В итоге деление работает без проблем!

Жаль, что в генте так плохо с разработкой под микроконтроллеры!
eddy_em: (Костерок)
2017-01-20 11:07 am
Entry tags:

htop

Вот с таким выхлопом htop и генту собирать не страшно:
2017.01.20_11:04:38
eddy_em: (Костерок)
2017-01-20 07:40 pm
Entry tags:

Чем-то надо заполнить эту пустоту…

2017.01.20_19:35:09
Генту поставил, перешел на gcc-5.4.0 — пришлось две с половиной сотни пакетов пересобирать! Потом еще повозился с ведром (вроде бы заманчивая опция выгружать неиспользуемые модули была воспринята модулем от nvidia в штыки — пришлось без нее пересобирать, да заодно новомодные фичи gcc отключил, т.к. от них только мусор в stdout шел). xrandr мне, конечно, выставляет мониторы в правильном порядке, но хочется еще и на стадии загрузки "умолчальным" иметь HDMI, а не DVI. Передача grub'у параметров "video=HDMI-0:e video=DVI-D-0:d" не помогла. Неудобно: ctrl+alt+Fx выбрасывают в мелкий правый монитор…
Но пространства-то зато сколько! Хоть на тайловый WM переходи, чтобы вручную окна туда-сюда не тягать.
xrandr|grep " connected "
DVI-D-0 connected primary 1680x1050+2560+0 (normal left inverted right x axis y axis) 473mm x 296mm
HDMI-0 connected 2560x1080+0+0 (normal left inverted right x axis y axis) 673mm x 284mm