К1946ВК035 проблемы с загрузчиком (flasher)

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

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

RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение RabidRabbit »

Ещё одно - тактирование в загрузчике настраивается от внутренного RC-генератора, который может "плавать", и даже автоопределение скорости не спасёт.
RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение RabidRabbit »

И ещё - на скорости последовательного порта 19200 всё прекрасно работает. Собрано с -Os -flto=auto -ffat-lto-objects
lukegluke
Сообщения: 6
Зарегистрирован: 16 апр 2026, 14:35
Предприятие: -

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение lukegluke »

RabidRabbit писал(а): 29 апр 2026, 20:07 Загрузчик не лезет в NVR область (сборка RELEASE) ;)
Странно, у меня влезало - ~2.5КБ билдилось из коробки с -Os.
RabidRabbit писал(а): 04 май 2026, 13:45 Чтение слова состояния при запуске и чтение секторов (нескольких) вроде работает. Помогло добавление __DSB(); перед __NOP(); в функции flash_cmd().
Запись пока не работает.
А как именно не работало, такая же дичь как я описал или что-то другое?
Мне добавление __DSB(); не помогло.
RabidRabbit писал(а): 04 май 2026, 19:46 Ещё одно - тактирование в загрузчике настраивается от внутренного RC-генератора, который может "плавать", и даже автоопределение скорости не спасёт.
Попробовал и от внешнего кварца тактировать - такой же результат (обычные прошивки, в том числе "сложная" MCD работают без проблем с -Os)
RabidRabbit писал(а): 04 май 2026, 21:59 И ещё - на скорости последовательного порта 19200 всё прекрасно работает.
В прошивке фиксировали или просто работаете на 19200 через автоопределение? Всё работает = и предыдущих проблем с записью проблем тоже нет? Я пока такого успеха не добился.
RabidRabbit писал(а): 04 май 2026, 21:59 Собрано с -Os -flto=auto -ffat-lto-objects
У меня с такими опциями билдится:

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

арм-none-eabi-gcc -mcpu=кортекс-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-builtin -flto -ffat-lto-objects -mlong-calls -g3 -std=gnu11 -fsingle-precision-constant
(-flto=auto тоже попробовал, всё так же)

А можете свои прислать?
А ещё готовой прошивкой поделится, пожалуйста, которая у вас работает.
Последний раз редактировалось lukegluke 12 май 2026, 12:42, всего редактировалось 1 раз.
lukegluke
Сообщения: 6
Зарегистрирован: 16 апр 2026, 14:35
Предприятие: -

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение lukegluke »

lukegluke писал(а): 12 май 2026, 12:36 арм-none-eabi-gcc -mcpu=кортекс-m4
Удивительно с чего вдруг форум преобразовывает a rm и c ortex в русский))
RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение RabidRabbit »

Приложил изменённые файлы и готовую сборку.
У меня работает без ошибок, если подключаться на скорости 19200 (автоопределение). Возможно, оригинал тоже на 19200 будет работать :)
Вложения
boot035.bin.7z
(1.98 КБ) 8 скачиваний
firmware_changes.7z
(11.68 КБ) 12 скачиваний
RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение RabidRabbit »

lukegluke писал(а): 12 май 2026, 12:39 Удивительно с чего вдруг форум преобразовывает a rm и c ortex в русский))
Я так понимаю, чтобы не палиться на поисковиках по этим ключевым словам :)
RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение RabidRabbit »

Есть ещё идея перенести таблицу векторов прерываний в ОЗУ.
RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение RabidRabbit »

Перенос векторов прерываний в ОЗУ проблему решает. Теперь и на 115200 работает.
В приложенном архиве на всяк случай изменения для переноса векторов прерываний в ОЗУ (изменения относительно предыдущего архива).
Вложения
firmware_changes_2.7z
(4.2 КБ) 7 скачиваний
RabidRabbit
Сообщения: 161
Зарегистрирован: 10 июн 2025, 12:11
Предприятие: HomeWork

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение RabidRabbit »

На всяк случай бинарник для проверки.
Вложения
boot035.bin.7z
(2.01 КБ) 6 скачиваний
lukegluke
Сообщения: 6
Зарегистрирован: 16 апр 2026, 14:35
Предприятие: -

Re: К1946ВК035 проблемы с загрузчиком (flasher)

Сообщение lukegluke »

RabidRabbit писал(а): 12 май 2026, 16:00 Приложил изменённые файлы и готовую сборку.
У меня работает без ошибок, если подключаться на скорости 19200 (автоопределение). Возможно, оригинал тоже на 19200 будет работать :)
RabidRabbit писал(а): 12 май 2026, 16:59 Перенос векторов прерываний в ОЗУ проблему решает. Теперь и на 115200 работает.
В приложенном архиве на всяк случай изменения для переноса векторов прерываний в ОЗУ (изменения относительно предыдущего архива).
Большое спасибо за код! Действительно работает. Хотел понять, что же конкретно всё таки чинит, пробовал потихоньку применять изменения отдельными логическими кусками с оригинальными startup и ld скриптами, однако успеха не добился, была надежда на RAMFUNC, но нет.
Получается дело почему-то именно в скриптах, дальше не углублялся, может потом ещё покапаюсь, но главное уже есть рабочий вариант.
Ещё раз спасибо за участие и помощь 🤝
Ответить

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