Pull to refresh

Comments 10

Подход - серьезный. Сам полюбливаю измерять быстродействие "по бордюру" (Спектрумисты - поймут).

Но, создатели кортексов наградили их чудесным средством DWT_CYCCNT, которое избавляет от многих головоломок, особенно в h7 серии, с её могучим кэшем, но который надо иногда правильно готовить. Здесь как бы ему прямая дорога и почёт.

Проблема в том, что этот модуль используется для отладки и его включение не очень хорошо в части безопасности и доступа к прошивке и её данным. Поэтому обычно в продаёте он отключён.

Не могли бы Вы пояснить как именно счётчик тактов влияет на безопасность, или хотя бы дать ссылочку на объяснение этой проблемы. Вопрос на самом деле очень важный!

Сам счетчик возможно и не влияет, влияет модуль отладки, а так как для задействования счетчика нужно подключить весь модуль, то соотвественно все фичи этого модуля включаются. Там не зря стоит небольшая защита от его включения, чтобы включить DWT, насколько я помно, нужно разблокировать отладочный регистры, точно не помню уже LAR вроде записать какой-то магическое число. Где-то у меня есть развернутый ответ, если найду опишу, где настоятельно не рекомендовали в продукте использовать этот модуль, если устройство используется в какой-нибудь защищенной системе.

Проверил и оказалось что для счетчика тактов LAR не нужен, его используют для активации ITM
The ITM_LAR (0xE0000FB0) characteristics are: Provides CoreSight Software Lock control for the ITM

Проверено на STM32F405RG, STM32H745ZI и STM32U575ZI.

Если LAR не активировать то проблемы безопасности нет?

Я постараюсь найти ответ и уточню попозже, пока не могу найти переписку, было давненько.

Постоянно пользую DWT для сбора метрик, постоянно во время отладки. Никогда не замечал проблем.

создатели кортексов наградили их чудесным средством DWT_CYCCNT

Согласен, DWT - интересная вещица.

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

Полученный метод позволяет оперировать вложенными интервалами времени от нескольких тактов до нескольких часов с известной точностью, что и требовалось в прикладной задаче.

В заголовка заявлено некое "ARM Cortex M*" (со звездочкой)

что это такое автор не объясняет. Гугль по звездочку ничего вразумительного не говорит..

На скриншотах видим STM и Cortex M4...

Однако STM не равно Cortex, а M4 весьма отличается от M0

В разделе "постановка задачи" никакой постановки задачи нет.. ну и т.д. и т.п.

Однако STM не равно Cortex, а M4 весьма отличается от M0

Вы абсолютно правы.

В угоду Вашей правоты замечу, что задача планировалась под чип STM32L031, но в процессе подготовки текста под рукой оказались другие оценочные платы, на что указывает директива условной компиляции в файле заголовка.

Учить читателя, что-либо доказывать, объяснять - такой цели здесь нет. Есть практический опыт, изложенный в доступной форме, пригодной для проверки, обсуждения, заимствования и улучшения. Лицензия в заголовке исходного кода это позволяет.

В разделе "постановка задачи" никакой постановки задачи нет..

Обременять популярную статью согласно "ГОСТ Р 19*", "ГОСТ Р 34*" или там "ГОСТ Р ИСО 9000, 9001, 9004" и т.п. считаю нецелесообразным.

(imho)

Sign up to leave a comment.

Articles