К1921ВГ015 и защита прошивки

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

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

Аватара пользователя
ejsan
Сообщения: 110
Зарегистрирован: 15 авг 2022, 21:17
Предприятие: vbrspb.ru

Re: К1921ВГ015 и защита прошивки

Сообщение ejsan »

petrd писал(а): 08 сен 2025, 14:32 А как? Чтобы запустить сервисное стирание (ошибся, это и имел ввиду говоря про полное стирание), помимо замыкания SERVEN надо еще во флеш контроллер по JTAG как минимум две команды отправить, а JTAG-то отключен.
Когда сажаем SERVEN на плюс, JTAG как бы включается, но при этом способен принимать только те самые команды, которые сделают стирание, а другие игнорирует. Так что нет, вычитать паршивку всё равно не получится.
petrd
Сообщения: 5
Зарегистрирован: 03 апр 2025, 10:07
Предприятие: ООО ТСА

Re: К1921ВГ015 и защита прошивки

Сообщение petrd »

Все логично. Мне надо было просто внимательно читать руководство, в котором все есть "Во время сброса микроконтроллера анализируется состояние вывода SERVEN. Если вывод находится в состоянии логической единицы (подтянут к 3,3 В), то Flash-память переводится в режим, в котором чтение запрещено (при чтении возвращаются нули). При этом игнорируется состояние бита JTAGEN. Далее по отладочному интерфейсу JTAG должна быть подана команда записи значения 0000_0100h в регистр SERVCTL блока PMUSYS, после чего будет активировано полное стирание всех областей основной и загрузочной памяти. По завершении процесса стирания в этом же регистре выставится флаг DONE".
Максим_Е
Сообщения: 15
Зарегистрирован: 12 апр 2026, 13:44
Предприятие: Самозанятый

Re: К1921ВГ015 и защита прошивки

Сообщение Максим_Е »

petrd писал(а): 10 сен 2025, 10:03 Все логично. Мне надо было просто внимательно читать руководство, в котором все есть "Во время сброса микроконтроллера анализируется состояние вывода SERVEN. Если вывод находится в состоянии логической единицы (подтянут к 3,3 В), то Flash-память переводится в режим, в котором чтение запрещено (при чтении возвращаются нули). При этом игнорируется состояние бита JTAGEN. Далее по отладочному интерфейсу JTAG должна быть подана команда записи значения 0000_0100h в регистр SERVCTL блока PMUSYS, после чего будет активировано полное стирание всех областей основной и загрузочной памяти. По завершении процесса стирания в этом же регистре выставится флаг DONE".
Здравствуйте!
Поясните, пожалуйста, процесс подачи команды. Как происходит запись значения 0000_0100h в регистр SERVCTL блока PMUSYS?
Мое понимание последовательности:
1. создать файл main.c, написать код обращения к регистру SERVCTL с записью в него 0000_0100h, скомпилировать код
2. отключить питание контроллера
3. подтянуть вывод SERVEN к плюсу через резистор, например, 10 кОм
4. включить питание контроллера, подключив программатор J-link к компьютеру
5. запустить процесс прошивки из среды Синтакоре
6. отключить питание и убрать резистор, либо подтянуть вывод SERVEN к минусу
7. снова подключить программатор
8. открыть написанную рабочую программу и ее, уже без проблем, записать в контроллер или запустить ее отладку
Такая последовательность?
RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1921ВГ015 и защита прошивки

Сообщение RabidRabbit »

Предлагаю почитать "Быстрый старт".
А ещё взглянуть сюда
ea
Администратор
Сообщения: 115
Зарегистрирован: 10 окт 2014, 09:08

Re: К1921ВГ015 и защита прошивки

Сообщение ea »

Максим_Е писал(а): 30 апр 2026, 18:17
petrd писал(а): 10 сен 2025, 10:03 Все логично. Мне надо было просто внимательно читать руководство, в котором все есть "Во время сброса микроконтроллера анализируется состояние вывода SERVEN. Если вывод находится в состоянии логической единицы (подтянут к 3,3 В), то Flash-память переводится в режим, в котором чтение запрещено (при чтении возвращаются нули). При этом игнорируется состояние бита JTAGEN. Далее по отладочному интерфейсу JTAG должна быть подана команда записи значения 0000_0100h в регистр SERVCTL блока PMUSYS, после чего будет активировано полное стирание всех областей основной и загрузочной памяти. По завершении процесса стирания в этом же регистре выставится флаг DONE".
Здравствуйте!
Поясните, пожалуйста, процесс подачи команды. Как происходит запись значения 0000_0100h в регистр SERVCTL блока PMUSYS?
Мое понимание последовательности:
1. создать файл main.c, написать код обращения к регистру SERVCTL с записью в него 0000_0100h, скомпилировать код
2. отключить питание контроллера
3. подтянуть вывод SERVEN к плюсу через резистор, например, 10 кОм
4. включить питание контроллера, подключив программатор J-link к компьютеру
5. запустить процесс прошивки из среды Синтакоре
6. отключить питание и убрать резистор, либо подтянуть вывод SERVEN к минусу
7. снова подключить программатор
8. открыть написанную рабочую программу и ее, уже без проблем, записать в контроллер или запустить ее отладку
Такая последовательность?
Добрый день.
Последовательность полного стирания всей Flash памяти следующая:
1. подтянуть вывод SERVEN к +3,3В через резистор, например, 10 кОм
2. включить питание контроллера, подключить программатор J-link к ПК.
3. с использованием OpenOCD по отладочному интерфейсу JTAG подать команду записи значения 0x100 в регистр SERVCTL блока PMUSYS.

Пример команды OpenOCD для активации сервисного сброса всей Flash-памяти при
использовании отладчика, установленного на плате макетно-отладочной
«КФДЛ.441461.029» и команд flash-драйвера k1921vg015:
openocd" -s scripts -f interface/ftdi/onboard_ftdi.cfg -f target/k1921vg015.cfg -c
"k1921vg015 srv_erase"

Пример команды OpenOCD для активации сервисного сброса всей Flash-памяти при
использовании отладчика, установленного на плате макетно-отладочной
«КФДЛ.441461.029» без команд flash-драйвера k1921vg015:
openocd" -s scripts -f interface/ftdi/onboard_ftdi.cfg -f target/k1921vg015.cfg -c
"write_memory 0x3000F104 32 {0x100}" -c "sleep 100" -c "read_memory 0x3000F104 32 1"
Также скрипты сервисного сброса всей Flash-памяти доступны в каталоге
«tools/openocd» репозитория проектов для К1921ВГ015

4. убрать "подтяжку" с вывода SERVEN
5. Выключить - включить микроконтроллера для отключения сервисного режима.
Максим_Е
Сообщения: 15
Зарегистрирован: 12 апр 2026, 13:44
Предприятие: Самозанятый

Re: К1921ВГ015 и защита прошивки

Сообщение Максим_Е »

Спасибо за ответ. Но у меня плата своя, не покупая и при запуске скрипта консоль выдаёт следующее сообщение (фото). Что это означает я пока не понял и продолжаю искать ответ.
Screenshot_20260513_125830.jpg
Screenshot_20260513_125830.jpg (166.6 КБ) 323 просмотра
Максим_Е
Сообщения: 15
Зарегистрирован: 12 апр 2026, 13:44
Предприятие: Самозанятый

Re: К1921ВГ015 и защита прошивки

Сообщение Максим_Е »

Из этих скриптов, скаченных архивом, запускал первый через командную строку
Screenshot_20260513_133359.jpg
Screenshot_20260513_133359.jpg (118.42 КБ) 322 просмотра
Romanov_AA
Сообщения: 2
Зарегистрирован: 15 май 2026, 16:57
Предприятие: HomeWork

Re: К1921ВГ015 и защита прошивки

Сообщение Romanov_AA »

Прописанный в скрипте путь к OpenOCD или к cfg файлу не совпадает с фактическим на данном ПК.
Максим_Е писал(а): 13 май 2026, 13:03 Что это означает я пока не понял и продолжаю искать ответ.
Максим_Е
Сообщения: 15
Зарегистрирован: 12 апр 2026, 13:44
Предприятие: Самозанятый

Re: К1921ВГ015 и защита прошивки

Сообщение Максим_Е »

Да, эту ошибку уже исправил. О ней мне дали пояснения в ветке форума "К1921ВГ015 общее". За ваш ответ большое спасибо!
Ответить

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