Мне не понравилось у ST то, что для инициализации таймера на вход, в структуре нужно было ещё и прописать остальные поля, относящиеся к выходу. Возможно это было в относительно первых версиях и сейчас по другому, но осадочек остался.
Спасибо, вполне реальный пример. Но на мой взгляд, переход между F3 и F7 не такой уж и сложный. Большая часть периферии все же конфигурируется одинаково. у ST только I2C да DMA сильно менялись при выходе новых моделей. GPIO\TIMER\SPI так вообще практически неизменны. (за исключением F1 серии, там все другое). А например переход между F1 и L4+ семействами был бы повеселее как мне кажется.
Клиенту нужен рабочий прибор, а не оптимально написанный код на регистрах.
Ещё и нужен вчера. Но тут как посмотреть, иногда ведь клиент хочет чтоб железка была маленькой и от батарейки работала вечно. Вот тут в оптимизацию топишь по максимуму. И тогда вместо F7 ставишь тот же F3, перечитывая историю одного байти).
Вот представьте себе ситуацию, вы сделали какой то супер пупер прибор, у вас написаны свои драйвера и библиотечки для АЦП, Ethernet, гироскопов, модбасов и прочих МЭК протоколов, модули удаленного обновления ПО через протоколы верхнего уровня и пр и все это ну допустим под STM32F3.
Это могу представить, у меня в работе как раз есть отдаленно похожая вещь. Есть прибор где связка nrf52840 + stm32l4r, а есть где просто nrf52840. В добавок некоторый код переносится с DSP. И особых проблем не испытываю.
драйвера и библиотечки для АЦП, Ethernet, гироскопов, модбасов и прочих МЭК протоколов
при написании этого добра, код должен зависеть только от трех функций ( в основном): прочить по шине, записать по шине, настроить шину для себя. И все. Интерфейс универсальный, реализация под каждый МК своя. Перенос делается одним человек за пару часов. Правда справедливости ради, перед этим на написании драйверов потрачено N-количество времени.
Я пробовал HAL от нордиков, когда подключал внешнюю NAND память. Да приятно и удобно, вызвал инит и забыл: оно работает само, правда на ките и только с 8 МБ памятью. Переход на больший объем оказался сложным, так как в HAL забыли добавить возможность отправки кастомной команды для перехода на 32-битную адресацию по шине. Недели две ушло на то, чтобы понять из какого места это правильно и безопасно сделать. Абстракция над абстракцией и абстракцией погоняет. Три или четыре уровня, с постоянным переименованием методов и переменных для вызова 6 строк записи в регистры. Это разве удобно?!
Такого решения я еще не видел в описаниях ни к STM32 ни к другим МК.
у нордиков nrf52/nrf53 в SDK есть примеры подключения Flash Data Storage - файловой системы, придуманной похоже нордиками (в подробности не вдавался, не было необходимости её использовать). По сути аналог того, что было в статье. Есть сборка мусора, есть равномерный износ и возможность писать "файлы" и если память не изменяет, поверх FDS можно ещё и FatFS поставить без проблем. Объем ограничен свободной флешкой самого МК.
Да примера использования, как Вы описали нет, но в целом возможность такая есть. Особенно если учесть, что рядом ещё на QSPI NAND память повесить можно (аж до 256 мегабайт, больший объем найти в этом корпусе не удалось), то вполне реально из двух примеров собрать то что Вы описали.
ИМХО, не видели в описании скорее всего потому, что гораздо проще рядом прилепить EEPROM или маленькую SPI флешку, чем заниматься кодингом.
Причем это отличный способ разобраться в деталях как все работает.
Поддерживаю. Более того, иногда это единственный способ сделать код ещё и быстрым.
не нужно портировать на другие процы.
если честно, не могу понять, кому вообще в здравом уме придет идея создавать новый проект под новый МК сохраняя при этом функциональность. Отсюда получается что HAL дико избыточен по своему функционалу. Есть у кого-то опыт, где реально был с десяток разных МК и прям нужно было переносить код (практически один к одному) и HAL в этом случае реально помог. Интересно было бы послушать.
а разве для это не нужно, чтобы вакцину внесли в нац.календарь прививок?
Сейчас куда не кинь, везде советы от юристов-вирусологов, что мол "не входит в нац.календарь, следовательно обязывать никто не имеет право. сокращение и увольнение не законно". И даже ссылки дают на законы.
Вертолет будет иметь соосную конструкцию с двумя несущими винтами,
что не укладывается в голове это. Соосная это же когда два винта друг над другом и вращающиеся в противоположные стороны, а тут даже на рисунке показаны обычные 6 винтов.
Для себя пользую Segger Embedded Studio, так как по мимо stm32, использую ещё и nrf52. Лучше иметь более универсальную IDE, чем две под разные МК.
насчет С++14/20: если писать с использованием шаблонов, а с ними код реально компактней получается, то 20 версия стандарта самое то. Стандартные либы не пользую, немцы нормальной поддержки ещё не завезли к себе, а так хочется std::array ...
да и в целом IDE сейчас по сути только редактор кода да организатор дерева проекта. компилятор то любой можно подтянуть, а тут уже начинается интересное. каждый старается выдать свой компилятор как "самый-самый", но это как правило для коммерческого использования (вопрос цены все же стоит остро). а для хобби проектов\обучения по сути хватает и свободных компиляторов. отсюда и вопрос выбора IDE чисто дело вкуса. а что нам надо? адекватную подсветку синтаксиса, автодополнение да темную тему.
Да и так ли плоха родная IDE ?
мне просто не заходит eclipse в любой ипостаси, а коллега использует вполне спокойно его. так что дело вкуса
да почти каждый день, как новости читаешь. то ручку бросит, то пальцем погрозит, а то и в рай без очереди запишет. вырос он ...
А как девайс поймет что таблетку именно выпили, а не выкинули/плюнули после?
Вот тут идея интереснее - цифровая таблетка, которая сообщит уж точно что её съели:
https://blog.nordicsemi.com/getconnected/the-first-digital-pill-is-approved
а так идея не нова, было уже. вот например бокс с пилюлями, напоминающий что пора пить:
https://www.nordicsemi.com/News/2019/08/Fruitech-HiPee-Smart-Pillbox-use-nRF52832-to-sync-with-app-for-setting-medication-schedule
Мне не понравилось у ST то, что для инициализации таймера на вход, в структуре нужно было ещё и прописать остальные поля, относящиеся к выходу. Возможно это было в относительно первых версиях и сейчас по другому, но осадочек остался.
В общем, дело вкуса как говорится)
Спасибо, вполне реальный пример. Но на мой взгляд, переход между F3 и F7 не такой уж и сложный. Большая часть периферии все же конфигурируется одинаково. у ST только I2C да DMA сильно менялись при выходе новых моделей. GPIO\TIMER\SPI так вообще практически неизменны. (за исключением F1 серии, там все другое). А например переход между F1 и L4+ семействами был бы повеселее как мне кажется.
Ещё и нужен вчера. Но тут как посмотреть, иногда ведь клиент хочет чтоб железка была маленькой и от батарейки работала вечно. Вот тут в оптимизацию топишь по максимуму. И тогда вместо F7 ставишь тот же F3, перечитывая историю одного байти).
Это могу представить, у меня в работе как раз есть отдаленно похожая вещь. Есть прибор где связка nrf52840 + stm32l4r, а есть где просто nrf52840. В добавок некоторый код переносится с DSP. И особых проблем не испытываю.
при написании этого добра, код должен зависеть только от трех функций ( в основном): прочить по шине, записать по шине, настроить шину для себя. И все. Интерфейс универсальный, реализация под каждый МК своя. Перенос делается одним человек за пару часов. Правда справедливости ради, перед этим на написании драйверов потрачено N-количество времени.
Я пробовал HAL от нордиков, когда подключал внешнюю NAND память. Да приятно и удобно, вызвал инит и забыл: оно работает само, правда на ките и только с 8 МБ памятью. Переход на больший объем оказался сложным, так как в HAL забыли добавить возможность отправки кастомной команды для перехода на 32-битную адресацию по шине. Недели две ушло на то, чтобы понять из какого места это правильно и безопасно сделать. Абстракция над абстракцией и абстракцией погоняет. Три или четыре уровня, с постоянным переименованием методов и переменных для вызова 6 строк записи в регистры. Это разве удобно?!
у нордиков nrf52/nrf53 в SDK есть примеры подключения Flash Data Storage - файловой системы, придуманной похоже нордиками (в подробности не вдавался, не было необходимости её использовать). По сути аналог того, что было в статье. Есть сборка мусора, есть равномерный износ и возможность писать "файлы" и если память не изменяет, поверх FDS можно ещё и FatFS поставить без проблем. Объем ограничен свободной флешкой самого МК.
Да примера использования, как Вы описали нет, но в целом возможность такая есть. Особенно если учесть, что рядом ещё на QSPI NAND память повесить можно (аж до 256 мегабайт, больший объем найти в этом корпусе не удалось), то вполне реально из двух примеров собрать то что Вы описали.
ИМХО, не видели в описании скорее всего потому, что гораздо проще рядом прилепить EEPROM или маленькую SPI флешку, чем заниматься кодингом.
Что-то не заметил в новости, а реголит то откуда будет?
Вроде с Луны последнее время ничего не привозили (или я пропустил), старые запасы в ход пойдут? Или планируется миссия по забору грунта?
спасибо за развернутый ответ. плюсик поставить пока не могу
Поддерживаю. Более того, иногда это единственный способ сделать код ещё и быстрым.
если честно, не могу понять, кому вообще в здравом уме придет идея создавать новый проект под новый МК сохраняя при этом функциональность. Отсюда получается что HAL дико избыточен по своему функционалу. Есть у кого-то опыт, где реально был с десяток разных МК и прям нужно было переносить код (практически один к одному) и HAL в этом случае реально помог. Интересно было бы послушать.
а разве для это не нужно, чтобы вакцину внесли в нац.календарь прививок?
Сейчас куда не кинь, везде советы от юристов-вирусологов, что мол "не входит в нац.календарь, следовательно обязывать никто не имеет право. сокращение и увольнение не законно". И даже ссылки дают на законы.
а каким алгоритмом сжимают слонов?
что не укладывается в голове это. Соосная это же когда два винта друг над другом и вращающиеся в противоположные стороны, а тут даже на рисунке показаны обычные 6 винтов.
то что мусор вывозят, это понятно) удивило количество
точно, помню что видел новость, но не помню где и когда. все по заветам классики "тут помню, тут не помню"
это ж откуда там столько ? Или это указана максимальная "полезная" нагрузка от МКС к поверхности для данного грузовика?
а что (или кто) мешает новый наработать? цель вроде как мирная, почему бы и нет?
Из того что я использовал у себя:
в С++20 завезли: non-type template parameters of class type
в С++17 завезли:
инициализацию статических членов сразу в шаблоне:
fold expression:
if constexpr:
Для себя пользую Segger Embedded Studio, так как по мимо stm32, использую ещё и nrf52. Лучше иметь более универсальную IDE, чем две под разные МК.
насчет С++14/20: если писать с использованием шаблонов, а с ними код реально компактней получается, то 20 версия стандарта самое то. Стандартные либы не пользую, немцы нормальной поддержки ещё не завезли к себе, а так хочется std::array ...
да и в целом IDE сейчас по сути только редактор кода да организатор дерева проекта. компилятор то любой можно подтянуть, а тут уже начинается интересное. каждый старается выдать свой компилятор как "самый-самый", но это как правило для коммерческого использования (вопрос цены все же стоит остро). а для хобби проектов\обучения по сути хватает и свободных компиляторов. отсюда и вопрос выбора IDE чисто дело вкуса. а что нам надо? адекватную подсветку синтаксиса, автодополнение да темную тему.
мне просто не заходит eclipse в любой ипостаси, а коллега использует вполне спокойно его. так что дело вкуса
<sarcasm> Уточните что можно сделать "украсть" или "отказаться" <\sarcasm>
интересно, а экономия топлива при этом получается или нет?