К1946ВК035 проблемы с загрузчиком (flasher)
Модераторы: ea, dav, bkolbov, Alis, pip, _sva_
-
RabidRabbit
- Сообщения: 161
- Зарегистрирован: 10 июн 2025, 12:11
- Предприятие: HomeWork
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Ещё одно - тактирование в загрузчике настраивается от внутренного RC-генератора, который может "плавать", и даже автоопределение скорости не спасёт.
-
RabidRabbit
- Сообщения: 161
- Зарегистрирован: 10 июн 2025, 12:11
- Предприятие: HomeWork
Re: К1946ВК035 проблемы с загрузчиком (flasher)
И ещё - на скорости последовательного порта 19200 всё прекрасно работает. Собрано с -Os -flto=auto -ffat-lto-objects
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Странно, у меня влезало - ~2.5КБ билдилось из коробки с -Os.
А как именно не работало, такая же дичь как я описал или что-то другое?RabidRabbit писал(а): ↑04 май 2026, 13:45 Чтение слова состояния при запуске и чтение секторов (нескольких) вроде работает. Помогло добавление __DSB(); перед __NOP(); в функции flash_cmd().
Запись пока не работает.
Мне добавление __DSB(); не помогло.
Попробовал и от внешнего кварца тактировать - такой же результат (обычные прошивки, в том числе "сложная" MCD работают без проблем с -Os)RabidRabbit писал(а): ↑04 май 2026, 19:46 Ещё одно - тактирование в загрузчике настраивается от внутренного RC-генератора, который может "плавать", и даже автоопределение скорости не спасёт.
В прошивке фиксировали или просто работаете на 19200 через автоопределение? Всё работает = и предыдущих проблем с записью проблем тоже нет? Я пока такого успеха не добился.RabidRabbit писал(а): ↑04 май 2026, 21:59 И ещё - на скорости последовательного порта 19200 всё прекрасно работает.
У меня с такими опциями билдится:
Код: Выделить всё
арм-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А можете свои прислать?
А ещё готовой прошивкой поделится, пожалуйста, которая у вас работает.
Последний раз редактировалось lukegluke 12 май 2026, 12:42, всего редактировалось 1 раз.
-
RabidRabbit
- Сообщения: 161
- Зарегистрирован: 10 июн 2025, 12:11
- Предприятие: HomeWork
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Приложил изменённые файлы и готовую сборку.
У меня работает без ошибок, если подключаться на скорости 19200 (автоопределение). Возможно, оригинал тоже на 19200 будет работать
У меня работает без ошибок, если подключаться на скорости 19200 (автоопределение). Возможно, оригинал тоже на 19200 будет работать
- Вложения
-
- boot035.bin.7z
- (1.98 КБ) 8 скачиваний
-
- firmware_changes.7z
- (11.68 КБ) 12 скачиваний
-
RabidRabbit
- Сообщения: 161
- Зарегистрирован: 10 июн 2025, 12:11
- Предприятие: HomeWork
-
RabidRabbit
- Сообщения: 161
- Зарегистрирован: 10 июн 2025, 12:11
- Предприятие: HomeWork
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Есть ещё идея перенести таблицу векторов прерываний в ОЗУ.
-
RabidRabbit
- Сообщения: 161
- Зарегистрирован: 10 июн 2025, 12:11
- Предприятие: HomeWork
Re: К1946ВК035 проблемы с загрузчиком (flasher)
Перенос векторов прерываний в ОЗУ проблему решает. Теперь и на 115200 работает.
В приложенном архиве на всяк случай изменения для переноса векторов прерываний в ОЗУ (изменения относительно предыдущего архива).
В приложенном архиве на всяк случай изменения для переноса векторов прерываний в ОЗУ (изменения относительно предыдущего архива).
- Вложения
-
- firmware_changes_2.7z
- (4.2 КБ) 7 скачиваний
-
RabidRabbit
- Сообщения: 161
- Зарегистрирован: 10 июн 2025, 12:11
- Предприятие: HomeWork
Re: К1946ВК035 проблемы с загрузчиком (flasher)
На всяк случай бинарник для проверки.
- Вложения
-
- boot035.bin.7z
- (2.01 КБ) 6 скачиваний
Re: К1946ВК035 проблемы с загрузчиком (flasher)
RabidRabbit писал(а): ↑12 май 2026, 16:00 Приложил изменённые файлы и готовую сборку.
У меня работает без ошибок, если подключаться на скорости 19200 (автоопределение). Возможно, оригинал тоже на 19200 будет работать![]()
Большое спасибо за код! Действительно работает. Хотел понять, что же конкретно всё таки чинит, пробовал потихоньку применять изменения отдельными логическими кусками с оригинальными startup и ld скриптами, однако успеха не добился, была надежда на RAMFUNC, но нет.RabidRabbit писал(а): ↑12 май 2026, 16:59 Перенос векторов прерываний в ОЗУ проблему решает. Теперь и на 115200 работает.
В приложенном архиве на всяк случай изменения для переноса векторов прерываний в ОЗУ (изменения относительно предыдущего архива).
Получается дело почему-то именно в скриптах, дальше не углублялся, может потом ещё покапаюсь, но главное уже есть рабочий вариант.
Ещё раз спасибо за участие и помощь
