Pull to refresh

Comments 11

Однако там вам придется зарегистрироваться на сайте, придумать логин и пароль.

Вот конкретно не понял

https://developer.arm.com/downloads/-/gnu-rm

позвояет качнуть все без паролей, но оно написано deprecated и ссылка на более новые

https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads

которые тоже доступны к скачке в 100 вариантах

Огромное спасибо за Ваши статьи!

Скриншот утилиты для настройки прескелеров и других опций частоты уж очень CubeMX напоминает ;)
И вопрос в голосовании "Как вы чаще организовываете программу?" я бы переделал на:

  • Предпочел бы по возможности RTOS.

  • Только NoRTOS.

Т.к. есть много старых МК, где нет порта FreeRTOS. Реализовать RTOS (шедулер, таски, мьютексы) там, впринципе, можно. Но если заниматься МК, как я, в качесестве хобби, то руки опускаются и все распихивается по прерываниям и таймерам, а хочется RTOS'а и комфорта :)

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

RTOS нужен только если есть какая-то вычислительно емкая функция (расшифровать 200kByte файл или вычислить обратную матрицу 100x100) и надо чтобы LED не переставал мигать, когда эта функция исполняется.

Если просто нужна многозадачность, то лучше взять вот этот кооперативный планировщик
https://habr.com/ru/articles/757000/

Возможно так. У меня пока не было задач, сложности, описанной вами. А для тестов своих программ я сначала использовал Ардуино с RTOS, где по таскам раскидывал отдельный функционал и это мне очень понравилось и показалось очень удобным. Затем уже переносил этот функционал на более старые МК.
Приведенный Вами планировщик, к сожалению "не встанет", допустим, на старый PIC, где 64 байта ОЗУ и 1 килослово (2кБ) программного флеша, т.к. два bool и два uint64_t там уже никуда не поместятся.

На старый PIC и RTOS не соберётся.
Для PIC тогда на Assembler лучше писать.

да тут критерии в общем то одинаковы - заработает или нет, ну и сколько будет стоить в деньгах. Для поливки цветочка по часам достаточно ардуино, причем в случае ESP32 она включает в себя RTOS но под капотом и хобийный проект пишется "в комфорте", и кстати, мощные проекты. А вот когда для хобби нужно чтоб за 3 копейки, на минимальном ресурсе а тем более есть риск физической поломки (движком крутить например) и хочется самому все контролировать вот тогда RTOS будет скорее затруднять

Микроконтроллеры у меня - это хобби вцелом. А вот под конкретный проц написать меня уже попросили. Так бы вообще все на Ардуино сделал. На Ардуино с RTOS никаких затруднений не произошло и не пришлось работать с таймерами и прерываниями, а работает всё четко. Отсюда и моё мнение об удобстве.

Больших и платных проектов я не пишу. Все делаю по просьбе друзей, по их ТЗ и чисто для собственного фана@бесплатно. Кто-то марки собирает, а я вот старинные МК мучаю.

Огромное спасибо за Ваши статьи!

На здоровье. Рад, что это комут-то помогло.

Скриншот утилиты для настройки прескелеров и других опций частоты уж очень CubeMX напоминает ;)

У Artery ещё есть утилита, чтобы настройки для CAN просчитывать.
@arty_morris
Artery AT32F403A. Работа с CAN https://habr.com/ru/articles/727760/

На старый PIC и RTOS не соберётся.

так я об этом выше и писал.

Для PIC тогда на Assembler лучше писать.

Тут на двое, как говорится. С одной стороны Microchip выпустила компилятор xc8, позволяющий даже для столь убогих процов писать на нормальном Си. В этом случае, перенос программы с Ардуино становится более легким.

С другой стороны при работе с прерываниями на Си дико не хватает условных переходов а-ля JZ или JNZ и т.п. Приходится дополнительные флаги вводить и всячески думать над логикой программы :(

зы что-то пошло не так с ответом на коммент... написАлось в основную ветку.

У Artery микроконтроллеров, как и у STM аппаратные подсистемы (I2S, UART, CAN и т п) выведены только на очень ограниченный набор пинов. Если схемотехники ошибутся в топологии, то вы не сможете пользоваться I2S UART или I2S. В этом плане Artery сильно проигрывают микроконтроллерам от Nordic или TI где, например, аппаратный I2S_BCLK можно назначить вообще на любой пин.

Sign up to leave a comment.

Articles