Вебинар «Работа с внешней памятью в STM32H7» (16.09.2021)

30 августа

потребительская электроникаавтоматизацияинтернет вещейуниверсальное применениеSTMicroelectronicsвебинаринтегральные микросхемыCortex-M7STM32H7OTFDEC

Мероприятие прошло 16.09.2021

Программа

показатьсвернуть
Приглашаем всех желающих принять участие в вебинаре, посвященном особенностям работы высокопроизводительных линеек микроконтроллеров семейства STM32H7. Созданные на базе современного суперскалярного процессорного ядра ARM Cortex-M7 микроконтроллеры STM32H7 имеют самую высокую производительность среди всех моделей STM32. Улучшенная шинная архитектура, кэш и блок расшифровки «на лету» OTFDEC позволяют выполнять зашифрованный код приложения из внешней памяти на максимальной скорости практически без потери производительности. На вебинаре будут разобраны ключевые особенности линеек STM32H72/3 и проведена практическая работа с оценкой производительности с использованием ускорителей и кэш-буфера при чтении инструкций из внутренней и из зашифрованной внешней памяти. Для отображения результатов будет использоваться программная среда STM32CubeMonitor.

Содержание

  • Обзор высокопроизводительных линеек микроконтроллеров семейства STM32H7
  • Подключение и работа с STM32CubeMonitor
  • Выполнение программы из внутренней памяти
  • Выполнение программы из внешней памяти

Общая информация

Начало: 16 сентября в 11:00 (МСК)
Продолжительность: 90 минут
Форма участия: бесплатно
Добавить в календарь: Google, iCal

Докладчик

Барсов Владислав – инженер по программированию и применению микроконтроллеров  STMicroelectronics в компании КОМПЭЛ.

Видео

Презентация

Материалы для лабораторной работы

Вопросы и ответы:

Как настроить кэш и как правильно работать с ним? Заметил, что после включения кэшей стали появляться сбои программы.
Блок MPU может настраивать области памяти на различные стратегии работы, например, кэшировать или не кэшировать выбранный сегмент через DATA-CACHE или, скажем, принудительно постоянно выравнивать контент выбранных адресов памяти с кэшэм. Но в целом кэш, как таковой, настроек не имеет.
Как принудительно размещать критические к быстродействию код и данные в кэшах и гарантировать их постоянное нахождение там?
В этом нет необходимости. Для таких кусков кода есть ITCM-память (до 128 кбайт, что превышает размер кэша в несколько раз)
По возможности, более подробно осветите работу кэша в микроконтроллере.
Если кратко: кэш не настраивается, только включается или выключается, причем, по отдельности – на данные и на инструкции.
Остальные вопросы
показатьсвернуть
Как подключить два SDRAM к STM32H7743? Я пробовал подключать на разные чип селекты – в принципе, все работает, но один чип нормально проходит синтетические тесты на чтение-запись, а у второго чтение-запись на тестах – в несколько раз медленнее. Сами синтетические тесты показывают странные результаты: чтение – 125 Мбайт/сек, а запись – 190 Мбайт/сек. Тесты написаны мной на ассемблере, так как на С получается еще медленнее. Теоретически предел скорости должен быть, насколько я понимаю, в 5 раз больше. Почему так?
Оптимальнее всего работать с большими блоками данных на скорость с помощью DMA.
Есть ли возможность шифровать данные у внешней памяти?
STM32H7 поддерживает шифрование внешней памяти на аппаратном уровне
Применение в автономных системах с батарейным питанием: способы повышения энергоэффективности в данной линейке, работа RTC в режиме энергосбережения – есть ли у данных контроллеров какие-либо особенности в плане всего перечисленного?
(Также – возможности работы с графикой, интерфейсы дисплея, возможности использования данных MCU в качестве DCP).
RTC контроллера имеет собственный резервный вход для питания и обладает отличными характеристиками. Особых нюансов нет. Для графики есть блок подключения дисплеев и ускоритель 2D для создания высококачественного интерфейса пользователя, ускорителей работы 3D или ускорителей для видео контроллер не содержит. Условно говоря, это решение под дисплеи с диагональю до 6…8 дюймов.
Можно ли работать с разрешением 1280×1024?
1280*1024 в полном цвете – это примерно предельное разрешение. Ограничение следует из ограниченной скорости работы с внешней памятью.
Есть ли возможность перманентно загрузить небольшой фрагмент кода к кэшу? Например, код обработки прерывания, критичного по времени. И можно ли быть уверенным, что он не будет оттуда выгружаться?
Такого управления кэшем не предусмотрено, но для критичных секций кода есть ITCM.
Можно ли установить и запустить Linux на этой системе?
Можно, но только uCLinux. Для данной архитектуры теперь доступна экосистема Microsoft Azure.
В чем разница между Octo- и Quad-SPI? Как они различаются по скорости работы?
Основное отличие: у Оcto 8 линий данных, у Quad – 4. Octo быстрее.
Управляется ли отладочная плата по SWD?
Да.
Какова максимальная частота сэмплинга?
Отвечает Александр Квашин (инженер по МК STM): Частота сэмплинга зависит от загрузки шины. Условно говоря, это десятки-сотни Гц.
Кэш – это тот, что у ядра процессора находился?
Отвечает Александр Квашин (инженер по МК STM): Именно так. Кэш можно по ходу программы отключать, подключать или выбирать его действие на ту или иную область памяти с помощью MPU.
То есть, кэш подсоединяет внешнюю память к общему адресному пространству МК, а потом по ее адресу уже можно обращаться, делать на нее прыжки?
Отвечает Александр Квашин (инженер по МК STM): Верно, только до инициализации этой периферии даже отладчик не может видеть её.
Как понять, с какого адреса начинается наша внешняя FLASH?
Отвечает Александр Квашин (инженер по МК STM): -0x90000000 – это адрес для OSPI
Я заказал плату с МК, где имеется только QuadSPI, там все будет аналогично?
Отвечает Александр Квашин (инженер по МК STM): Да, все то же самое. При старте OSPI работает по одной линии, как обычный SPI.
Нужно ли как-то включать предвыборку кода из внешней FLASH, или она работает по умолчанию?
Отвечает Александр Квашин (инженер по МК STM): В регистрах есть настройка Prefetch
Как называется загрузчик, который можно сделать самостоятельно под свой МК?
Про создание собственного загрузчика имеется видеоурок.
Можно ли без внешнего загрузчика загрузить прошивку во внешнюю FLASH?
Отвечает Александр Квашин (инженер по МК STM): Внешний загрузчик – это небольшая прошивка для внутреннего ОЗУ, которая совместно с Cube грузит бинарник во внешнюю память. После цикла работы загрузчик удаляется из ОЗУ.

Дополнительные материалы:

•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

Товары
Наименование
STM32H735G-DK (ST)
NUCLEO-H723ZG (ST)
STM32H735RGV6 (ST)
STM32H735VGT6 (ST)
STM32H735ZGT6 (ST)
STM32H730ZBT6 (ST)
STM32H730ABI6Q (ST)
STM32H725REV6 (ST)
STM32H733VGT6 (ST)