ESP32 или Вторая часть Марлезонского балета
- Войдите на сайт для отправки комментариев
Сб, 30/04/2022 - 01:56
Суть:
Кто в чём программирует.
(варианты будут попозже, т.к. с нетом траблы....)
Суть:
Кто в чём программирует.
(варианты будут попозже, т.к. с нетом траблы....)
VSCode или PlatdormIO ???
Интересно ТОЛЬКО с RTOS, другие варианты на 80/160/220 тактовке просто бессмысленны.
Я всё ещё на Arduino IDE. Причём под седьмыми форточками.
Я на этой сижу.
Arduino IDE 1.8.19
Программное обеспечение Arduino с открытым исходным кодом (IDE) позволяет легко писать код и загружать его на плату. Это программное обеспечение можно использовать с любой платой Arduino.
Инструкции по установке см. на странице « Начало работы ».
ИСХОДНЫЙ КОД
Активная разработка программного обеспечения Arduino ведется на GitHub . См. инструкции по сборке кода . Архивы исходного кода последней версии доступны здесь . Архивы подписаны PGP, поэтому их можно проверить с помощью этого ключа gpg.
Это сказки для новичков. Среда разработки уровня виндового блокнота - ни автодополнения кода, ни навигации по коду, ни рефракторинга. Писать в ней что-то серьезнее блинка - ну бы его нафиг )))
Это сказки для новичков. Среда разработки уровня виндового блокнота - ни автодополнения кода, ни навигации по коду, ни рефракторинга. Писать в ней что-то серьезнее блинка - ну бы его нафиг )))
Ну ТС начинающий. Если предыдущую ветку читали. Ему нафиг не упали ваши навороты. Ему надо, чтоб работало и быстро научиться. А это -
Arduino IDE 1.8.19
Ну ТС начинающий
Кто бы мог подумать )))
http://arduino.ru/forum/otvlechennye-temy/esp32-eto-luchshee-reshenie-na...
Ну ТС начинающий
Кто бы мог подумать )))
Если такие вопросы, как от начинающего...
Я уже всё перебрал. Мне, удобней всего в Arduino IDE старой кодить. Под мои задачи.
И все три моих компа под форточками, до сих пор на семёрке. У меня даже есть рабочая платформа на 775 сокете. Ну консервативен я по жизни!
А у меня основной комп на AMD FX-6200 )))
А у меня основной комп на AMD FX-6200 )))
А я за синих. Intel.
Лучшее что я собрал. B75 чипсет, проц Xeon E3-1225 V2. Купил проц Б/У на Али, кажется за 1750 рублей на Али 4..5 лет тому назад.
На максимуме, этот сервачный проц, компилирует мой самый сложный код в Arduino IDE за минуту.
1840 строк в коде.
поставь XUBUNTU будет компилировать значительно быстрее
... и кофе варить начнёт!))))
Ардуино это "классно" для поморгать чем-либо, датчики поопрашивать и тд. Любое другое телодвижение вверх неизбежно столкнётся с тем, что нужно как-то разделять время процессора для задач.
Давай промоделируем ситуацию: допустим у тебя десять задач, каким образом ты их "запихаешь" в ардуино???
Для простоты "усваивания" тривиальности задачи, давай поступим по новичковски-ардуиновски...
Начнём:
1 - любимые кнопки и их опрос
2 - любимые светодиоды и их управление оными
3 - какой-никакой дисплей
4... и далее, пусть будут датчики
...9 и 10 - управление некими исполнительными механизмами, например нагревательным элементом.
Вот десять задач, которые должны вызываться в определённое время и с определённой частотой вызовов... Вот как это можно сделать на ардуине???
1.8 TFT SPI 128*160
Для простоты "усваивания" тривиальности задачи, давай поступим по новичковски-ардуиновски...
Начнём:
1 - любимые кнопки и их опрос
2 - любимые светодиоды и их управление оными
3 - какой-никакой дисплей
4... и далее, пусть будут датчики
...9 и 10 - управление некими исполнительными механизмами, например нагревательным элементом.
Вот десять задач, которые должны вызываться в определённое время и с определённой частотой вызовов... Вот как это можно сделать на ардуине???
А что нельзя? Вроде всё именно так и работает и именно на ардуине. Кооперативная многзадачность рулит. А если stm взять то и на вытесняющую можно замахнуться. А на еsp и связь через интернет можно добавить.
Для простоты "усваивания" тривиальности задачи, давай поступим по новичковски-ардуиновски...
Начнём:
1 - любимые кнопки и их опрос
2 - любимые светодиоды и их управление оными
3 - какой-никакой дисплей
4... и далее, пусть будут датчики
...9 и 10 - управление некими исполнительными механизмами, например нагревательным элементом.
Вот десять задач, которые должны вызываться в определённое время и с определённой частотой вызовов... Вот как это можно сделать на ардуине???
Это слишком простой пример. Для этого RTOS не требуется. Простейший диспетчер задач, даже на миллисе, прекрасно справится, лишь бы хватило ресурсов. Реально работающий пример:
11 задач, 5 работают непрерывно, остальные по необходимости. Тут тебе и светодиоды, и дисплей, и датчики, и исполнительные механизмы. Опрос кнопок вызывается непосредственно из loop(), фактически это задача 12. Код влезает в 168 атмегу (правда, на ней не тестировался)))
RTOS нужен, когда требуется организовать многопоточность с разделением задач по приоритету. Если это не нужно, то и ардуина подойдет ))
Это слишком простой пример.
Дык а я изначально написал - "ардуино_новичковский" пример.
11 задач, 5 работают непрерывно, остальные по необходимости.
Ну давай лукавить не будем. Мне твой "пример" напомнил абсолютно любую демо-программу на спектруме. Именно так там делалось большинство кода. Напомню, там 50 раз в секунду вызывалась аппаратное обновление экрана и как раз очень выгодно было производить синхронизацию всего и вся. А это, извините, 1993 год!!!
А твой "диспетчер" мне знаком уже много лет как... Хоть на милсах, хоть на таймерах.
Мне твой "пример" напомнил абсолютно любую демо-программу на спектруме.
Дык, а что нужно-то?
Напомню, там 50 раз в секунду вызывалась аппаратное обновление экрана и как раз очень выгодно было производить синхронизацию всего и вся. А это, извините, 1993 год!!!
При чем здесь обновление экрана? Каждая задача имеет свои тайминги
Можно подумать, что 10 задач можно запихнуть в ESP как-то иначе, чем в AVR.
Количество непрерывно выполняющихся задач равно количеству ядер. Остальной функционал - это компромисс между работающими фрагментами кода. На обоих МК он будет вызывать одинаковые проблемы.
Все отличие только в том, что под ESP можно голову не включать (до какого-то предела) - довериться "черному ящику".
Блин, я в афиге с ваших комментооФФ...
Йоксель_чпоксель, 16 мегагерц или 80-240 мегагерц = чо, нет разницы???
Три!!!, блеать, сцуко, проца, два больших и один махонький = чо, нет разницы опять???
Ну и самый риторический вопрос: зачем "___тупые" люди придумали RTOS, Windows, Linux, а? Сидели бы в DOS и не жужжали )))))))))
Йоксель_чпоксель, 16 мегагерц или 80-240 мегагерц = чо, нет разницы???
Для озвученной выше задачи - нету разницы. Более того, 80-240 МГц тут явный overkill )))
Это реально или прикол какой??? Вы чо, подумали, што я буду есп32 сраные датчики опрашивать и светодиодами моргать???
Мой вопрос был о среде программирования а никак не о моргалах_светодиодных...
Вот и я думаю - Не срастается. Вопрос был про IDE, а спорят о многозадачность ))))
Вот и я думаю - Не срастается. Вопрос был про IDE, а спорят о многозадачность ))))
Он сам вектор спора задал )))
Что касается IDE, то я и на ардуину в VS Code пишу
В абстрактном устройстве абсолютно никакой разницы нет что применять - ATTiny13 или Xeon. 1Mhz или 10GHz. Одно ядро или кластер. Никаких инопланетных технологий с прорывом через черные дыры тут нет. Одно ядро - одна непрерывно выполняющаяся задача.
Windows, Linux и прочие уровни абстракции придумали для облегчения работы с вычислительными ресурсами, потому что у человека соображалка не сильно мощная и херачить всё на ассемблере или в опкодах ему слабо. С многозадачностью эти системы связаны лишь косвенно.
Кстати, в Досе тоже была "многозадачность". Драйвера работали параллельно с пользовательскими задачами. Так что наброс не засчитывается.
Кстати, в Досе тоже была "многозадачность". Драйвера работали параллельно с пользовательскими задачами.
И про himem. И про drivespace. Да дохрена чего в config.sys напхать можно было.
да и не в конфиг, к любому прерыванию свой код прицепить )))
Кстати, в Досе тоже была "многозадачность". Драйвера работали параллельно с пользовательскими задачами. Так что наброс не засчитывается.
Насколько я помню, многозадачность в ДОС ограничивалась единственной программой print, которая могла работать одновременно с одной другой прикладной задачей.
Драйвера же под ДОС, как правило, были нереентерабельными, хотя теоретически могло работать "одновременно" несколько резидентных программ, написанных определенным образом.
Вообще же "многозадачности" ДОС мешало, как правило, именно отсутствие драйверов и необходимость работать напрямую с железом, что исключало доступ к одному и тому же железу со стороны разных программ.
да и не в конфиг, к любому прерыванию свой код прицепить )))
да и не в конфиг, к любому прерыванию свой код прицепить )))
само собой )))
А что такое многозадачность? Ворд и эксель в соседних окнах запустить? Или что? Есть api OS, тупо подпрограммы, те же прерывания в дос, ниче нового и в линукс и в винде.
Все резиденты в DOS были по сценарию:
1) загрузить код в память. (DOS)
2) перехватить прерывания. (подмена векторов в таблице и вызов оригинала после себя)
2) оставить свой код в памяти и завершить свою задачу. (DOS)
Тут многозадачности то и нет. :-( Те же вектора и прерывания.
Функции DOS - int 20h-2Fh, нужно же было семафорить для многозадачности. Если пишется своя RTOS под DOS.
И? Чем современные ос в глобальном смысле отличаются? Все то же самое, в защищённом режиме перехват команд, все пользовательские api приложений проверяются и перехватываются ядром.
Диспетчер, защищенный режим, Где они в DOS?
DOS это Disk Operating System. Диск !!!
Дык никто ж её пытается сравнить, изначально разговор о средах программирования шёл, потом об ос, теперь о многозадачность, я к тому что задачи разные, путей решения задач и видов МК и cpu миллион, архитектур ещё больше, и сравнивать абстрактных коней в вакууме это просто хрень.
Для многих наука это просто хрень.
Цитата.
"Абстракции являются универсальным методом научного познания, они необходимы для формирования понятий, узнавания и классификации объектов исследования на всех уровнях формирования знаний. "
Как помнится, когда существовал DOS, большинство программ было с расширение у файлов .сом И загрузка этих файлов была по абсолютному адресу памяти 0х100. Скорее всего, только по этому и не было тогда многозадачности. И только когда пришли в дос .ехе файлы можно было говорить уже о работе нескольких программ одновременно.
С точки зрения прокладки между креслом и монитором в доcе была удовлетворяющая задачам "многозадачность". Диск на ходу сжимался/разжимался, клавиатура переключалась, всякие сотрясатели и переворачиватели картинок на мониторе работали. Другого и не требовалось.
При программировании ESP никакого SIP-а не нужно по QoS гонять. На коммуникации выделено ядро, второе - на юзера. То, что оно по таймеру дёргает подпрограммки, о реальной многозадачности не свидетельствует. Снаружи все выглядит, как DOS.
Как помнится, когда существовал DOS, большинство программ было с расширение у файлов .сом И загрузка этих файлов была по абсолютному адресу памяти 0х100. Скорее всего, только по этому и не было тогда многозадачности. И только когда пришли в дос .ехе файлы можно было говорить уже о работе нескольких программ одновременно.
Не совсем так.
*.com унаследованы DOS от ОС CP/M-80, имел ограничение в 64к, а *.exe - новый "родной" для DOS формат, позволяющий использовать все 640к.
НО!
*.com, хотя и загружался всегда по смещению 100h, это смещение могло быть в любом сегменте, т.е. считай в любом месте 640к-байтной памяти. Соответственно с точки зрения "многозадачности" (т.е. загрузить резидент) оба формата позволяли это сделать. Причем, *.com был даже удобнее.
PS. И еще раз: реальная многозадачность (не многопоточность, а именно многозадачность) имела в DOS единственный пример - работа задачи print на фоне любой другой задачи, запущенной после нее.
To andriano
*.com, хотя и загружался всегда по смещению 100h, это смещение могло быть в любом сегменте, т.е. считай в любом месте 640к-байтной памяти. Соответственно с точки зрения "многозадачности" (т.е. загрузить резидент) оба формата позволяли это сделать. Причем, *.com был даже удобнее.
Вы что то путаете, .сом файл априори не мог располагаться с любого адреса памяти, потому как условные и безусловные переходы в программе были определены жестко. В том было и отличие, что .ехе загружаясь с определенного адреса стартуя, сначала пересчитывает эти переходы относительно расположения в адресном пространстве, относительно своего расположения (адреса смещения от 100h), а уж потом начинал выполняться.
Я прошу прощения, что в чужой огород (и может быть даже не особо по теме), но мне только спросить ))))
Заказал ESP8266 NodeMcu v3 ( https://aliexpress.ru/item/4000160133215.html ), а только потом подумал - а аддоны для ардуино ide есть вообще для этих плат? ))))
https://esp8266.ru/arduino-ide-esp8266/
Спасибо!
ЗЫ: поправьте ссылку как в моем посте.
Спасибо!
ЗЫ: поправьте ссылку как в моем посте.
Не понял как, но посты, которые кто-то процитировал, уже не редактируются ))