> О, да, я такое даже применял на STM32F0 и STM8Sxxx.8MHz osc сам жрет порядка 200-300мкА наверное. При 65кГц цифры другие. Вероятно в F1 можно попробовать смухлевать приделав часовой кварц к внешнему инвертору, GPIO как power gating. Но это уже изврат и CSS его мало.
> Правда, не было задач, чтобы прям совсем экономить электричество, так что до L-линеек
> не добрался. Теперь хоть буду знать, какие там плюшки лежат.
Я на самом деле их фоново раскуриваю, для автономных датчиков, себе в основном, там 1 18650 макс - 300мкА перебор. В F1 можно спать, а по RTC мерять с полным ребутом, но это тупее.
> Я даже ниже об этом тогда сообщение дописал, но оно оказалось незамеченным.
Как я с оперативой vs флеш.
> количестве переключающихся гейтов и затратах энергии на одну инструкцию, зато инструкций
> теперь больше нужно для того же кода.
На самом деле от кода зависит. Основной фэйл - крипто, FEC, etc. Для более приземленных вещей хуже, но не настолько.
> В итоге не так и прозрачно, выиграли или нет, а то и вообще проиграли.
Раз возятся, считают что оправдывается. Вероятно позволяет юзать древние техпроцессы, с неплохими параметрами. К лучшему: зачем управляющие системы мрущие от пятен на солнце?
> Сабж, кстати, как бы CM0+, т.е. имеет больше команд, чем CM0, но
> вот есть ли такие флаги компилятора, чтобы это использовать — будем посмотреть.
Как минимум -mcpu= в gcc его знает. Насколько меняется, смотреть надо, я M3 в основном юзаю и не мерял, пару раз сравнил M0 vs M3, не понравилось и я забил. А плюс M0+ там VTOR вроде обязателен. В F0 его нет, это хреново.
> не переключаются в соответствующих тактах.
Кмк, при усложнении оверхед редко ноль.
> А что шина одна вместо двух, так обращений по той шине всё равно такое же
> количество (от алгоритма зависящее),
Кроме динамического потребления еще статическое. Чем больше транзисторов и они меньше тем сильнее утекает. Lowpower процессы вероятно оптимизруют по утечкам, даже в ущерб частотам.
> плюс, ещё добавляются переключения вентилей, которые эту шину между I и D обращениями
> делят. Так что как-то прям тяжело посчитать выигрыш.
M0 заявлен как нейман в железе, нейман в софте. M3 - гарвард в железе, нейман в софте (годный чит). Они разные в этом.
> Обалдеть, т.е. это можно вообще APB в спячку отправлять и не терять
> при этом GPIO, получается. МощЪ!
Да. Утверждается что если за AHB2APB all off - мост при sleep тоже off. У F1 GPIO включаются в APBEN, в L1 - AHBEN, так что он ближе к ядру. Это еще и быстрее.
Алсо, там порт по другому конфигурится. И AFIO аж до 16 ремапов (GPIO+15 AF). Еще у некоторых (F0 и F4 вроде) - "v2 lite". Где все как в V2 но зачем-то BRR оторвали. Тупо, иногда код хуже получается, 16-бит константы лучше 32-бит.