> Ну так-то обычно в случае включения защиты от чтения, в первую очередь
> доступ отладчика запрещают, а то так-то и у STM32 в PM0075 написано:У STM32F1xx есть только protection level 1 - дебагер остается активен. А зря. Впрочем Lvl2 в 32L/f0/etc не панацея. С lvl1...
- *Дебагер* сетапит DMA, прописав регистры.
- mem2mem
- Src=flash
- Dst=sram
- *Дебагер* читает SRAM.
На оригинале НЕ работает! А китай...
> настройки ремапов, так что в промежуток от ресета до перехода из
> бутлоадера в основную прошивку есть время таки отладчик прицепить.
У F1 нет этого: там мапинг деваса в адрес 0 выбирается boot0/1. Первые 4 цикла на latch bootX, а потом при boot0=0 сразу фирмвара (в 0 отмаплена, reset handler - ее). Если boot0=1 то в 0 будет или sysROM или RAM, тогда старт с них.
Самое интересное? Оно ремап умеет, НО софту в F1 не вывешен ифейс! Поэтому завалиться в sysROM из фирмвари в F1 только софтом низя. В более новых доперли вывесить ремап в регистр, но увы, ранние так не могут. SysROM F1 не может фирмвару в 0 сделать, если bootX был выбран он. Так что STшный бут при boot0=0 в F1 не у дел. И чип ваш. Сразу. Клево. Без долгого релоада и странных пасов бута. Но дебагер может прицепиться и пока чип в ресете, увы.
И бут вроде в SRAM код согласен лить, но код в SRAM флеху читать не может. В оригинале защита рубит вообше доступ с DBUS, если обращение в флеху не кодом в флеше. Узкоглазые же забывают что кроме проца DMA тоже bus master, а кардинально зарубить dbus вообще допирают лишь некоторые из них.
> И это, вроде, не единственная дыра такого сорта у оригинала.
Да. Но 100% клон оригинала делать вроде нахаляву не умеют. Что-то типа 95% :)
> Как же хорошо, что мне эта функциональность не нужна
Мне тоже. А там где понадобится - я вообще совсем иные фокусы применю. Есть более 9000 способов испортить настроение и наивному китайцу и продвинутому реверсеру. Я знаю примерно полвину.
> И мегагерцев, и сотен килобайт.
Ну мне как-то и с оригиналом хорошо, не в том счастье в мк.
> тупо одноплатник с линухом поставил, впрочем, к этому идёт), это оказывается
> ну прям очень кстати.
Они уже за 10 баксов есть же. Апельсины с H3, чтоли. Дешево и сердито. Если бюджет еще ниже, может ну такого жадного заказчика в зад? Он не стоит долботни. Или это для себя?
> В смысле, мутно? Как помню, было там всё честно и открыто: два
> кристалла разварено в одном корпусе, т.е. контроллер без flash и сверху
> последовательная flash-память. Есть некоторое кеширование ...
Вот это и есть мухлеж. Жесткий и опасный. От МК прежде надо предсказуемые тайминги, а если китайская дрянь поймает клин потому что alignment не тот - силовым ключам на раз будет то же что у горе питониста. Это очень плохое свойство. Да и powerup дольше, опять же потеря контроля надолго.
> Это при исполнении из flash-памяти, что ли? Так на то оперативка и
> добавлена (по сравнению с оригиналом), чтобы избегать этого.
В оригинале, видите ли, я получаю предсказуемые тайминги. Без делания мозга подарками. При том в F0/F1/L0/L1 неплохо по предсказуемости. Это позволяет поприкалываться в задачах с крутыми требованиям к реалтайму, уповая на реакцию. У STM полно апнотов с инверторами где F10x напрямую силовухой рулит. С китайской байдой с теми свойствами так уже стремно.
> Но, конечно, это нюансы, которые нужно или знать и понимать, или не связываться с
> ними вообще (отличный вариант, кстати).
Я его пока и предпочитаю. Но plan B на случай офигения STM никому еще не мешал.
> GD, на самом-то деле, довольно старая контора. Не гигант мысли и дела,
> как ST, конечно, но по-своему молодцы.
У них есть и интересные экспонаты, например STM32-like с RISCV ядром. Прикольная идея, я даже пару в коллекцию прихватил, пока не прогал правда, много другого в todo.
> Что до предсказуемости, так те нюансы по большей части описаны.
И на том спасибо, у GаDов кстати не такие плохие по китайским меркам доки. Хотя дока на riscv ядро оттуда - реал чина, почти raw dump чипмейкерской доки для лицензиата.
> Я помню GD130, это как 030 (включая вариант исполнения в 20-ногом корпусе),
Еще у STMicro почему-то нет проциков в QFN28 или меньше, с USB и M3. А в GD150 пожалуйста. Максимум у ST есть 103 в QFN36. И тот не так давно сделали. И это крупнее QFN28.
>> - блин, ТЫ ХТО, WTF32?!
> CS32 отличался отсутствием бутлоадера и другим idcode, а что ещё с ним не так?
Да периодически вижу народ с bluepill-ами задающий странные вопросы. Мол, в даташите так,а реально эдак. Дежурно прошу фото, а там ... понятно что не оригинал, а самые разные WTF32. С самым разным (не)соответствием оригиналу.
> Говорят, в нём даже поправлено кое-что из STM'овской errata,
> но подробностей не знаю.
В некоторых клонах более новая ревизия ядра M3. Софт при желании может это детектить, так что на каждого ушлого клонера может найтись свой "FTDI" =)