Когда сажаем SERVEN на плюс, JTAG как бы включается, но при этом способен принимать только те самые команды, которые сделают стирание, а другие игнорирует. Так что нет, вычитать паршивку всё равно не получится.
К1921ВГ015 и защита прошивки
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
Re: К1921ВГ015 и защита прошивки
Re: К1921ВГ015 и защита прошивки
Все логично. Мне надо было просто внимательно читать руководство, в котором все есть "Во время сброса микроконтроллера анализируется состояние вывода SERVEN. Если вывод находится в состоянии логической единицы (подтянут к 3,3 В), то Flash-память переводится в режим, в котором чтение запрещено (при чтении возвращаются нули). При этом игнорируется состояние бита JTAGEN. Далее по отладочному интерфейсу JTAG должна быть подана команда записи значения 0000_0100h в регистр SERVCTL блока PMUSYS, после чего будет активировано полное стирание всех областей основной и загрузочной памяти. По завершении процесса стирания в этом же регистре выставится флаг DONE".
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 и защита прошивки
Предлагаю почитать "Быстрый старт".
А ещё взглянуть сюда
А ещё взглянуть сюда
Re: К1921ВГ015 и защита прошивки
Добрый день.Максим_Е писал(а): ↑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. Выключить - включить микроконтроллера для отключения сервисного режима.
Re: К1921ВГ015 и защита прошивки
Спасибо за ответ. Но у меня плата своя, не покупая и при запуске скрипта консоль выдаёт следующее сообщение (фото). Что это означает я пока не понял и продолжаю искать ответ.
Re: К1921ВГ015 и защита прошивки
Из этих скриптов, скаченных архивом, запускал первый через командную строку
-
Romanov_AA
- Сообщения: 2
- Зарегистрирован: 15 май 2026, 16:57
- Предприятие: HomeWork
Re: К1921ВГ015 и защита прошивки
Да, эту ошибку уже исправил. О ней мне дали пояснения в ветке форума "К1921ВГ015 общее". За ваш ответ большое спасибо!
