Когда микроконтроллер становится узким местом? Разбираем реальные ограничения STM32

На этом вебинаре разобрали ключевой вопрос практической разработки: как понять, что микроконтроллер больше не справляется с задачей — и что с этим делать. Спикер — Максим Алексеевич Белецкий, инженер-программист, разработчик, преподаватель курсов по программированию микроконтроллеров. В эфире он подробно разобрал реальные ограничения STM32 и объяснил, почему одной тактовой частоты недостаточно для оценки производительности системы. 📌 Что рассмотрели на вебинаре: - Почему нельзя ориентироваться только на MHz - Показатель Dhrystone MIPS и реальная производительность ядра - Отличия Cortex-M0 / M3 / M4 / M7 - Flash, wait states и почему код «не летит» на 168 МГц - ART Accelerator и влияние кэша - Узкие места шины AHB и конфликты CPU–DMA - SRAM1 / SRAM2 / CCM — как грамотно распределять память - Кэш Cortex-M7 и проблемы когерентности - Признаки того, что микроконтроллер достиг предела - Как правильно измерять узкие места (DWT-таймер, анализ загрузки) - Когда пора менять архитектуру Также обсудили практические вопросы: - динамическое vs статическое выделение памяти - HAL, CMSIS, LL — что выбирать и где компромисс - организация буферов под дисплей - способы оценки загрузки CPU 📅 5 марта в 20:00 состоится финальный вебинар цикла. Тема: "Влияние и роль искусственного интеллекта в программировании микроконтроллеров". 👉 Регистрация на финальный эфир: https://pcbteach.getcourse.ru/vebinar_stm32_2?utm_source=YT 📚 Другие вебинары по микроконтроллерам: https://www.youtube.com/playlist?list=PLKaIJ61ExJJQ9AT0ls2HTVI0WjM0BaU9g 🎓 Курс по программированию микроконтроллеров: https://pcbteach.ru/mcu_schedule?utm_source=YT 🎓 Все наши курсы по электронике и embedded-разработке: https://pcbteach.ru/#specialnost?utm_source=YT Тайм-коды: 00:00 Вступление. О чём вебинар и зачем разбирать ограничения МК 00:30 Почему частота — не главный показатель производительности 00:56 Архитектура Cortex-M: различия M0 / M3 / M4 / M7 02:19 Что такое Dhrystone MIPS и как сравнивать ядра 04:20 Особенности Cortex-M4 и M7: DSP, FPU, кэш, рост сложности 05:20 Узкое место: разрыв между частотой ядра и периферии 05:42 Ограничения Flash-памяти и появление wait states 07:47 Почему на высокой частоте код может работать медленнее 08:39 Перенос критического кода в RAM — когда это необходимо 09:10 ART Accelerator: как ускоряется выполнение из Flash 12:16 Шинная матрица STM32 и параллельный доступ к памяти 13:15 Конфликты CPU и DMA: откуда берутся задержки 14:11 Разделение памяти по банкам (SRAM1 / SRAM2) 15:02 CCM-память — быстрый доступ напрямую к ядру 15:53 Кэш в Cortex-M7: преимущества и скрытые проблемы 16:20 Когерентность кэша и ошибки при работе с DMA / Ethernet 18:09 Когда оптимизация больше не помогает — предел МК 18:42 Признак №1: компилятор уже всё оптимизировал 19:42 Признак №2: ассемблер не даёт прироста 20:46 Признак №3: переполнение буферов, потеря данных 21:19 Джиттер и нестабильность временных характеристик 21:55 Нелинейный рост загрузки CPU и приближение к коллапсу 23:02 Из чего реально складывается время выполнения задачи 24:28 Как диагностировать узкие места (DWT, измерения) 25:21 Инструменты анализа: Cube Monitor, логические анализаторы 26:22 Что делать, если МК не справляется — изменение архитектуры 27:01 Делегирование задач дополнительному микроконтроллеру 29:00 Локальная обработка сигналов рядом с датчиком 30:09 Связка микроконтроллер + FPGA для тяжёлой обработки 31:11 Почему иногда лучше несколько МК, чем один «мощный» 31:40 Как правильно выбирать микроконтроллер на этапе проектирования 32:14 Формирование списка задач системы до выбора МК 32:41 Построение блок-схемы и оценка взаимодействий 33:13 Сопоставление требований с характеристиками микроконтроллера 34:12 Итоги: основные ограничения и методы их обхода 35:06 Ответы на вопросы участников 38:07 Интерфейсы связи МК и FPGA — что влияет на скорость 41:02 Можно ли начинать сразу с мощных плат разработки 42:16 Как искать «тяжёлые» участки кода на практике 44:08 Организация памяти и буферов дисплея 45:25 Реальные кейсы, когда ресурсов всё же не хватает 47:18 HAL vs CMSIS — практический компромисс 54:02 Как ускорять критические участки без HAL 58:29 Как оценить загрузку CPU 59:16 Завершение вебинара 59:47 Анонс следующего эфира (5 марта) #микроконтроллеры #STM32 #программированиеМ#Cortex#электроника #разработкаустройств #архитектураМК #HAL #CMSIS #RTOS #embeddeddeveloper #STM32programming #microcontrollers #firmware #hardwaredesign #embeddedengineering #Cprogramming #ARM

Иконка канала Барсук и Антенна
14 подписчиков
12+
1 просмотр
9 дней назад
12+
1 просмотр
9 дней назад

На этом вебинаре разобрали ключевой вопрос практической разработки: как понять, что микроконтроллер больше не справляется с задачей — и что с этим делать. Спикер — Максим Алексеевич Белецкий, инженер-программист, разработчик, преподаватель курсов по программированию микроконтроллеров. В эфире он подробно разобрал реальные ограничения STM32 и объяснил, почему одной тактовой частоты недостаточно для оценки производительности системы. 📌 Что рассмотрели на вебинаре: - Почему нельзя ориентироваться только на MHz - Показатель Dhrystone MIPS и реальная производительность ядра - Отличия Cortex-M0 / M3 / M4 / M7 - Flash, wait states и почему код «не летит» на 168 МГц - ART Accelerator и влияние кэша - Узкие места шины AHB и конфликты CPU–DMA - SRAM1 / SRAM2 / CCM — как грамотно распределять память - Кэш Cortex-M7 и проблемы когерентности - Признаки того, что микроконтроллер достиг предела - Как правильно измерять узкие места (DWT-таймер, анализ загрузки) - Когда пора менять архитектуру Также обсудили практические вопросы: - динамическое vs статическое выделение памяти - HAL, CMSIS, LL — что выбирать и где компромисс - организация буферов под дисплей - способы оценки загрузки CPU 📅 5 марта в 20:00 состоится финальный вебинар цикла. Тема: "Влияние и роль искусственного интеллекта в программировании микроконтроллеров". 👉 Регистрация на финальный эфир: https://pcbteach.getcourse.ru/vebinar_stm32_2?utm_source=YT 📚 Другие вебинары по микроконтроллерам: https://www.youtube.com/playlist?list=PLKaIJ61ExJJQ9AT0ls2HTVI0WjM0BaU9g 🎓 Курс по программированию микроконтроллеров: https://pcbteach.ru/mcu_schedule?utm_source=YT 🎓 Все наши курсы по электронике и embedded-разработке: https://pcbteach.ru/#specialnost?utm_source=YT Тайм-коды: 00:00 Вступление. О чём вебинар и зачем разбирать ограничения МК 00:30 Почему частота — не главный показатель производительности 00:56 Архитектура Cortex-M: различия M0 / M3 / M4 / M7 02:19 Что такое Dhrystone MIPS и как сравнивать ядра 04:20 Особенности Cortex-M4 и M7: DSP, FPU, кэш, рост сложности 05:20 Узкое место: разрыв между частотой ядра и периферии 05:42 Ограничения Flash-памяти и появление wait states 07:47 Почему на высокой частоте код может работать медленнее 08:39 Перенос критического кода в RAM — когда это необходимо 09:10 ART Accelerator: как ускоряется выполнение из Flash 12:16 Шинная матрица STM32 и параллельный доступ к памяти 13:15 Конфликты CPU и DMA: откуда берутся задержки 14:11 Разделение памяти по банкам (SRAM1 / SRAM2) 15:02 CCM-память — быстрый доступ напрямую к ядру 15:53 Кэш в Cortex-M7: преимущества и скрытые проблемы 16:20 Когерентность кэша и ошибки при работе с DMA / Ethernet 18:09 Когда оптимизация больше не помогает — предел МК 18:42 Признак №1: компилятор уже всё оптимизировал 19:42 Признак №2: ассемблер не даёт прироста 20:46 Признак №3: переполнение буферов, потеря данных 21:19 Джиттер и нестабильность временных характеристик 21:55 Нелинейный рост загрузки CPU и приближение к коллапсу 23:02 Из чего реально складывается время выполнения задачи 24:28 Как диагностировать узкие места (DWT, измерения) 25:21 Инструменты анализа: Cube Monitor, логические анализаторы 26:22 Что делать, если МК не справляется — изменение архитектуры 27:01 Делегирование задач дополнительному микроконтроллеру 29:00 Локальная обработка сигналов рядом с датчиком 30:09 Связка микроконтроллер + FPGA для тяжёлой обработки 31:11 Почему иногда лучше несколько МК, чем один «мощный» 31:40 Как правильно выбирать микроконтроллер на этапе проектирования 32:14 Формирование списка задач системы до выбора МК 32:41 Построение блок-схемы и оценка взаимодействий 33:13 Сопоставление требований с характеристиками микроконтроллера 34:12 Итоги: основные ограничения и методы их обхода 35:06 Ответы на вопросы участников 38:07 Интерфейсы связи МК и FPGA — что влияет на скорость 41:02 Можно ли начинать сразу с мощных плат разработки 42:16 Как искать «тяжёлые» участки кода на практике 44:08 Организация памяти и буферов дисплея 45:25 Реальные кейсы, когда ресурсов всё же не хватает 47:18 HAL vs CMSIS — практический компромисс 54:02 Как ускорять критические участки без HAL 58:29 Как оценить загрузку CPU 59:16 Завершение вебинара 59:47 Анонс следующего эфира (5 марта) #микроконтроллеры #STM32 #программированиеМ#Cortex#электроника #разработкаустройств #архитектураМК #HAL #CMSIS #RTOS #embeddeddeveloper #STM32programming #microcontrollers #firmware #hardwaredesign #embeddedengineering #Cprogramming #ARM

, чтобы оставлять комментарии