JTAG & PORTB

32-разрядные микроконтроллеры разработки АО "НИИЭТ"

Модераторы: ea, dav, bkolbov, Alis, pip, _sva_

Аватара пользователя
MR.Smith
Сообщения: 78
Зарегистрирован: 25 апр 2016, 10:56

Re: JTAG & PORTB

Сообщение MR.Smith »

R Max писал(а): 24 апр 2016, 17:11 Ну надо же, удалось всё-таки стереть память:
разъём X11 - в нормальном режиме,
перевёл разъём X2 в режим внутреннего кварца,
замкнул внешний кварц: 207 и 208 пины чипа.

НО ВОПРОС С ТАЙМАУТОМ ОСТАЁТСЯ - .FLM-файл КРИВОЙ и пины JTAG зависят от других пинов??
Я тоже очищаю FLASH на своей LDM плате по этой методике.
Но здесь получается, что после замыкания кварца программа во FLASH зависает в бесконечном цикле при попытке настроить PLL еще до того момента, где я конфигурирую ноги микроконтроллера. Только благодаря этому камень видно до тех пор, пока замкнут кварц. В теории (я не проверял) если настраивать тактирование от внутреннего источника, то фокус с замыканием кварца уже не прокатит. И как тогда стирать FLASH?

Почему не получается стереть память при переводе камня в режим стирания Flash (подтягивание H2 к 3,3В)?
Ошибка таймаута. Keil начинает ее стирать, но не получается.
Как лечить данную проблему?
bkolbov
Сообщения: 248
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: JTAG & PORTB

Сообщение bkolbov »

В теории (я не проверял) если настраивать тактирование от внутреннего источника, то фокус с замыканием кварца уже не прокатит. И как тогда стирать FLASH?
Через интерфейс отладки, который пользовательская программа не должна отключать. Если в программе альтернативные функции интерфейса отключаются, то можно стереть все только через специальный режим и запись в спец регистр.
MR.Smith писал(а): 08 авг 2017, 11:44 Почему не получается стереть память при переводе камня в режим стирания Flash (подтягивание H2 к 3,3В)?
Ошибка таймаута. Keil начинает ее стирать, но не получается.
Как лечить данную проблему?
При входе в этот режим флеш нельзя ни прочитать, ни записать, ни стереть обычным способом. Необходимо осуществить запись в специальный регистр, а алгоритм стирания Keil, вероятно, пользуется обычными регистрами флеш.
ТО 7.3 подраздел
Далее по отладочному интерфейсу (SWD или JTAG) должна быть подана команда
записи значения 00000001h в регистр FLASH_FULL_ERASE, после чего будет
активировано полное стирание.
Аватара пользователя
Лашкевич
Сообщения: 372
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: JTAG & PORTB

Сообщение Лашкевич »

Стереть flash подвязкой H2 у нас получилось через OpenOCD путем запуска скрипта k1921vk01t_stlink_erase.bat из ветки форума Драйвер для OpenOCD
Там внутри скрипта, собственно, всего лишь

Код: Выделить всё

"bin\openocd" -f kits/k1921vk01t_stlink/simple_connect.cfg -c "flash erase_sector 0 0 last"
если используется другой житаг, нужно выбрать его конфиг. Этот файл также есть в составе VectorIDE.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
Аватара пользователя
MR.Smith
Сообщения: 78
Зарегистрирован: 25 апр 2016, 10:56

Re: JTAG & PORTB

Сообщение MR.Smith »

Лашкевич писал(а): 08 авг 2017, 13:38 Стереть flash подвязкой H2 у нас получилось через OpenOCD путем запуска скрипта k1921vk01t_stlink_erase.bat из ветки форума Драйвер для OpenOCD
Там внутри скрипта, собственно, всего лишь

Код: Выделить всё

"bin\openocd" -f kits/k1921vk01t_stlink/simple_connect.cfg -c "flash erase_sector 0 0 last"
если используется другой житаг, нужно выбрать его конфиг. Этот файл также есть в составе VectorIDE.
Спасибо большое!
Попробую так сделать.
Пока думал только создать пустой проект с записью этого регистра, загрузить его в ОЗУ при подтянутом в единицу H2 и запустить проект на исполнение.
bkolbov
Сообщения: 248
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: JTAG & PORTB

Сообщение bkolbov »

MR.Smith писал(а): 08 авг 2017, 14:05 Пока думал только создать пустой проект с записью этого регистра, загрузить его в ОЗУ при подтянутом в единицу H2 и запустить проект на исполнение.
Зачем же так сложно - openocd уже дает достаточно инструментов, чтобы делать с контроллером практически все что угодно.
В документации на openocd можно найти группу команд "niietcm4", где есть команда стирания всего в режиме когда H2 при старте был "1" - service_mode_erase. При выполнении этой команды драйвер сам всё сделает.
И тогда можно сделать батник с

Код: Выделить всё

"bin\openocd" -f kits/k1921vk01t_stlink/simple_connect.cfg -c "niietcm4 service_mode_erase 0"
который и будет выполнять такой вид стирания.
Sergey_ty
Сообщения: 4
Зарегистрирован: 08 май 2018, 12:16
Предприятие: ООО "НПФ НПТ"
Откуда: Санкт-Петербург
Контактная информация:

Re: JTAG & PORTB

Сообщение Sergey_ty »

При работе с отладчиком Segger J-Link все просто. Подтягиваем Н2 к питанию. Запускаем J-link Commander. Далле через консоль соединяемся с контроллером. Для записи ячейки использовать команду w4 [adr],[data] (пример w4 80030164, 1). Все память стерта.
sc0001.jpg
sc0001.jpg (170.52 КБ) 2279 просмотров
Тягушев Сергей
ООО "НПФ НПТ"
г. Санкт-Петербург
https://ooonpt.ru/
Ответить

Вернуться в «32-разрядные микроконтроллеры»