реклама на сайте
подробности

 
 
> STM32 - заблокировал флешку :) не знаю что делать теперь.
Lexman
сообщение Jul 28 2011, 11:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 1-08-05
Пользователь №: 7 276



Прошу пардону, если такая тема была - поиск не помог.
Сделал глупость - заблокировал программно все страницы STM32F103 (XL) флешки, в итоге Keil uVision не может туда ничего залить (STLink JTAG) - в т.ч. залит программу, которая разблокирует флешку sm.gif.
Пробовал разблокировать флешку вручную, через редактирование регистров в режиме отладки, в итоге - бит CR.LOCK снимается после ввода KEYR1 и KEYR2, но вот разблокировать юзер-регистры для снятия флага защиты почему-то не получается, т.к. регистр, назначенный для ввода КЕЙР-ов (и соответствующая область памяти) недоступны для записи (?).
Попытался загрузить проект в SRAM, но не получилось - как я понял, прямого пути для этого нет, а смена базового адреса для проги с флешки на СРАМ дали результат, который я затруднился интерпретировать как адекватный sm.gif

Короче, сижу второй день, пытаясь взломать собственную железку - и хрен там.
Может кто-то сталкивался?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SII
сообщение Jul 28 2011, 13:44
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Для заливки в ОЗУ надо использовать ини-файл, управляющий этим делом. Вот, например, использовавшийся мною (правда, для STM32F103, но суть от этого не меняется):

Код
FUNC void Setup (void) {
  SP = _RDWORD(0x20000000);          // Setup Stack Pointer
  PC = _RDWORD(0x20000004);          // Setup Program Counter
  _WDWORD(0xE000ED08, 0x20000000);   // Setup Vector Table Offset Register
}

LOAD %L INCREMENTAL                  // load the application

Setup();                             // Setup for Running


Он является мелкой переделкой собственно кейловского из примеров, идущих со средой. Смысл таков: LOAD %L INCREMENTAL загружает axf-файл, собранный компоновщиком (при необходимости вместо %L можно подставить точное имя файла), а затем вызывается процедурка Setup, которая выставляет начальные значения SP и PC (читает их из начальной области ОЗУ, где располагается таблица векторов), а также устанавливает нужным образом регистр VTOR. Выполнение не начинается (можно поставить последней строчкой, после вызова Сетупа, g, но зачем это надо? пустить и в отладчике можно).

Чтобы использовать сей гениальный файл, надо:

1) правильным образом собрать axf-файл (я всегда использую sct-файлы, поскольку меня не устраивает стандартно-примитивная схема размещения секций в памяти, но можно обойтись и без этого, просто указав правильные базовые адреса на вкладке Target);
2) на вкладке Debug указать подготовленный ини-файл;
3) на той же вкладке сбросить галку Load Application at Startup, поскольку загрузку кода в память обеспечивает ини-файл;
4) после трансляции и сборки программы (F7) войти в режим отладки (Ctrl-F5).

Если всё сделано правильно, отладчик остановится на самой первой команде программы.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 06:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016