JS имеет определенные ограничения. Там (в JS, не в МК ) не проработаны до такой степени прерывания. Асинхронность имеет как плюсы, так и минусы. Но там где не нужна точность - JS быстр и прост. Как и Lua на ESP-8266. И я не знаю. Даташит ...
В общем заказал и то и другое, на Амперке Искру, у дядюшки Ляо STM32 из сабжа. Буду помаленьку ковырять в свободное время, может что нибудь и получится. Было бы хорошо.
Может, поспешили? У Ляо много всяких железок - не исключено что с означенными МК есть? У меня пять штук Nucleo есть. Купил, когда они только появились оптовую партию по смешной цене. Все лежали... Ждали своего часа.... Дождались
Знаете, смотрю сейчас на сайт Espruino и вижу, что там количество железок сократилось. Раньше была Nucleo 411 - более современная плата. Теперь ее нет. И так, навскидку аньше больше было плат. Интересно, что бы это значило...
Вот пока не попробуешь и не узнаешь. JS конечно сам по себе интересен и на отладочной плате, но хотелось бы ему применение найти такое чтоб вшил в железку и на дно океана ее или в космос. А тут на Дискавери не разбежишься. ) И STM32 сам по себе интересен и достоин изучения на аппаратном уровне и написания для него прошивок на С++, но, блин, вникание в это потребует времени и немало. Там вот одна инициализации ножек чего стоит.
Уверен, что со временем МК сильнее переползут на скриптовые языки. Все таки изучение регистров AVR задача хоть и посильная, но не простая. STM - поболе будет. Но... И теперешний STM32 - не последний МК. Дальше будет еще мощнее, больше, дешевле. Опять регистры? Это нужно отнюдь не всем. Видимо так или иначе JS или что-то другое пробьет себе дорогу.
STM32F103C8T6 не поддерживает программирование ни на JS, ни на mbed (ардуиноподобный фреймворк для ARM). Но в среде Arduino под STM32F1 серию больше всего портировано библиотек. Брал чтоб поиграться с FreeRTOS + Ethernet + ILI9341
Вот и я про то, каждый раз все с начала изучать времени не напасешься. А его и так мало. Хочется распределить задачи, что то на C++, что то на JS. У каждого решения свои плюсы и минусы, надо плюсы сложить путем гибридизации. )
Так что, народ, стоит изучать это чудо техники? С одной стороны необычайная мощность, по сравнению с 8-битными AVR, при то же цене, с другой что с ней делать не понятно? Такую производительность использовать для мигания лампочками совершенно расточительно, она нужна разве что для фото-видео-графики. Но для этого лучше бы использовать высокоуровневый язык, которого она не поддерживает. И вот не совсем понятно как и для чего ее практически использовать.
Для фото-видео графики тоже не подойдет так как мало ОЗУ. Одна фотография занимает несколько мегабайт. STM32 более быстрые чем AVR. Могут пропускать и обрабатывать большие потоки данных, так как имеют DMA. Имеют несколько приоритетов прерываний. Можно использовать вместо AVR-ок если не нужно напряжение 5В (STM32 это 3,3В и ниже). Имеют гораздо больше интерфейсов чем AVR. Это микроконтроллеры следующего поколения. Но программировать и отлаживать программу для STM32 лучше в IAR или Keil. Для конфигурации портов, таймеров, частот, прерываний лучше использовать Cube.
Каждый ответит на этот вопрос по разному. Кто-то изучает потому, что AVR недостаточно производителен, нет необходимых ресурсов, из-за различных ОС реального времени или просто ради удовольствия и чего-то нового. Сам познакомился с ним из-за любопытства. Потом STM32 полюбился, но увы для меня он остался не востребованным, очень редко появляются задачи достойные ему, почти все можно сделать на AVR. Если надумаете работать с данным контролерам на С++, лучший подход, в работе с STM32 на С++, описал Radius. Впрочем описаний предостаточно, в том числе и на русском, а в официальной документации можно утонуть. Сам микропроцессор не очень сложный, но требует времени. Можно использовать JS, mbed или Arduino IDE, только надо внимательно смотреть список поддерживаемых микроконтроллеров. Выбирайте, то, что подходит (поддержки необходимых библиотек, отладки и т.д.) или что ближе душе. Можно пока отложить знакомство с STM32, тем более. Решать Вам.
Вот именно. Пока что у меня не было задач с которыми AVR не справился бы. Ну или несколько связанных AVR. Изучать на будущее разве что потихоньку, да и в плане саморазвития и забавы. За советы спасибо!
Если Вы хотите изучить сам STM32 и работать с ним на C++, то я бы рекомендовал остановиться лишь на STM32F4Discovery. Отбросив другие варианты, чтобы не тратить время и деньги. Почему именно STM32F4Discovery. 1. Огромное количество обучающих материалов по данной отладочной плате и о микропроцессоре STM32F407. Начиная с видео обзора документации, кончая пошаговым руководствам работы с библиотеками CMSIS (тут поверхностно, работа с регистрами), StdPeriph (C++) с огромным кол-вом примеров, HAL (C++). А так же примеры работы с Keil μVision и STM32CubeMX. Вот они Keil, CMSIS, StdPeriph Сам по ним учился. HAL Пока не разбирался, но Sappise себя зарекомендовал, только с лучшей стороны. И другие, так же моя старая подборка - http://forum.amperka.ru/threads/Полезные-ссылки-для-stm32f4-на-русском.3665/ и т.д. 2. Большое кол-во библиотек под микропроцессор STM32F407. 3. Готовая плата, которую просто подключил к компьютеру, установил драйвера и получил реальную пошаговую отладку. 4. Большинство входов толерантны к 5 вольтам. Она позволит, не потерять оптимизма в изучении. Если будете изучать работу с STM32 на JS, надо смотреть поддерживается ли процессор, хотя у Iska JS очень похожий камень STM32F405RG, но все же. Средой mbed не поддерживается, с Arduino Ide не знаю.
Чем дальше тем больше теряюсь. Какую среду лучше выбрать для работы? Например Keli и IAR на слуху, а про HAL впервые слышу. Легко ли после д=Дискавери перепрыгнуть на другой МК из серии STM32? На ту же плату из сабжа, именно она интересует меня в первую очередь подкупая своей более чем доступной ценой.
Немного поизучав тему со средами разработки и программировании этих МК на С++ еще больше захотел найти для них поддержку чего то более аппаратно независимого. Настройка портов чего только стоит, даже с шаблонами! А таймеры настраивать вообще неделю. Пока что не могу позволить себе выделить столько свободного времени, к сожалению. А хотелок то всего две: 1. дешевая плата для внедрения "в железе" (например сабж устраивает более чем), 2. высокоуровневая среда разработки, которая не даст завязнуть в портах и прочих таймерах, а позволит сосредоточится на собственно рабочем коде. Пока что не вижу путей для реализации этих хотелок. ( ПС: попутно посмотрел в сторону xmega, что то тоже не увидел желаемого.
К mbed, кстати, вроде бы можно таки эту плату прикрутить. Вот тут рассказано как и дана ссылка на библиотеку. Еще написано, что она совместима вот с этой. Может быть это и есть то направление куда стоит копать?