Что касается самого простого блокирующего вызова, насколько мне известно байты в уарт пишутся по событию USART_SR_TXE . Это означает, что приемный буфер пуст и данные ушли в сдвиговый регистр USART.USART_SR_TC событие, когда байт покинул сдвиговый регистр.
Согласен, возможно 11 лет необходимо в средней статистике, но мне, например, последние два года школы запомнились тупой зубрежкой к ЕГЭ с минимумом новых материалов. Социальная жизнь была веселая, мне повезло, но учеба скучная и нудная, потому что мне она достаточно легко давалась. В универе было тоже круто, как его сократить не знаю, разве что, как то набирать предметы индивидуально, потому что как не крути, все универские знания юзать не будешь уж точно. И если бы я сократил общий "стаж" своего образования года на 2, то я был бы не против.
Хех, недавно вылез из своего Сишного подвала посмотреть на С++17 в эмбеде и мне в целом понравилось. Сразу столько вкусняшек из коробки, да еще и код часто бывает компактнее.
Последнее, что я встретил это тест по Си на 40 вопросов, среди которых был а-ля, расставьте в порядке приоритета операторы: &, |, ==, &&, + и тд. На мой вопрос какую конкретно операцию они подразумевают под &, сказали что я должен сам знать.
В целом табличка на 360 значений выйдет на 1440 байт, если через градус нужна точность. У stm32f0 RAMы не так много, но в целом во flash можно положить с ней не все так плохо, там вроде от 32 КБ.
Watch dog на мой взгляд нужен точно, чтобы гарантированно ребутнуться в стабильное состояние. Дальше могут быть варианты - крутиться дальше, что может быть приемлемо но не всегда. У stm есть варик посмотреть причину ресета, если ресет был по watch dog, то можно показать ошибку, установить необходимые выводы в безопасное состояние и перейти в контролируемое зависание.
Забавно отвечать на коммент спустя 3 года. Был коммерческий проект, работал на архитектуре cortex-m3, пришёл ковид, чипы пропали, запас стал подходить к концу, схватили первое, что выпало в продажу и точно покрывало хардварную часть - cortex-m4. Портируем проект. Сейчас вообще хз будут ли чипы, а если будут то какие, предполагаю, что ещё один порт не за горами.
На эмбеддера это вообщепервый вопрос даже для джунов. Мне кажется, когда на С++ стандартный вопрос спрашивают: три основные понятния ООП, то в эмбеде три основных ключевых слова: volatile, static, register/extern и совсем для тех кто угарает: restrict.
Еще, как пример, часто их использую при реализации конечных автоматов. Чем по свичам прыгать, проще массив с указателями на функции сделать( на мой вкус).
Может пытаются в волну попасть. У нас все девайсы в конторе были спроектированы на STM32 F0/F1/F3 серии, F0 худо бедно еще можно отыскать в наличии, F1 я спортировал на F0. C F3 вообще засада. На складах по нулям, сроки поставки раньше писали 58 недель, сейчас вообще не пишут. Адекватной замены пока не могу найти.
Может RP отжать немножко ниши пытается пока дефицит? Авось, кто и перелезет если уж совсем прижмет.
Конкретно могу сказать про STM. Если какой то коммерческий проект, то можно сделать запрос к ним и они поделятся PID/VID. Я запрашивал, мне прислали ответ:
We STMicroelectronics, hereby agree that:
"**** Ltd." company can use the original PID: 0x**** and VID: 0x**** pending to be licensed by USB-IF of "**** Ltd. ***" and solely for the purpose of “**** Ltd. *** using STM32F303VC silicon USB device microcontrollers” This license is revocable and nontransferable and no other rights are granted except those expressly stated here.
На самом деле интересно, нафиг тащить разрабов именно в Москву. У нас вон куча контракторов работает на США/Европу из России. Чего бы им отдел R&D не организовать в регионе? Или это для банковской сферы принципиальный вопрос?
Что касается самого простого блокирующего вызова, насколько мне известно байты в уарт пишутся по событию
USART_SR_TXE
. Это означает, что приемный буфер пуст и данные ушли в сдвиговый регистр USART.USART_SR_TC
событие, когда байт покинул сдвиговый регистр.Решил проблему с добавлением коммита в сборку, правда в cmake, но я думаю в make тоже можно.
Берем последний тэг.
Берем количество коммитов от последнего тэга.
Юзаем эти переменные в файле, который подтягиваем к проекту
посмотрел, регистры доступны, даже в сдк есть какие никакие обертки над регистрами. В регистрах START генерить можно
Ну не обязательно колхозить. Насколько помню можно спуститься до регистров и написать драйвер на CMSIS, там можно сколько угодно стартов сделать
Может там с PLL что-то? USB вроде требует 48 МГц, и если для 96 делитель простой - 2, то для 108 такой делитель не прокатит
Для плюсов можно -fno-exceptions -fno-rtti иначе прилинкует подефолту. В тесте они не нужны. вроде
Согласен, возможно 11 лет необходимо в средней статистике, но мне, например, последние два года школы запомнились тупой зубрежкой к ЕГЭ с минимумом новых материалов. Социальная жизнь была веселая, мне повезло, но учеба скучная и нудная, потому что мне она достаточно легко давалась. В универе было тоже круто, как его сократить не знаю, разве что, как то набирать предметы индивидуально, потому что как не крути, все универские знания юзать не будешь уж точно. И если бы я сократил общий "стаж" своего образования года на 2, то я был бы не против.
Хех, недавно вылез из своего Сишного подвала посмотреть на С++17 в эмбеде и мне в целом понравилось. Сразу столько вкусняшек из коробки, да еще и код часто бывает компактнее.
Ну вообще & ещё адрес умеет брать и приоритет у этой операции другой =)
Последнее, что я встретил это тест по Си на 40 вопросов, среди которых был а-ля, расставьте в порядке приоритета операторы: &, |, ==, &&, + и тд. На мой вопрос какую конкретно операцию они подразумевают под &, сказали что я должен сам знать.
В целом табличка на 360 значений выйдет на 1440 байт, если через градус нужна точность. У stm32f0 RAMы не так много, но в целом во flash можно положить с ней не все так плохо, там вроде от 32 КБ.
Watch dog на мой взгляд нужен точно, чтобы гарантированно ребутнуться в стабильное состояние. Дальше могут быть варианты - крутиться дальше, что может быть приемлемо но не всегда. У stm есть варик посмотреть причину ресета, если ресет был по watch dog, то можно показать ошибку, установить необходимые выводы в безопасное состояние и перейти в контролируемое зависание.
Не используйте stdint. только int, long, long long и так далее.
Забавно отвечать на коммент спустя 3 года. Был коммерческий проект, работал на архитектуре cortex-m3, пришёл ковид, чипы пропали, запас стал подходить к концу, схватили первое, что выпало в продажу и точно покрывало хардварную часть - cortex-m4. Портируем проект. Сейчас вообще хз будут ли чипы, а если будут то какие, предполагаю, что ещё один порт не за горами.
На эмбеддера это вообщепервый вопрос даже для джунов. Мне кажется, когда на С++ стандартный вопрос спрашивают: три основные понятния ООП, то в эмбеде три основных ключевых слова: volatile, static, register/extern и совсем для тех кто угарает: restrict.
Еще, как пример, часто их использую при реализации конечных автоматов. Чем по свичам прыгать, проще массив с указателями на функции сделать( на мой вкус).
Может пытаются в волну попасть. У нас все девайсы в конторе были спроектированы на STM32 F0/F1/F3 серии, F0 худо бедно еще можно отыскать в наличии, F1 я спортировал на F0. C F3 вообще засада. На складах по нулям, сроки поставки раньше писали 58 недель, сейчас вообще не пишут. Адекватной замены пока не могу найти.
Может RP отжать немножко ниши пытается пока дефицит? Авось, кто и перелезет если уж совсем прижмет.
*Здесь можно вставить шутки про ламповый сервер*