Comments 10
Подход - серьезный. Сам полюбливаю измерять быстродействие "по бордюру" (Спектрумисты - поймут).
Но, создатели кортексов наградили их чудесным средством DWT_CYCCNT, которое избавляет от многих головоломок, особенно в h7 серии, с её могучим кэшем, но который надо иногда правильно готовить. Здесь как бы ему прямая дорога и почёт.
Проблема в том, что этот модуль используется для отладки и его включение не очень хорошо в части безопасности и доступа к прошивке и её данным. Поэтому обычно в продаёте он отключён.
Сам счетчик возможно и не влияет, влияет модуль отладки, а так как для задействования счетчика нужно подключить весь модуль, то соотвественно все фичи этого модуля включаются. Там не зря стоит небольшая защита от его включения, чтобы включить DWT, насколько я помно, нужно разблокировать отладочный регистры, точно не помню уже LAR вроде записать какой-то магическое число. Где-то у меня есть развернутый ответ, если найду опишу, где настоятельно не рекомендовали в продукте использовать этот модуль, если устройство используется в какой-нибудь защищенной системе.
создатели кортексов наградили их чудесным средством 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)
ARM Cortex M* — «сколько вешать в граммах»