C++ для Микроконтроллеров | Урок 7 часть 1 | Программирование STM32F4 на CMSIS

preview_player
Показать описание
Выбираем язык программирования для дальнейшего обучения программированию микроконтроллеров.

Точнее, я объясняю, почему я выбрал C++.
Мы всё ещё будем использовать только CMSIS, точнее, даже CMSIS использовать почти не будем.

Возможно, Тематика расширится и будет не только STM32F4, но ещё и STM32F1.
Рекомендации по теме
Комментарии
Автор

С ЯЗЫКА БУКВАЛЬНО СНЯЛ. Я сам некоторое время назад пытался бороться с фреймворком Arduino и писать свой, но там проблема с самим avr-gcc. В итоге решил перейти полностью на STM. Если ты читаешь комменты, то ответь, пожалуйста, есть ли нормальные фреймворки для STM по типу как ты рассмотрел в видео? Очень хочется верить, что такие варианты есть.
P.s. Очень классное видео, спасибо, подписался

fnhm_
Автор

Thanks! But, where is the next lesson?

igorying
Автор

а как совместим стиль написания на регистровом уровне в CMSIS и с высокой абстрациеи яоо как С++? нужно конкретные уроки/примеры увидить что и как

liliansirbu
Автор

Ничего непонятно, но очень интересно. Ну наконец-то это не то видео где: "Мы в этом видео не будим углубляется в математическую структуру, а просто расскажем вам...". ЛУКАС!

mega_mak
Автор

Добрый день, вы имеете возможность дать частные уроки ?

everythingabout
Автор

Так, вот эти вот 6 дизов - это люди которые просто не понимают всю необходимость ООП и его реального применения. Автор - крут.

SuperPracion
Автор

продолжение то будет или все зависло из-за сложности С++ ?

vladsol
Автор

Доброго дня, не нашел как написать вам в лс, поэтому тут. Может у вас есть пример кода работы с i2c на чистом cmsis, именно интересует прием отправка пакетов, хотя бы с мало мальскими комментариями

mikitashary
Автор

0:56 для RCC вы выбрали использовать макроопределения, а для всего остального воткнули магичекие числа, хм.. Далее выбрали устаревшую(!!) StdPeriph(?! почему не LL раз пином дрыгать только решили) и далее 1:11 "я хочу чтоб було так" ну заверните в си указатели на функции в структуры и typedef enum обмажтесь и будет так

alankuzhev
Автор

Интересное видео, по c++ для микроконтроллеров очень мало информации, продолжай в том же духе! О какой IDE будет идти речь в следующем видео?

nicolascage
Автор

@don Rumata  Автор, продолжения не будет?! Ясно!
У меня банальный вопрос, кто-нибудь заглядывал в команды поддерживаемые ARM процессором в чипах STM32? То есть те самые ассемблерные команды и работота на уровне регистров. Может кто-то мне объяснит почему бытовых операций нет в Си? И как он (Си компилятор) может догадаться что собственно мы хотим сотворить? Может он сам может понять что мы хотим изменить биты, которые имеют отображение в bit bang адресах, он может? И так далее...
Простой пример, пишем мигалку светодиодом на CMSIS в Keil компилим и смотрим на результат - светодиод как-то странно тускло мерцает, но в алгоритме зашито постепенно изменение частоты туда-сюда. Где результат?! А все просто, по умолчанию при создании проекта Keil нам помог - включил оптимизацию уровень 0. Ахренительная оптимизация! При этом глобально объявленные переменные, не видны в вотч листе - допустим тупо на регистрацию реализовал, но показать мне привязку к нужному регистру Keil не смог?! Гениально! Но почему результата нет в светодиоде?!
Все просто - ставим оптимизацию на default и о чудо, светодиод мигает как надо и переменные появились в watch листе.
Вывод: какие-то "умные" дяди выдумали далёкие галактики и абстракции и теперь тупо давят всех авторитетом и в их коде Херсон поймёшь, что они сами-то хотели сказать - непонятный многостраничный говнокод, но машина на хромой козе реализуют как-то функционал пожирая ресурсы и всех всё устраивает! Вот такие чудеса.
А с микроконтроллерам все их концепции ещё хуже работают, но все верят в их авторитет...
Если бы язык давал возможность описывать концерт задачи и давал выбрать вариант реализации и способ/тип оптимизации на выбор создателя, то можно было бы говорить, что это правильный помощник, который вместо тебя написал корректный код и корректно оптимизировал. Что даже бы простейшая задача помигать светодиодом сводилась бы к простому описанию циклического сигнала с известным источником управляющего переменной/переменных и с указанием выходным пином, среда разработки предложила бы все варианты и критерии выбора, по факту от тупого delay, до прерываний на SysTick, на таймере, на DMA, использовать ли bit bang, а так же все варианты использования ассемблерных команд и регистров R0 -R13 и т.д. Берём SPI и тоже выбираем нужный нам оптимальный вариант реализации и т.д. Также выбираем нужный нам тип мультизадачности от простой до всяких там заумных RTOS, которые только и умеют задрачивать стек (наверно и ещё что-то).
Поэтому я за понимание ассемблерных команд, за возможность выбора из всех возможных вариантов реализаций прописаной мною концепций алгоритма.
А пока... а пока мы имеем простой факт - вся супер производитеность современных МК компенсирует неуклюжесть и неэффективность средств разработки...
Всякие С×× лабают абстракции, ОС предлагают паровоз, а ассемблерщики ковыряются в командах АЛУ - разброд и шатания, и никакой ИИ им всем не поможет
Может начать с начала и признаться себе в правде жизни, до чего докатились?! Может начать с ассемблера и создания прокси языка, который будет в стиле Python прост и нагляден, который позволит генерировать любой желаемый ассемблерный код, который будет позволять увидеть все варианты реализации простых блоков?! А уж потом будем прижумывать всякие галактики и абстракции?!

sledleo
Автор

Здравствуйте! Большое спасибо за ваши видеоуроки! Если данная тема ещё не заброшена, можете сделать видео по настройке ЦАП?

ПавелЛобанов-жи
Автор

писать код в студии это очень удобно, но как насчет отладки?

wastegate
Автор

Кто с кем борется? Фоновая музыка с автором или автор пытается ее

АлексейШевела-щн
Автор

Я бы не стал вязать плюсы к инициализации/работе с железом. В серьезных проектах железо занимает малую часть кода и с этим вполне справляется С без классов.

BalabayUA
Автор

Спасибо за освещение темы C++ для микроконтроллеров, эта тема для меня не розкрыта. Что можете посоветовать почитать или в каком направлении двигаться в изучении C++ для микроконтроллеров?

slavaglow
Автор

в основной своей деятельности веб-программист (в первую очередь backend и php).
Также очень быстро захотелось писать читабельный код. Но вот незадача. Нет нормальных библиотек под C++, даже IDE под него не могут сгенерить проект, приходится извращаться и допиливать ручками... на русском языке нашел только несколько хороших статей. Пару докладов... чую придется параллельно со своими проектами писать и библиотеку компонентов. Вот только это хобби и сколько это займет времени неясно :(

Запискисамоучки
Автор

видео прикольное, но музыка на фоне слишком громкая)

SmD_Amir_
Автор

Никогда не понимал недовольства людей по поводу стандартных библиотек или о Боже хал...
Они используются только при инициализации.
Обработчики у всех давным давно написаны свои, без всяких непонятных проверок внутри..
Видео, как размешать воду в стакане.
Кому реально нужен ООП, и так его давно использует.
Уйти от кейла в стандартную среду разработки... удачи автору, потом на дебаге без 99% функционала заложенного для отладки арм ядер.

alexorlovecky
Автор

Музыка вот ваще не к кстати к обучалкам, еще и так громко

tanixtx