Основы программирования микроконтроллеров. Лекция в МИРЭА

  Рет қаралды 199,687

Samsung Innovation Campus

Samsung Innovation Campus

6 жыл бұрын

Олег Артамонов - генеральный директор компании Unwired Devices («Беспроводные устройства»).
Уровень: продвинутый (для понимания необходимо знание языка программирования С)
Темы лекции:
1) Чем отличаются микрокомпьютер, микроконтроллер и микропроцессор и в каких случаях их уместно использовать
2) История и нынешнее состояние 8-, 16- и 32-битных микроконтроллеров
3) Основы программирования для семейства STM32
4) Многозадачность в системах реального времени на примере RIOT OS
Лекция состоялась 9 декабря 2017 года в МИРЭА, для слушателей учебного курса IoT Академия Samsung. За лекцией следовал мастер-класс, на котором студентам самим предстояло выполнить сложные задания на микроконтроллерах STM32 ARM Cortex M-3.

Пікірлер: 303
@merzott
@merzott 4 жыл бұрын
лекция отличная! но скоро чтобы помигать светодиодом нужно будет развернуть ОС, установить питон, подключить интернет, отправить обработку нейронки на суперкомпьютер, заплатить криптой и посмотреть рекламу.
@user-gp4do2jg1e
@user-gp4do2jg1e 2 жыл бұрын
Вот мне как человеку далекому от программирования интересно с чего вдруг такой вывод? Насколько я знаю, запрограммировать контроллер можно и с помощью обычного блокнота, да придется поработать самому написать программаторы, спаять шнурки. Но я не думаю что супер компуктер захочет копаться в каждом отдельно неподключенным деревянным компом
@johnrom8787
@johnrom8787 2 жыл бұрын
Прерывание по таймеру { PORTA ^=~ 0x01; } ;
@justdoitjustdoit5752
@justdoitjustdoit5752 Жыл бұрын
З
@justdoitjustdoit5752
@justdoitjustdoit5752 Жыл бұрын
З
@user-nc1zf7fi4e
@user-nc1zf7fi4e Жыл бұрын
@@user-gp4do2jg1e Насколько я знаю, запрограммировать контроллер с помощью обычного блокнота НЕЛЬЗЯ. Хотя... могу ошибаться... 🙂
@user-soboleva
@user-soboleva 6 жыл бұрын
Спасибо , отличная лекция!
@igordzhenkov5860
@igordzhenkov5860 5 жыл бұрын
Красава мужик. Очень понятно для новичков.
@John.Doe.2025
@John.Doe.2025 4 жыл бұрын
Однозначно! Даже гуру, который писал библиотеку под эту ось, не смог записать пять строк кода HELLO WORLD, которые компилить пришлось с 15 минут. Афуеть не встать. Где же те времена когда компиляция заканчивалась ещё до того как успеешь Ф9 отжать.
@stigfromsouth
@stigfromsouth 5 жыл бұрын
спасибо за лекцию !!!
@_kipovets_85
@_kipovets_85 2 жыл бұрын
Спасибо большое!
@EvgeniyYatsenko
@EvgeniyYatsenko 4 жыл бұрын
отличная лекция!
@user-rq6rx5cp7i
@user-rq6rx5cp7i 2 жыл бұрын
Отличный материал с отличной подачей. Жаль, что наткнулся на видео только сейчас :)
@engineer39notebook
@engineer39notebook 4 жыл бұрын
спасибо, доходчиво
@valerya4532
@valerya4532 4 жыл бұрын
Спасибо за работу, как будто побывал на курсах повышения :))
@user-pc9br8yt6j
@user-pc9br8yt6j 4 жыл бұрын
ПРИЯТНО было бы с вами поработать, IF you in Москва. Считаю хорошим началом. Но для изучения надо спустится c RTOS, HAL,SPL мимо вообще, запоминаем что есть CMSIS, и в какой нибудь среде( uvision, cubeide, eclipse) вставляем ASM(*.S) и изучаем все регистры ARMv7(8) + peripherals(stm,ti...). Компилируем, смотрим debug: Disasm, common reg, FPU; как компилируется код . Дальше поднимаемся выше CMSIS+C. Уже потом HAL и если нужно RTOS.
@Lersu73
@Lersu73 4 жыл бұрын
Спасибо. Ждал такой материал. Подача человеческая и профессиональная.
@volodymyr.melnyk
@volodymyr.melnyk 3 жыл бұрын
на одном дыхании, спасибо!
@user-mk9sq5tp1x
@user-mk9sq5tp1x 5 жыл бұрын
Несколько лет работал на 8 битных AVR и PIC, когда сел за STM32, то сразу же начал писать на CMSIS. И ничего сложного в этом не увидел и всем советую. Понятно же, что чем ниже уровень абстракции, тем гибче управление, настройка и больше возможностей для оптимизации, за счет того, что программист ПОНИМАЕТ, что происходит в микроконтроллере. Так же работал с ОС FreeRTOS и сделал вывод для себя, ОС я использую для быстрого написание какой-либо не замысловатой программы, для серьезных же проектов, где требуется ТОЧНОСТЬ, только CMSIS, только прямое обращение к регистрам с полным пониманием происходящего внутри. Первая часть выступления прекрасна, спасибо автору.
@TheSteamate
@TheSteamate 5 жыл бұрын
Как изучить его, если нет опыта?
@wlasov
@wlasov 5 жыл бұрын
Молодец, возьми с полки пирожок. Я тоже когда управляю машиной, двигаю пальцами поршни и колесо поворачиваю рукой 👍😊
@denisyegorov5109
@denisyegorov5109 5 жыл бұрын
А как вот начать с CMSIS? Есть где то уроки готовые, так сказать для совсем тупых.
@oleg_fedyushkin
@oleg_fedyushkin 5 жыл бұрын
Я так понимаю, что вы довольно давно занимаетесь микроконтролерами.Не подскажите,по своему ощущению, как дела в этой области и какие перспективы?
@wlasov
@wlasov 5 жыл бұрын
на ассемблере надо сразу писать под арм, с++ для лохов и школьников!
@vlsext
@vlsext 3 жыл бұрын
я новичёк, с 4-5 месяцами по-вечерам ардуины и возможно, моё мнение не особо что-то отражает. Однако, что я ожидал - это увидеть чуть более продвинутое использование, параллельное использование разных ресурсов и спящий режим. Что я увидел: та же фигня, что и в ардуино. Т.е. микроконтроллер - дофига умеет, но всё сводится к (не)доверию к высокоуровневым функциям/библиотекам. На ардуино столкнулся с блокирующими функциями SPI/I2C. Причём а) сразу из доков не понятно было, что они блокирующие, б) в подавляющем случае всех самопальных и официальных библиотек - так. А МК, оказывается, умеет передавать параллельно. И нашёл я это только в глубине официальных примеров. Как проблема параллельности и реального времени решается на ардуино - на таймерах, на прерываниях и написанием неких switch-case кусков или зачатков операционки без плюшек. Почему? Потому что мало места, мало памяти. Запустить RTOS на ардуино можно, но только ради самой RTOS, ей там ну очень тесно. По STM32 с RTOS пока смотрю и вижу, что в общих чертах - это как: был у тебя ардуино с самопальными switch-case кусками, а теперь - STM32 с RTOS с блэкджеками-шлюхами(зачёркнуто) с потоками, сообщениями, буферами, стеками, которая работает как тот самый ардуино на switch-case кусках, потому что жрёт достаточно много как памяти, так и времени. Т.е., блокирующая функция отправки куска данных через медленный интерфейс (кстати, я увидел в видео коммент, что она блокирующая) - решается потоками с выделением стеков с запасом на вдруг-прерывания-разного-приоритета-вложенности-должно-хватить-на-все. Вместо переписывания той функции по хорошему. Упрощение пользователю-программисту? Три строчки кода? Да ладно! Это точно то, что нужно в микроконтроллерах, а не в десктопах и прочих серверах? Если это мед-оборудование или иное критическое, то пользователь должен будет влезть в потроха той RTOS, тех библиотек и прошманать каждую на предмет, что там творится. Для домашнего самодельного 3d принтера - сойдёт, конечно. Подумаешь, иногда, соплю в начале повесит, которую можно потом напильником спилить и фиг выловишь, почему, но если поставить паузу в 5с после инициализации, то вроде бы пропадает. "Почему 5? Ну, эмпирически. При 4х изредка ещё бывает сопля. Почему не 10? Ну, ждать 10 не хочется." ))) Быстрая разработка? Да ладно! Пять раз по 2 минуты ждать, когда сборка закончится ошибкой и покажет в чём эта дурацкая опечатка/отсутствие include? Это точно надо показывать новичкам? Может, лучше показать, как IDE все такие мелкие ошибки сразу подчёркивает и их исправление идёт мимоходом само-собой? ...я тут подумал, может просто вырос из моргать ледом или опрашивать датчик раз в 100 миллисекунд... Или использовать МК с тонной интерфейсов ради одного-двух и бездействия остальных. С одной стороны - глаза разбегаются и текут слюни, когда видишь его аппаратные возможности, с другой - смотришь, как всё в RTOS в 10-20 раз будет тормозить, пока потоки переключаются, и как-то странно становится - для использования RTOS нужно рассчитывать, что у тебя не будет заявленных 200МГц, дели на 20. И памяти в 192Кб не будет, нужно всё тоже поделить на стеки для потоков. И флеша будет тоже прилично меньше, но там походу график забитости по мере подключения модулей нелинейный и зависит от нужности модуля (частоты использования) vs написания "самопальной фигни для дёрганья один раз вот этого интерфейса в самом начале с константами". Может я не прав. Читал теорию про RTOS и STM32, пытаясь определиться, плата F4R Discovery куплена, лежит пока. Но ощущения такие.
@user-yx9vb5pp5o
@user-yx9vb5pp5o Ай бұрын
А можете рассказать как вы вообще начинали?У меня ардуинка год лежит ,решил взять за неё,но хочу не просто что-то делать на ней ,а структурировано подойти к изучению микроэлектроники (начиная от её проектирования ,устройства ,и прочего ).Что можете посоветовать ?С чего начать ,какие книжки можно почитать?
@fedjron
@fedjron 6 сағат бұрын
@@user-yx9vb5pp5o Я тоже тыкался в разные двери и пришёл к выводу что надо с нуля. сначала изучи дискретные м.схемы это счётчики шифраторы, регистры, триггеры итд. при условии знания полупроводников. После Ассемблер для контролеров ну а дальше можно выходить на высокий уровень С++, Ардуино, итд. В своё время мне помогла книга понять суть механизма работы контролеров это "Корабельников Е.А. Самоучитель по программированию".
@101picofarad
@101picofarad 5 жыл бұрын
А оно на esp32 работает? Можно где-то подъем сервера вайфай через riot на эспрессиве посмотреть?
@andreyterekhov8530
@andreyterekhov8530 Жыл бұрын
Супер!
@user-jv3fs6ki9e
@user-jv3fs6ki9e 4 жыл бұрын
Про MSP430 не согласен. Активно используются в почти современной медицинской технике, Нейрософт возьмите например.
@nskvasov
@nskvasov 5 жыл бұрын
А ничего, что на USB-флешке, которую "Texas Instruments подарила" (кстати, почему не "ти", а так уважительно, в отличие от STMicroelectronics? или последняя ничего не дарила просто?) тоже стоит периферийный USB-микроконтроллер?
@user-ub7qu9pl9g
@user-ub7qu9pl9g 6 жыл бұрын
Хороший доклад. Жаль , что не отметили , что переход от PIC18 (8 бит) к PIC32 (32 бит) делается очень легко. Код написанный для 8 бит микроконтроллера переносится на 32 бит микроконтроллер с минимальными усилиями. А если выбираем в настройках конфигурации , например таймера, совместимость с 8 бит МК - то вообще код с минимальными изменениями.
@user-ei2kp7zm9o
@user-ei2kp7zm9o 5 жыл бұрын
Сергей Якорев эт гораздо легче чем этот мегагеморойный геморой гемороище??? Или чуть чуть легче???
@user-zy9fk7ew7y
@user-zy9fk7ew7y 4 жыл бұрын
Благодарю, очень интересно
@user-yt2qy6th2j
@user-yt2qy6th2j 5 жыл бұрын
Очень хорошая лекция,но не для начинающих.Эта лекция подойдёт для тех,кто раньше программировал какие-нибудь микроконтроллеры,например avr. Если не программировали,то материал будет выглядеть непонятным и сложным. Скоро планирую изучать stm32 и эти лекции очень помогают
@Ma_X64
@Ma_X64 3 жыл бұрын
найди мужика в кепке на ютубе. Канал еще как-то по-дурацки называется типа narod32 или narod.ru. У него самый плотный контент по примерам на разных контроллерах и, к тому же, он разбирает всякие ошибки линковщика и компилятора, возникающие тупо из-за неправильных настроек среды или проблем с путями, чего многие другие "обучальщики" не делают.
@user-gx7yd6jd9g
@user-gx7yd6jd9g 2 жыл бұрын
@@Ma_X64 Называется narodstream, а "мужик в кепке" это Владимир. Он просто монстр, мегалодон в программировании и слово мужик к нему не особо подходит. Скорее так можно назвать нынешнего лектора. Вылез на трибуну с понтом и тут же в трёх соснах запутался.
@user-gm7er9yr8i
@user-gm7er9yr8i 2 жыл бұрын
Подскажите при прошивке контроллера другим программатором фьюзы нужно менять или нет. Спасибо
@HaterCheaters
@HaterCheaters 9 ай бұрын
8:30 залезь может. можно CheatEngine найти нужное значение в оперативной памяти и поменять на нужное. например 16141 поменять на 15414
@patriotRND
@patriotRND 4 жыл бұрын
Всё очень просто, когда профи компилирует с 10 раза хело ворлд! Отличная реклама!
@user-tz8cu7pe9d
@user-tz8cu7pe9d 4 жыл бұрын
Тоже поржал с такого подхода)))
@alexboiko8822
@alexboiko8822 4 жыл бұрын
Он мог подготовиться и сделать с первого раза, но вместо этого наглядно показал новичкам как компилятор подсказывает что не так. И вы, возможно, ещё не знаете что такое сложно. А если кого отпугнёт, то ему же лучше, что раньше. Лично для меня докладчик подал материал очень эффективно.
@alexgorohov
@alexgorohov 3 жыл бұрын
@@alexboiko8822 явно не знают, что такое сложно
@deniskhakimov
@deniskhakimov 11 ай бұрын
Поначалу казалось, что так и было задумано, т.е. цель была в том, чтобы продемонстрировать аудитории лёгкость, с которой решаются типовые ошибки в процессе разработки. Однако после склейки понял, что он, как это принято у нас в РФ, тупо забил на подготовку и понадеялся на авось. В итоге лектор потратил 18 минут (если верить часам на его рабочем столе) на решение проблем даже в столь примитивной задаче, используя при этом язык высокого уровня! 😮
@user-xy4sv9cl6v
@user-xy4sv9cl6v 6 ай бұрын
Вы не заметили, что конец лекции уже в другой аудитории. Т.е. лектор так и не смог скомпилировать "простенькую" задачку и доделывал работу на дому. И это при том, что он сам писал эти таймеры...
@user-ud6sw5cp4w
@user-ud6sw5cp4w 2 жыл бұрын
Про форматирование дискеты не совсем понял, но вспомнил, что при форматировании ОС повисала наглухо) многозадачность.
@lobanovds
@lobanovds 6 жыл бұрын
Отличный доклад, замотивировал взяться за тестовую платку
@samsunginnovationcampusrussia
@samsunginnovationcampusrussia 6 жыл бұрын
Дмитрий, спасибо за отзыв! У нас на канале ещё целый мини-курс лекций Олега Артамонова по основам современного программирования микроконтроллеров. Посмотрите тоже, там более подробно и доходчиво.
@marsm6619
@marsm6619 5 жыл бұрын
Заказал платку с ARM
@dudanov
@dudanov 4 жыл бұрын
1:38:40 "...пишет высокоуровневый код, алгоритм мигания светодиода..." ))))) верно, но улыбнуло)))
@jo1s838
@jo1s838 Жыл бұрын
Спасибо за лекцию, у меня в голове вертится очень, наверно, тупой, но до конца не понятный для меня вопрос. В контроллере с завода всегда идёт какая-то прошивка (микрокод, который заливает производитель) или не обязательно и это может быть просто железка с транзисторами и т д и кода там (с завода) никакого не будет?
@kukkuyokka65
@kukkuyokka65 5 жыл бұрын
Отличная, мегаёмкая вводная лекция - без обескураживающих провалов и переходов от дубины к ракетам. Зашла замечательно (но это, конечно, индивидуально и ложится на контекст слушателя - совсем новичкам в этой теме будет не предельно комфортно). Очень болел в конце за Олега в его борьбе со светодиодом) но это пустяки по сравнению с тем, как и сколько он подал материала за предыдущий час. Это, конечно, базис, но так последовательно, логично (и хронологично) вряд ли где можно такой материал встретить.
@Perega
@Perega 11 ай бұрын
Полностью поддерживаю, как новичок в теме программирования голых микроконтроллеров. Особенно некомфортно было конечно на моменте конечной компиляции кода. Хоть я и понимал для чего на самом деле нужны все те лишнии обороты в коде, но от размера программы мягко говоря прифегел.
@cyberzx
@cyberzx 4 жыл бұрын
make clean не обязательно выполнять на каждой сборке
@FelixSamulevich
@FelixSamulevich 9 ай бұрын
там сказочки в комплекте с контролером случайно не было? )
@ArtemKAD1
@ArtemKAD1 2 жыл бұрын
Лектор с АВР-ами знаком был явно только в начале нулевых. С тех пор их тактирование и настраивается и можно перенастроить на ходу и можно частично переключить источники. По-моему мой самописный диспетчер задач реализованный через управляемый суперцикл гораздо проще использовать чем эту ОС и места он занимает в 20+ раз меньше. Конечно там нет заранее заготовленного 1мс таймера и процедуру взводящую его флаг(обычно в прерывании) надо написать, но исходя из того, что 1мс для некоторых задач это слишком короткое время и лучше-бы камень вместо тупых отсчетов спал, это скорее плюс чем минус. Тем более там кода на 10 строк. В общем, прослушав лекцию общий вывод - вместо изучения точно работающего CMSIS предлагается изучить еще и(CMSIS все равно придется изучить) как-то работающую ОС.
@user-lt1dx6eb7n
@user-lt1dx6eb7n 10 ай бұрын
С этой операционной системой получается что отправлять показания счётчика может компьютер который 30 лет назад занимался инженерный графикой.
@user-zz3jz8fz5k
@user-zz3jz8fz5k 2 жыл бұрын
Крутая лекция! Всё конкретно и понятно!👍👍👍👍
@volodymyrkorsovetskyi922
@volodymyrkorsovetskyi922 5 жыл бұрын
У меня раз код не влазил в Пик . Пошерстил , переработал , отказался от стандартных библиотек (даже * и / свои написал) и после этого смог всунуть еще 3 функции и 4 байта свободные остались )))
@fj8017
@fj8017 5 жыл бұрын
* и / -это ведь указатели и деление? Как Вы создали собственные указатели и деление? Вы использовали ассемблерные вставки?
@volodymyrkorsovetskyi922
@volodymyrkorsovetskyi922 5 жыл бұрын
@@fj8017 Умнеженние и деленние . Без ассамблера . Просто сделал отдельные функции , получилось вместо a*b UMNOGENIE(a,b) , a/b DELENIE(a,b). Написание стало грамоское , но зато место сильно экономится .
@galaktozawr
@galaktozawr 3 жыл бұрын
@@volodymyrkorsovetskyi922 Подробнее?
@andreygrachev4532
@andreygrachev4532 Жыл бұрын
Очень интересно! В той части, что сейчас актуально, а что уже давно не актуально или стремится к этому. Прошло уже пять лет. Хотелось бы узнать: "А что изменилось?".
@JohnJTraston
@JohnJTraston 3 ай бұрын
STM32
@JohnJTraston
@JohnJTraston 3 ай бұрын
и ESP32
@TheNamelessOne12357
@TheNamelessOne12357 5 жыл бұрын
Осилил. Я, конечно, всё это знаю, и делал коммерческие устройства на STM32 с stdperiph, но, для начинающих лекция больше похожа на "Рисуем два кружочка - Рисуем остальную сову". Даже создание проекта с нуля толком не рассмотрено. Да и, наверное, лучше с FreeRTOS разбираться, чем с каким-то непопулярной ОС.
@user-ld2xi8sn6l
@user-ld2xi8sn6l 4 жыл бұрын
Привет а че ты имел ввиду под словом "коммерческие устройства"
@user-oi5st1iy1m
@user-oi5st1iy1m 4 жыл бұрын
Єто лекция перед студентами если из потока в 100чел, там поняли хотябы 5 заинтересовались 1-2, то лекция достигла успеха. А учебное видео этот фильм не обещал.
@Ma_X64
@Ma_X64 3 жыл бұрын
freeRTOS всё-таки, на мой взгляд, тяжеловата. Если только под крупные камни её ставить. А так есть с одной стороны варианты покомпакнтнее (TNeo RTOS), а с другой -- псевдоРТОС-подход, когда делается кооперативная многозадачность через, например, глобальный таймер.
@user-nc1zf7fi4e
@user-nc1zf7fi4e Жыл бұрын
@@user-ld2xi8sn6l "коммерческие устройства" - когда бабла отслюнявили. Так понятно? 🙂
@GexPlayerMD
@GexPlayerMD 3 жыл бұрын
4:08 Ну это видимо те, кто не застал например zx-spectrum, с 48К оперативки и 16К ПЗУ, и то, часть оперативы уходит на видеопамять. А так то 1 КиБ это целых 1024 байта!
@biluser
@biluser 3 жыл бұрын
Я собирал микро 80 дисплейную часть для своих задач это было 1984год Как-то включал работает рф2живая!!!
@user-fv5rk1fc9o
@user-fv5rk1fc9o Жыл бұрын
@@biluser у меня тоже остались пару ленинградок синклеров, но лет 30 не проверял.))) Так там 2 ПЗУ они что по 8К всего? Забыл уже все.))
@ardoss6166
@ardoss6166 3 жыл бұрын
35:14 втф?
@lobanovds
@lobanovds 6 жыл бұрын
у кого не будет запускаться компилятор и будет ругаться на отсутствие gcc-arm-none-eabi здесь geektimes.com/company/samsung/blog/299187/ у него в текстовом виде инструкция по установке линукса на винду, и где скачать и как настроить данный компилятор
@LLlblKAPHO
@LLlblKAPHO 5 жыл бұрын
где наше любимое мышекликательное программирование? Плату можно определять автоматически, ссылаемые библиотеки подгружать и искать тоже автоматически. При установке компилятора ставить все что нужно автоматически.)
@user-qh9vj6lt5c
@user-qh9vj6lt5c 4 жыл бұрын
Олег! У Вас получилась неплохая лекция. Но! Вам нужно устранить ряд неправомерных заявлений ! Причём... ТЕХНИЧЕСКОЙ НАПРАВЛЕННОСТИ! Существенные неточности.
@kerselkerosin
@kerselkerosin 5 жыл бұрын
Все так хорошо начиналось, а потом оказалось, что просто помигать светодиодом на микроконтроллере с ОС в разы сложнее чем даже на ПЛИС. В чем радость - непонятно.
@samsunginnovationcampusrussia
@samsunginnovationcampusrussia 5 жыл бұрын
Илья, посмотрите вот это видео - здесь за 10 минут переходят от абсолютного нуля до мигания светодиодом. STM32 + RIOT OS. kzfaq.info/get/bejne/mLuPZc541qfPdas.html
@kerselkerosin
@kerselkerosin 5 жыл бұрын
спасибо, гляну.
@user-uc6sy6wi2j
@user-uc6sy6wi2j 2 жыл бұрын
Кстати на плис мигать светодиодом гораздо проще, чем даже на восьмибитке. Только вот плис не для этого, плис для математики. И если в последней не шельме-бельме , то за плис можно и не браться.
@sixaxisization
@sixaxisization 2 жыл бұрын
Ну на 6ой раз собирется.... А.... мыж не подключили.....
@user-vp6gp7ef5k
@user-vp6gp7ef5k 4 жыл бұрын
Это лекция не для студентов 2-3 курсов, а для профи и для продвинутых гиков-самоучек. Для студентов: - 1. Что нужно для запуска МК (питание, тактирование, цепь сброса, как залить прошивку). - 2. Что нужно для работы МК (понятие регистра, работа с регистрами и памятью). - 3. Зачем писать и читать по определенным адресам (работа с периферией и выводами МК). - 4. Как использовать таймеры, что такое DMA, использование прерываний. - 5. Стандартные интерфейсы (UART, SPI, I2C). - 6. Стандартные промышленные интерфейсы (RS-485, RS-422). - 7. Понятие протокола обмена. - 8. Границы возможностей МК, области применения, сравнение с ПЛИС, области применения ПЛИС. - 9. Концепции программирования МК. (главный цикл, конечные автоматы, менеджер задач, кодогенераторы и пр.). - 10. Ethernet и МК (UDP, TCP/IP). - 11. Что можно подключить через МК (обзор датчиков и модулей). - 12. ЦОС и МК (АЦП, фильтры, фурье, обзор сигнальных процессоров). - 13. Надежность (резервирование, запас при выборе элементов, ВСК - встроенная система контроля системы, WDT - сторожевой таймер, контроль допустимых состояний в ПО, плюсы и минусы использования тактового генератора вместо резонатора) - 14. Поддержка. (как обновить ПО на удаленных объектах) - 15. ЭМС. Вопрос очень неожиданный для тех кто не был в курсе.
@saidolimkhongafurov6150
@saidolimkhongafurov6150 4 жыл бұрын
😭😭😭😭😭😭😭
@Blendershick
@Blendershick 3 жыл бұрын
Спасибо, не могли бы посоветовать литературу пожалуйста.
@user-fv5rk1fc9o
@user-fv5rk1fc9o Жыл бұрын
Абадеть...
@abdulqadirahmedli610
@abdulqadirahmedli610 Жыл бұрын
Как запрограммировать st72f324.
@xsht2940
@xsht2940 3 жыл бұрын
А мне казалось, что основное отличие микроконтроллеров от микропроцессоров в архитектуре. В микроконтроллерах - Гарвардская (включая ARM SMT32), а в микропроцессорах - фон Неймановская
@Ma_X64
@Ma_X64 3 жыл бұрын
На самом деле -- нет. Ничто не мешает использовать для проца гарвардскую, а для мцу -- фон-неймановскую. Основное отличие -- как раз в наличии периферийных блоков на борту. Вспомните, что на материнской плате взаимодействие процессора с внешним миром обеспечивает чипсет. У процессора даже системы тактирования и сброса своей нет -- ставится внешняя микросхема.
@ArtemKAD1
@ArtemKAD1 2 жыл бұрын
Не, это не существенно. Разница в том, что у контроллера периферия находится на камне, а у процессора она находиться на плате или даже в слотах. По сути то что называется микропроцессором в микроконтроллере уже есть внутри и называется ядром.
@JohnJTraston
@JohnJTraston 3 ай бұрын
Нет. Это вообще ни при чем. Процессоры есть и такие и другие. Основрое что микроконтроллер это как "полноценный компьютер", только в миниатюре.
@ivanixmasters129
@ivanixmasters129 4 жыл бұрын
Спасибо, очень интересно, ни чего не понял. Пошел дальше программировать в VBA :-)
@hyppopotamm
@hyppopotamm 6 ай бұрын
Спасибо за лекцию! Как будто в советское детство вернулся :) Когда читал книги по RT-11 и мечтал о роботах :)
@Integral2128
@Integral2128 4 жыл бұрын
повезло до девальвации валют в 2013г купил 1000шт Атмег16А в ткфп44 корпусе по дешовке, до сих пор на продажу устройства на них клепаю, а так да, сейчас на мегах делать на мелкий опт устроства дорого...
@galaktozawr
@galaktozawr 3 жыл бұрын
А что клепаете если не секрет?
@SaLaGaDH
@SaLaGaDH 3 жыл бұрын
Старанно что под видео с данной тематикой столько бьі дла в комментах... Спасибо за лекцию и демонстрацию типичной работьі любого программиста )
@user-nc1zf7fi4e
@user-nc1zf7fi4e Жыл бұрын
Кричи "ура", если смысл не интересует. 🙂
@andrewandrosow4797
@andrewandrosow4797 3 жыл бұрын
Добрый день! SOLID в лекции упоминается? Без этого жизнь разработчика ПО станет невыносимой....
@user-pw7mw5bp9f
@user-pw7mw5bp9f 3 жыл бұрын
"Извините за технические неполадки". Обнадеживающее начало лекции.
@bad-coder
@bad-coder 3 жыл бұрын
И заметьте, потом приходит барышня и все чинит умному специалисту
@vladrootgmailcom
@vladrootgmailcom 3 жыл бұрын
Оператор - профессионал от бога просто.
@user-kr2ff3xr3h
@user-kr2ff3xr3h 2 жыл бұрын
датчик слежения на микроконтроллере
@SWS-LINK
@SWS-LINK 4 жыл бұрын
интересно, но очучние , что продвигают определённый тип МК. За долю малую, спонсорскую. Тех. характеристики у них очень сильно отличаются, а уж говорить , что stm 32, это отстой, ну прям не комильфо вообще ---))
@user-cl6bu1po7x
@user-cl6bu1po7x 3 жыл бұрын
Урааа! Нашёл канал под который можно спать😜
@andrejgorlin8284
@andrejgorlin8284 5 жыл бұрын
Если вы будете заниматься АСУТП вы столкнетесь с программируемыми контроллерами. А вот медицинские применения, вот там Cortex-R должен быть крайне востребован.
@vintbolt2118
@vintbolt2118 3 жыл бұрын
Attiny13 - лучший микроконтроллер! Нахрена STM32, если нужно помигать светодиодом? Я, например, сделал на Attiny13 электронное зажигание с ФУОЗ. Очень полезная вещь.
@deniskhakimov
@deniskhakimov 11 ай бұрын
С STM32 ещё не сталкивался, но рискну предположить, что при всех своих очевидных преимуществах, потребление тока у него будет значительно выше, чем у типичной AVR-ки. Т.е. для создания небольших и не самых сложных устройств, работающих преимущественно на элементах питания, AVR будет всё таки более интересным решением.
@handlewithoutsuitcase
@handlewithoutsuitcase 11 ай бұрын
А куда делись esp32?
@dmitryefimkin6550
@dmitryefimkin6550 7 ай бұрын
Круто. Только не понятно зачем.
@pavelshkarupsky6318
@pavelshkarupsky6318 4 жыл бұрын
А кто-нибудь пробовал повторить? Я лично попробовал собрать код , как минимум в последнем коммите RIOT нет модуля rtctimers-millis.h
@andreyv6169
@andreyv6169 3 жыл бұрын
Так он же об этом и сказал что он туда не входит, это внутренняя разработка, вы ее нигде не скачаете.
@SomeRandomPerson163
@SomeRandomPerson163 4 жыл бұрын
1:00:08 - Решение: продакт менеджер со своей почтой и хотелками в воскресенье должен пойти в лес. Ну или в магазин за контроллерами и на завод за платами.
@rustammukhamatyanov1497
@rustammukhamatyanov1497 2 жыл бұрын
даже нечто скучное можно рассказать интересно, браво
@vitaly007bond
@vitaly007bond 5 жыл бұрын
Класс . Только зачем надо новичку ОС ? что это за программист будет? если он не знает основ кто как и так далие, datasheet... не понятно .
@user-xy4sv9cl6v
@user-xy4sv9cl6v 6 ай бұрын
Шикарная лекция о том, как освоить программирование ОС, но ни слова о том, как написать серьезную программу и при этом не использовать дорогие МК. Вы конечно сильно сократили время на написание программы "Blink", но ни слова не сказали о том, сколько времени нужно потратить, чтобы изучить документацию на вашу ОС (а она вообще есть? Сколько там страниц текста?). И еще: вы сказали, что таких ОС есть очень много, так какую из них учить, чтобы найти себе работу? Очень жалею, что потратил час своего времени ни о чем!
@aleksandrdemidov6058
@aleksandrdemidov6058 4 жыл бұрын
а я думал только я так программы на Си пишу :-) ...
@Al_Gen
@Al_Gen 2 жыл бұрын
а где видео с Евгением Зуевым?
@lionlinux
@lionlinux 5 жыл бұрын
а ESP?
@mvxburov
@mvxburov 3 жыл бұрын
фу этот позорный луа, нет уж, спасибо)
@sighupcmd
@sighupcmd 4 жыл бұрын
Всё, пошел закупать Discovery. Жизнь уже не будет прежней :)
@nimikh2
@nimikh2 3 жыл бұрын
Советую автору познакомиться с linux. Там компилятор работает в разы быстрее, нежели из под виртуализации windows (qemu небось)
@galaktozawr
@galaktozawr 3 жыл бұрын
Что за компилятор? tinycc?))
@user-nq1qx7qt5i
@user-nq1qx7qt5i 3 жыл бұрын
Интересная лекция, правильная. Но, где же мультиварки изготовленные нами, а не китайскими товарищами?
@floks700
@floks700 2 жыл бұрын
а там всё без этой высокомерной зауми этого очкарика. )) пишут то наши, без всяких ОС. на чистом си или асме. я многих таких знаю.
@AlexeyFyodorov80
@AlexeyFyodorov80 4 жыл бұрын
Странная лекция. Её бы по нормальному разбить на две независимые части, а то вторая половина после первой выглядит не пришей кобыле хвост. И лектор как-то на удивление хреново подготовился к своей практической части. Отрепетировал бы хоть разочек на досуге, чтобы так коряво не экспромтить на аудиторию.
@user-tn7nq1sb3d
@user-tn7nq1sb3d 2 жыл бұрын
Супер! Лектор от Бога!
@redtex
@redtex 4 жыл бұрын
Остаётся подождать когда будет стандартизированы самостийные кортексы.
@user-xi1qi8sg7l
@user-xi1qi8sg7l 4 жыл бұрын
Посмотрел только из-за того что интересно читал лекцию, но так как я не программист то ни черта не понял😁
@user-gb6wj6fn9x
@user-gb6wj6fn9x 5 жыл бұрын
Если вы товарища, говорите об АСУТП, и не говорить о таких монстрах как Siemens и Allen Bradley то чего стоит ваша лекция ???
@cyberzx
@cyberzx 4 жыл бұрын
асутп не является темой лекции
@MrWinston230
@MrWinston230 4 жыл бұрын
Хорошая лекция, только не упомянули про уровни абстракции кода: LL (Low Level) - выше CMSIS, но ниже SPL (stdPeriph), HAL (Hardware Abstraction Layer). То есть, насколько я помню, на данный момент такая линейка: адреса регистров - CMSIS - LL - SPL - HAL.
@Ma_X64
@Ma_X64 3 жыл бұрын
Не. CMSIS это, по сути, просто куча дефайнов, которые превращают адреса регистров в буковки, которые можно читать, SPL -- выкидыш-выпердыш, умерший сразу после рождения, потому что всё сделано бессистемно. HAL -- замена SPL. Более системный подход, немного лучше переносимость (хотя всё равно под каждое семейство нужно читать описание HAL) и куууууууууууча ненужного кода, жрущего время и место -- на каждый чих вызывается функция, которая вызывает еще функции, которые вызывают еще функции. В итоге переходы сжирают кучу процессорного времени, а множество вспомогательных структур -- ОЗУ. Я лично использую HAL только для инициализации, чтобы было быстрее и без ошибок, а для всего остального использую CMSIS, оборачивая аппаратно-ориентированные части кода в функции. В итоге код логики программы такой или даже более читабельный, чем с HAL, но выполняется быстрее и жрёт меньше места и ОЗУ.
@bul2012
@bul2012 4 жыл бұрын
Пробовал пол года назад установить этот риот. Чёт кубовские продукты намного проще
@user-vo9kn3pp6p
@user-vo9kn3pp6p 2 жыл бұрын
CubeMX?
@bul2012
@bul2012 2 жыл бұрын
@@user-vo9kn3pp6p да, и cubeIDE тоже
@user-vo9kn3pp6p
@user-vo9kn3pp6p 2 жыл бұрын
@@bul2012 как он?
@bul2012
@bul2012 2 жыл бұрын
@@user-vo9kn3pp6p норм, пойдет с пивом
@user-vo9kn3pp6p
@user-vo9kn3pp6p 2 жыл бұрын
@@bul2012 стабильно пашет?
@Beatleman91
@Beatleman91 2 жыл бұрын
А где остальные лекции ёпрст?
@samsunginnovationcampusrussia
@samsunginnovationcampusrussia 2 жыл бұрын
Есть целая серия лекций на ТВ МИРЭА, вот первая: kzfaq.info/get/bejne/p8-Dna-pyt-ypmg.html Остальные найдете без труда, они все есть на KZfaq
@Beatleman91
@Beatleman91 2 жыл бұрын
@@samsunginnovationcampusrussia у них открытость "доступно по ссылке", поэтому в общем поиске и не находятся
@galaktozawr
@galaktozawr 3 жыл бұрын
Notepad++ это не просто "получше редактор", это чертова машина с тысячами строк кода, работающая как часы.
@vilture5706
@vilture5706 2 жыл бұрын
Keil, iar, Какой нотепад
@_kipovets_85
@_kipovets_85 2 жыл бұрын
Жалко что у меня не было такого учителя 😢
@user-nc1zf7fi4e
@user-nc1zf7fi4e Жыл бұрын
Уже не поможет... 🙂
@user-oi1zl6de8i
@user-oi1zl6de8i 4 жыл бұрын
Esp32?
@galaktozawr
@galaktozawr 3 жыл бұрын
Действительно, нахер про него вспоминать.
@user-oi1zl6de8i
@user-oi1zl6de8i 3 жыл бұрын
@@galaktozawr Почему его не нужно вспоминать?
@galaktozawr
@galaktozawr 3 жыл бұрын
@@user-oi1zl6de8i Это я про автора ролика.
@user-oi1zl6de8i
@user-oi1zl6de8i 3 жыл бұрын
@@galaktozawrА почему не нужно вспоминать про автора ролика?
@heidhere
@heidhere 6 жыл бұрын
вопрос снят, оказывается Microchip купил Atmel, не знал...
@user-eq8tk4bm4n
@user-eq8tk4bm4n 5 жыл бұрын
Года два или три как
@TyurinAlexey
@TyurinAlexey 4 жыл бұрын
Я ахуенный программист!!! У нас стиль написания очень похож. Когда я программирую свою ардуинку я тоже дефисы проебываю, тоже смотрю в примеры что бы посмотреть как там чего сделано и через 4 написанных строчки загружаю прогу и проверяю накасячил или нет .статистика примерно одинакова с оратором, из 10 раз примерно 9 косяков. Ну то есть я вам честно люди скажу, хорошим программистом можно стать за 2 месяца, я учусь 2 месяца! Да я ахуенный программист, у нас и стили и стата по ошибкам один в один!!! Пойду писать прошивку для терминатора!
@electricbase1930
@electricbase1930 4 жыл бұрын
ооооооо либераху порвало
@deniskhakimov
@deniskhakimov 11 ай бұрын
>> _тоже смотрю в примеры что бы посмотреть как там чего сделано и через 4 написанных строчки загружаю прогу и проверяю накасячил или нет_ 😄 Когда писал одну из реализаций игры в шашки, проверил код в первый раз только после того, как было написано ~400 строк кода ) А вот с контроллерами тоже люблю почаще компилировать, загружать и проверять, что получилось, т.к. опыта в этой области не так много.
@user-uc6sy6wi2j
@user-uc6sy6wi2j 2 жыл бұрын
Че там обсуждать, берём плату берём дисплей берём либу к нему и книгу по Си. + Гугл. Разбираемся. А на этих миганиях светодиодом можно уснуть уже минут через 15. Я Си вообще не знаю, тем не менее за неделю к Дискавери подключил эспиай дисплей, часы тикают, время устанавливается, яркость регулируется, счётчик циклов перепрошивки инкрементируется, данные в еепром внешней сохраняются, координаты икс игрэк отображаются. И это гораздо интереснее, чем мигать светодиодом. Все на HALе. И вот теперь можно разбираться в тонкостях и не уснуть при этом.
@nskvasov
@nskvasov 5 жыл бұрын
За "десятикратный позор" по Тарантиновской части "Четырех комнат" уже всех пальцев на руках мог лишиться.
@anatol_savsirotkin1912
@anatol_savsirotkin1912 5 жыл бұрын
Что за фильм про 1 байт, который не влез, ссылку дайте пожалуйста
@SomeRandomPerson163
@SomeRandomPerson163 4 жыл бұрын
Не фильм а рассказ вроде
@cyberzx
@cyberzx 4 жыл бұрын
"история одного байта" в гугле
@user-gj8ng9oo9e
@user-gj8ng9oo9e 2 жыл бұрын
Знает про что говорит
@nicivanov5135
@nicivanov5135 3 жыл бұрын
Интерестно, если человек придумает как упростить этот хардкор, он сможет на этом заработать по взрослому?
@user-yi5ee1yj8b
@user-yi5ee1yj8b 4 жыл бұрын
нихуя не понял, но было интересно
@botsynth
@botsynth 3 жыл бұрын
Интересно, все эмбедерское сообщество такое токсичное?
@SaLaGaDH
@SaLaGaDH 3 жыл бұрын
Да, тоже удивляет желчь в комментах
@user-xy4sv9cl6v
@user-xy4sv9cl6v 6 ай бұрын
Это от непонимания что такое МК и с чем его едят
@user-lj6fz7no4n
@user-lj6fz7no4n 4 жыл бұрын
вот бы еще на вопросы ответили , а вот хрен .видео выложил и на этом все
@krypton1886
@krypton1886 2 жыл бұрын
Жесть, пойду лучше учить ассемблер
@anatoliydad0x078
@anatoliydad0x078 2 жыл бұрын
В общем мэйкфайлы это одно мучение... Keil+CubeMX+FreeRTOS - вот решение
@user-xn7pb5nd2p
@user-xn7pb5nd2p 3 жыл бұрын
Усатый нянь
@AxGxP
@AxGxP 5 жыл бұрын
Хороший рассказ, *Cortex-M рулит!* #ВТопкуАрдуино
@redtex
@redtex 4 жыл бұрын
Втопку мамкиных инженеров.
@andrewandrosow4797
@andrewandrosow4797 5 жыл бұрын
Годная лекция! Но Настоящая жуть начинается с периферией безобидно: по STM32CubeMX выставляешь для HRTIM минимально нужные несложные режимы режимы, простой режим инициализации (без умножения частоты HRTIM) потом запускаешь генератор кода, дописываешь HAL_HRTIM_SimplePWMStart(&hhrtim1,HRTIM_TIMERINDEX_TIMER_A ,HRTIM_OUTPUT_TA1); - и тут таймер запустился на заявленных 500Гц, но запись в регистр HRTIM_CMP1AR НИЧЕГО не дает! Какая была скважность, такая и остается. Тот же CubeMX генерирует какие-то свои функции с префиксом MX_ вперемешку с HAL. Так что в инициализации еще тот гимор))
@Ma_X64
@Ma_X64 3 жыл бұрын
Поэтому вне зависимости от того HAL там или "нахал", нужно открывать референс мануал, находить периферийный блок и изучать его логику. Полезно распечатать хотя бы картинки с диаграммами соединений. А потом случается магия, и голова начинает просто помнить все регистры и биты, так что необходимость в HAL отпадает.
@andrewandrosow4797
@andrewandrosow4797 3 жыл бұрын
@@Ma_X64 хуже всего - я прочитал осмыслил даташит (на всякий случай перевод кратко записал в тетрадь) - но писать на голых регистрах (а в прошлом я таки писал на голых регистрах) нету сейчас времени... Короче может просто бракованный чип попался (запускался HRTIM как-то коряво и далеко не на всех частотах) - вручную скважность выставляется без проблем но под реальной нагрузкой блок HRTIM сходит с ума и отключается (спасибо разработчикам что хоть сквозняки не возникают!).
@Ma_X64
@Ma_X64 3 жыл бұрын
@@andrewandrosow4797 Ну китайские нередко бывают с вывертами. Еще ERRATA нужно поглядывать в случае любых глюков. Бывает, что на этапе разработки накосячено. Насчёт времени, не знаю. Мне вот не так давно пришлось быстренько освоить STM8 и писать два больших проекта с несколькими задачами, критичными ко времени. ПОд 8-рки и нет никакого уровня абстракции -- так же брал и на регистрах писал, а они довольно похожи на 32-ки.
@andrewandrosow4797
@andrewandrosow4797 3 жыл бұрын
@@Ma_X64 может был смысл выбрать AVR Atmel - тоже ведь восьмибитные как и STM8.Программировать на Си AVR проще, правда периферия победнее
@Ma_X64
@Ma_X64 3 жыл бұрын
@@andrewandrosow4797 лучше сразу освоить что современное. Сложнее, зато потом большинство других контроллеров покажутся смутно знакомыми
@AlexEist
@AlexEist 3 жыл бұрын
38:05 Чтобы бороться "с этим ужасом" надо осуществлять Системный анализ ... надо увидеть, кто корпорации, что делают все ради прибыли НИКОГДА НЕ ПОМОГУТ тебе никогда не облегчат.. а всегда будут только усложнять и перекладывать на плечи наивных программистов проблемы своей неадекватности, абсурдности прибыльной экономики и шизофренически - "здоровой" конкуренции. Решая проблему возрастания сложности описания новых технологий и НАРУШЕНИЯ СОВМЕСТИМОСТИ надо просто отказываться от КАПИТАЛИЗМА.
@Ma_X64
@Ma_X64 3 жыл бұрын
Большинство людей не видят этой связи, обсуждая локальные проблемы.
@flytsokotly2006
@flytsokotly2006 4 жыл бұрын
Это только ардуинщиков напугает. А так-то и mega8 не проще инициализируется. Меня напрягло только что собирается долго.
@pavelshkarupsky6318
@pavelshkarupsky6318 4 жыл бұрын
Если только main.c изменять и make clean не делать, то все быстро проходит
@Ma_X64
@Ma_X64 3 жыл бұрын
не, авр-ки гораздо проще инициализируются. Как минимум, не нужно включать тактирование и питание каждому модулю, да и настроек у периферии в разы меньше.
@SaLaGaDH
@SaLaGaDH 3 жыл бұрын
Ну не скажи, число регистров периферии и настроечньіх битов раз в 10 больше
@TheMikki1982
@TheMikki1982 8 ай бұрын
PIC32 не мог вырасти из 8-разрядных PIC просто потому, что у PIC32 лицензированное ядро MIPS4K, а у 8-разрядных контроллеров своя архитектура Microchip
@andreyv6169
@andreyv6169 3 жыл бұрын
Обалдеть, 14кбайт чтобы поморгать светодиодом. Когда просто на си на это может уйти 200 байт. Какая ж тут экономия? Проще потратить на разработку один раз на недельку подольше, чем купить дороже кирпич для выпуска это в производство и значительно увеличить себестоимость. И да уже 8 битная атмега может в процессе работы хоть сто раз подряд конфигурировать новой таймер. Так что как то не убедительно в сторону ОС на МК. Это просто похоже больше на лень и расточительность. И атмега8 до сих пор применяется. Только недавно видел на ней регулятор температуры для печи. Даже сварочный инвертор на какой то меге видел, которые до сих пор выпускаются.
@SaLaGaDH
@SaLaGaDH 3 жыл бұрын
Когда нибудь поймешь
@TheKirsna
@TheKirsna 5 жыл бұрын
Чувак наверное оговорился что за месяц программист утрамбует все что надо. Это наверное мегамоск должен быть. Интересно знать после такой работы сколько программисты живут и как у них со здоровьем ???
@dazzershell
@dazzershell 5 жыл бұрын
"хороший программист" с кучей наработок для данного кристалла может вскружить голову любому нанимателю, в плане скорости.
@phill2773
@phill2773 4 жыл бұрын
@Danatas Gervi Снится - это да :)
The Noodle Stamp Secret 😱 #shorts
00:30
Mr DegrEE
Рет қаралды 55 МЛН
Когда на улице Маябрь 😈 #марьяна #шортс
00:17
Изучаю STM32!
20:26
Лёша Кластер
Рет қаралды 187 М.
Лекция №5 "Микроконтроллеры" (Донов Г.И.)
1:19:58
Дистанционные занятия МФТИ
Рет қаралды 11 М.
STM32 Таймеры. Введение
24:48
MBDLB
Рет қаралды 2,2 М.
ArmAsmEditor: STM32 на Ассемблере: Вводное видео. Видео 1.
38:23
Виталий Горбуков
Рет қаралды 6 М.
СЛОМАЛСЯ ПК ЗА 2000$🤬
0:59
Корнеич
Рет қаралды 2,4 МЛН
Готовый миниПК от Intel (но от китайцев)
36:25
Ремонтяш
Рет қаралды 407 М.
#Shorts Good idea for testing to show.
0:17
RAIN Gadgets
Рет қаралды 3,6 МЛН