STM32 или сколько их упало в эту бездну..
Итак, настало время. Просто и доходчиво об STM32. Об этом не хотят говорить, это замалчивают, но это должно быть на первых полосах. Ибо лучше один раз опубликовать, чем несколько раз объяснить. Поначалу я думал, что это единичный случай, потом думал… да ничего не думал потом. Теперь призадумался.
Каждое поколение создает свою среду обитание, моду, стиль, язык, поведение, выбирают что круто, что нет. Так и с процессорами. Некоторое историческое время назад в институтах преподавали 580ВМ80, в продаже был супер популярный Z80, западнее мелькали 6800, немного на пьедестале постоял 1810ВМ86 и ныне здравствующая 8051. Однако маленький шаг для человека и большой шаг до человечества произошел когда возникли очереди за 80286 и соответственно 68000. Они отличались помимо пышных форм вроде 16-ти разрядов против 8-ми, всего навсего наличием одного регистра расширенного режима, предшественника виртуализации. Ну помните, многозадачности, не надо ждать пока дискетка доформатируется…Дальше Вы и сами наверное знаете, так что пропущу подробности, уже светает.
В наше время разнообразие процессоров на душу населения зашкаливает и если переломить пополам зубную щетку, увидите знакомую многоножку и стеклотекстолит. Множество процессоров ушли в прошлое, хоть и доступны, но свято место пустым не бывает, и я так думаю, место 8080 занял STM32.
Конечно их нельзя сравнивать по параметрам, но в программе обучения студентов место КР580ВМ80 занял STM32. Сел на его табуретку. Как любой проект с начинается с «Hello, world», так и путь в embedded программирование начинается с STM32. Сообщество хорошо постаралось и представило мнение об STM32 как о процессоре на все случаи жизни. Правда, скромно умолчали о тех моментах, чего в нем нет. А нет в нем как сейчас принято это называть модуля MMU, то есть того самого регистра, до которого тот самый один шаг. И в связи с этим стек TCP/IP которому тоже чего-то не хватает.
С чего часто начинают новое электронное устройство? Правильно, теперь с STM32. Есть конечно еще множество других, не менее достойных, но особо остановлюсь на STM32. А точнее на одной очень распространенной ошибке при выборе его.
Принято преподавать студентам, что STM32 это супер. В общем-то и где-то как-то в сравнении больше плюсов чем минусов. На нем реализовано очень много достойных, успешных, реально работающих проектов. В основном в промавтоматике, но не только. И действительно, серьезных контроллеров и изделий промышленного класса.
Вы сделали проект, запустили СМС-сервер, некоторое время пели себе дифирамбы, даже поставили многозадачную FreeRTOS, где эмулируется тот самый регистр которого нет. И настало время сказать миру «Hello, World» , то есть выйти в интернет. И здесь ошибочка вышла, вроде-бы да, но нет.
Причина очень простая, поднять ppp соединение через модем как ни старайся не получается, по вышеупомянутым отличиям этого подвида от полноприводных собратьев. А без ppp дальше никак. А так же другие необходимые полезности, вроде Wi-Fi AP. Список приличный, можно продолжить. Можно много чего придумывать и обходить эти ограничения. И это даже работает. Но это все-таки не то, совсем не то. А часто деньги вложены, и выбрасывать это так жалко… И так можно в эту бездну падать бесконечно.
Конечно все не так печально, уже написан стек lwip, конечно есть мегапопулярная FreeRTOS, и вроде как бы и ничего, но аппаратно STM32, я имею ввиду ядра Cortex M0-M4 далеко не серия A. А стоят столько-же. Даже есть гибрид перца с редиской STM32MP1 тоже сначала призадумаешься, бывает и такое если не бросить курить всякие самокрутки.
Единственный правильный выход из сложившейся ситуации это перейти на другой процессор, где нормально грузится линукс, то есть купить raspberry, orange,banana pi. Их так много и стоят они столько же. И там как в Греции, все есть. А STM32 можно и не выбрасывать, пригодится для чего-нибудь без правильной многозадачности и полноценного TCP/IP. Или как сувенир, на долгую память.
PS. У меня нет задачи подробно объяснять, подтверждать, давать ссылки. Эта статья на тот случай, если опять придется кому-то объяснять, а ведь придется, ведь чудес не бывает. Лучше один раз прочитать, чем много раз услышать.