Страница 2 из 3
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 04 май 2026, 19:46
RabidRabbit
Ещё одно - тактирование в загрузчике настраивается от внутренного RC-генератора, который может "плавать", и даже автоопределение скорости не спасёт.
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 04 май 2026, 21:59
RabidRabbit
И ещё - на скорости последовательного порта 19200 всё прекрасно работает. Собрано с -Os -flto=auto -ffat-lto-objects
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 12 май 2026, 12:36
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 тоже попробовал, всё так же)
А можете свои прислать?
А ещё готовой прошивкой поделится, пожалуйста, которая у вас работает.
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 12 май 2026, 12:39
lukegluke
lukegluke писал(а): ↑12 май 2026, 12:36
арм-none-eabi-gcc -mcpu=кортекс-m4
Удивительно с чего вдруг форум преобразовывает a rm и c ortex в русский))
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 12 май 2026, 16:00
RabidRabbit
Приложил изменённые файлы и готовую сборку.
У меня работает без ошибок, если подключаться на скорости 19200 (автоопределение). Возможно, оригинал тоже на 19200 будет работать

Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 12 май 2026, 16:13
RabidRabbit
lukegluke писал(а): ↑12 май 2026, 12:39
Удивительно с чего вдруг форум преобразовывает a rm и c ortex в русский))
Я так понимаю, чтобы не палиться на поисковиках по этим ключевым словам

Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 12 май 2026, 16:34
RabidRabbit
Есть ещё идея перенести таблицу векторов прерываний в ОЗУ.
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 12 май 2026, 16:59
RabidRabbit
Перенос векторов прерываний в ОЗУ проблему решает. Теперь и на 115200 работает.
В приложенном архиве на всяк случай изменения для переноса векторов прерываний в ОЗУ (изменения относительно предыдущего архива).
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 13 май 2026, 19:17
RabidRabbit
На всяк случай бинарник для проверки.
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Добавлено: 13 май 2026, 20:25
lukegluke
RabidRabbit писал(а): ↑12 май 2026, 16:00
Приложил изменённые файлы и готовую сборку.
У меня работает без ошибок, если подключаться на скорости 19200 (автоопределение). Возможно, оригинал тоже на 19200 будет работать
RabidRabbit писал(а): ↑12 май 2026, 16:59
Перенос векторов прерываний в ОЗУ проблему решает. Теперь и на 115200 работает.
В приложенном архиве на всяк случай изменения для переноса векторов прерываний в ОЗУ (изменения относительно предыдущего архива).
Большое спасибо за код! Действительно работает. Хотел понять, что же конкретно всё таки чинит, пробовал потихоньку применять изменения отдельными логическими кусками с оригинальными startup и ld скриптами, однако успеха не добился, была надежда на RAMFUNC, но нет.
Получается дело почему-то именно в скриптах, дальше не углублялся, может потом ещё покапаюсь, но главное уже есть рабочий вариант.
Ещё раз спасибо за участие и помощь
