Pull to refresh

Comments 25

Читаю, и в очередной раз убеждаюсь, что правильно поступил, переехав на платформу Ардуино. Забыл STM32 как страшный сон, с его отсутствием примеров и библиотек, сложной конфигурацией IDE, и остальным буллшитом (таким, как невозможность в один клик переключиться на другую платформу / модель ЦП и получить исправный бинарник под этот другой ЦП).

Пишу это не для того, чтобы поругать STM32 (отличное устройство с плохой экосистемой), а чтобы побудить людей посмотреть на альтернативы, с которыми жизнь намного проще. Есть Arduino Zero и Arduino Due на ARM-Cortex M3, и есть отличный для своих задач Ардуино-совместимый ESP32 (и его предшественник ESP8266).
А есть Stm32Duino, превращяющий STM32 в Ардуино!
Да, без косяков не обошлось и не все работает как ожидаеш. Но кодить становится на порядок удобнее — это факт (Я лично Visual Micro + Visual Studio использую)
Не хочется спорить, но Вам не кажется, что это разные категории устройств? Если нужно помигать светодиодом, то это проще сделать на ардуино, с нуля конечно, есть готовый пример. Если нужно развитую функциональность, например VoIP, то ардуино, ну скажем так, не совсем годится.

По поводу плохой экосистемы. Опять не согласен. Готовых примеров на ардуино больше, но это маленькие примеры. На stm32, во-первых есть много готовых примеров, а во-вторых они гораздо лучше масштабируются и комбинируются, поскольку ресурсов у устройства больше! По поводу сложности вхождения, ну так да нужно уметь программировать. Но например, мы упрощаем использование готовых примеров из библиотеки stm32cube, как написано в недавней статье.
В том-то и дело, что я хочу программировать, а под STM32 60% времени нужно конфигурировать.

Примеры Ардуино не маленькие, они есть под любую встроенную периферию и множество внешней периферии, вплоть до готовых библиотек, которых тоже очень много. Бери и строй из кирпичиков нужную функциональность.

А насчёт разного класса устройств — нет, мне так не очень кажется, потому что я говорю не об AVR, а о ARM-устройствах на Ардуино. А тот же ESP32 — это вообще два ядра на частоте 160 МГц, 512 КБ SRAM, и 4 МБайт флэш-памяти на самой дешёвой отладочной плате за 7 баксов.
Елинственное, что — в среде Ардуино не предусмотрена полноценная пошаговая отладка. Но я и не предлагаю делать готовые коробочные устройства для серийного производства на Ардуино, а вот для домашних и несерийных самоделок это очень хороший вариант. Просто потому, что очень много сервисного кода уже написано, и он действительно работает. Можно сразу садиться и писать свою уникальную функциональность.
Но я и не предлагаю делать готовые коробочные устройства для серийного производства на Ардуино, а вот для домашних и несерийных самоделок это очень хороший вариант.

Так я же об этом и говорю, разные классы устройств!
Окей, отладочная плата Ардуино на SAM3X8E и голые чипы STM32 в ленте по 1000 штук — разные классы. Чипы STM32 и чипы SAM3X8E — одного класса, но это уже не совсем Ардуино (хотя всё равно очень близко).
Извините, а при чем тут сравнение микросхем?

Ардуино, очень интересная инициатива. Она позволила вовлечь непрограммистов в использование микроконтроллеров. Это как бейсик — язык для домохозяек, но ведь он являлся очень важным шагом в развитии IT-индустрии, и на нем много чего можно было быстро сделать, и сделано кстати.

с его отсутствием примеров и библиотек, сложной конфигурацией IDE, и остальным буллшитом (таким, как невозможность в один клик переключиться на другую платформу / модель ЦП и получить исправный бинарник под этот другой ЦП).

Примеры и библиотеки есть, в большом количестве. Просто их нужно уметь применять. Но просторы интернета позволяют прочитать об этом в том числе и на русском.

Переключиться на другую модуль ЦП, это вообще о чем? Компилятор + bsp разве не решают эту задачу? Вот, например, как мы решали задачу с разными bsp для разных серий stm32.

А если уж действительно хочется в один клик переключать на stm, то есть coocox, дальнейшее гугление конечно приветсвуется!
при чем тут сравнение микросхем?

Неясна суть вашего возражения.

Примеры и библиотеки есть, в большом количестве.

Видимо, это секретные примеры и библиотеки из даркнета, которые не индексируются Гуглом. Почему-то для STM я не нашёл того, что для Ардуино лежит на Гитхабе в готовом виде, или даже доступно через встроенный репозиторий библиотек. Искал на английском, конечно же.

Вот, например, как мы решали задачу с разными bsp для разных серий stm32

Вот и я о том же, что это отдельная задача, которую нужно решать. Эти идиотские файлы настройки линкера, где указаны смещения разных сегментов, и т. п. Почему-то в Ардуино всё это спрятано от пользователя — выбираешь платформу одним кликом, перекомпилируешь одним кликом, и всё просто работает. Из коробки.

Ни в коем случае никого ни в чём не переубеждаю и не мешаю кушать кактус, конечно же.

Ардуино-это для детей, для промышленности, авто, нужны хотя бы STM32.

Залить прошивку можно и так: st-flash --reset write build/base/bin/embox/embox.bin 0x8000000
спасибо.
Там есть и способ через telnet, но сейчас навскидку не вспомню команду.
А еще автору вопрос, что за Куб вытягивает make из dropbox-а?
STM32CubeF7 версии 1.5.0. С офф сайта по прямой ссылке не загрузить при сборке, поэтому мы скачали к себе в дропбокс.

Сейчас у ST на сайте версия поновее — 1.9.0. Но пока не было времени затащить.
А зачем его сразу тащить, если он уже, скорее всего, установлен?
И еще вопрос про тестовый проект, насколько он стабилен? Дело в том, что у меня httpd показывает только index.html, а остальные страницы пустые, хотя в исходниках это не так. Да и стартует он, но не работает через раз. Команда ls то показывает список файлов то нет. Компилятор arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 7.2.1 20170904 (release)
У нас многие приложения подтягиваются по зависимостям, некоторые требуют конкрутную версию и (иногда) патчи, поэтому мы не можем считать их предустановленными. Так и в случае с Cube — пока мы работаем только с конкретной протестированной версией 1.5.0 Но в будущем, возможно, постараемся учесть, что Cube может быть предустановлен.
Дело в том, что у меня httpd показывает только index.html, а остальные страницы пустые, хотя в исходниках это не так. Да и стартует он, но не работает через раз. Команда ls то показывает список файлов то нет.

Некоторое время назад проверялось на F4, работало. Возможно, это проблема работы под F7. Плюс в этом примере в бранче я ограничил кол-во потоков до 2ух, что тоже может влиять на работу httpd. Если интересен httpd, то лучше попробовать в мастере темлейт arm/stm32f7cube.
Огромное спасибо за инфу!
К сожалению, мало тестировали и не заметили, что так нестабильно работает!

А можно немного поподробнее, чтобы воспроизвести проблемы.
  • Я правильно понимаю, что тестировалось на stm32f7 ?
  • Какой темплейт использовали для сборки ?
  • Правильно я понимаю, что был взят самый последний Embox (голова мастера) ?

Баги
  • Первая бага, это список файлов. Просто после загрузки набираете ls несколько раз и он то выводит список файлов то нет?
  • Вторая бага. Почему то не отображаются страницы кроме главной?
  • Третья бага. Сервер httpd стартует через раз? Или сама плата?

Тестировалось на STM32F746G-DISCO.
make confload-arm/stm32f7cube
Да. Странно, что команда version выводит инфу о компиляторе, а не о Embox.

Нет, загружаемся, делаем ls — получаем список, ребутаем, ls — пусто, еще ребут, ls -список. Да, если запущен httpd, ls не работает.
Да, переходит, но страница пустая.
Плата стартует всегда, сервис тоже, но вот он то доступен, то нет, хотя плата пингуется нормально.
Спасибо! Будем разбираться!
Еще 1 момент, после пары минут работы сервер http зависает, а еще минут через 10 вся система в целом.
Собрал с примером из прошлого поста (LTDC_Display_1Layer), запускается и даже вместе с httpd и даже стал переходить на about.html, но переход на joke.html перегружает девайс.
Спасибо, очень интересный проект.
Собрали в мастере, добавив лишь LTDC_Display_1Layer, и стало лучше? Хм, интересно.
Да, очень странно.

Точно помню, когда то проверяли что httpd работает, ходит по ссылкам, но после этого могли и конфиг измениться и что нибудь закомитили в коде, уже проверяя не так тщательно!

Спасибо еще раз! Постараемся поправить как можно быстрее!
Возможно httpd просто засыпает. Иногда помогает пинг из-под Embox.
Sign up to leave a comment.