Стереть чип через SWD на M0+
Я хочу прошить устройство M0+ через SWD. Это реализуется главным процессором вместо программиста.
Я уже могу писать и проверять в оперативной памяти, но не во флэш-памяти.
Кажется, он немного отличается от ядер M3/4, поэтому он не работает для M0+.
Может, кто-нибудь из вас поможет мне с совместимой последовательностью сделать стирание чипа и команду записи через SWD на M0+?
спасибо Даниэль
1 ответ
Стирание флэш-памяти зависит от устройства. Как правило, вы не можете просто записать значения во флэш-память, вам нужно использовать контроллер флэш-памяти, чтобы сначала стереть блок, а затем повторно выполнять операции записи / проверки, пока значение не станет стабильным. Эта стадия записи обычно также автоматизируется контроллером.
Поскольку во флэш-памяти обычно запускается код, вам также необходимо сначала скопировать подпрограмму загрузки кода в оперативную память и выполнить ее из ОЗУ, пока флэш-память занята.
Все обращения могут быть выполнены через процессор или с помощью внешнего отладчика. Если вы хотите выполнить доступ через SWD, ваше программное обеспечение для отладки должно знать точное целевое устройство, его карту памяти и требования контроллера флэш-памяти. Вся эта информация должна быть в таблице данных для устройства, которое вы используете (и где-то будет поддерживаться цепочкой инструментов производителя).
Если вы пишете свою собственную флэш-программу, обязательно придерживайтесь спецификаций. Флэш - это скорее аналоговый компонент, и даже если вы не уничтожите чип, вы все равно можете легко прийти в состояние, из которого трудно восстановиться.