Стереть чип через SWD на M0+

Я хочу прошить устройство M0+ через SWD. Это реализуется главным процессором вместо программиста.

Я уже могу писать и проверять в оперативной памяти, но не во флэш-памяти.

Кажется, он немного отличается от ядер M3/4, поэтому он не работает для M0+.

Может, кто-нибудь из вас поможет мне с совместимой последовательностью сделать стирание чипа и команду записи через SWD на M0+?

спасибо Даниэль

1 ответ

Стирание флэш-памяти зависит от устройства. Как правило, вы не можете просто записать значения во флэш-память, вам нужно использовать контроллер флэш-памяти, чтобы сначала стереть блок, а затем повторно выполнять операции записи / проверки, пока значение не станет стабильным. Эта стадия записи обычно также автоматизируется контроллером.

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

Все обращения могут быть выполнены через процессор или с помощью внешнего отладчика. Если вы хотите выполнить доступ через SWD, ваше программное обеспечение для отладки должно знать точное целевое устройство, его карту памяти и требования контроллера флэш-памяти. Вся эта информация должна быть в таблице данных для устройства, которое вы используете (и где-то будет поддерживаться цепочкой инструментов производителя).

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

Другие вопросы по тегам