Search
Write a publication
Pull to refresh
1
0
Дмитрий @Dmitriy_MP

User

Send message

Хотел бы дополнить свой комментарий.

Все выше описанное я делал на чипе STM32F107VCT6 с пакетом обновлений FW_F1 V1.8.5 в CubeIDE 1.16.0, CubeMX 6.12.0 и программа не запускалась.

Я решил попробовать создать загрузчик и программу для другого чипа: STM32F417VGTx, и к моему удивлению все заработало! Загрузчик запускался и передавал управление программе прошитой со смещением.

Также проверил это и для чипа STM32F103C8Tx - тоже все работает как надо.

Сравнил файлы *.ld разных чипов. Ничего не обычного не нашел, что могло бы помешать запуску программы со смещением.

Единственное что я еще не сделал, так не пробовал понизить версию пакета обновлений. Возможно в этом есть смысл.

Как сделаю, отпишусь...

Всем привет!

А что делать если загрузчик не может запустить прошитую программу?

Имеется ввиду прошивку настроил как надо:

  • в *.ld указал смещение адреса ORIGIN = 0x08008000, LENGTH = 224K

  • в system_stm32f1xx.c тоже указал #define USER_VECT_TAB_ADDRESS и смещение VECT_TAB_OFFSET 0x8000

  • вначале main() тоже указал SCB->VTOR = START_ADDR;

Скомпилировал, прошил с адреса 0x08008000.

Но после работы загрузчика переход происходит, но программа не запускается.

Создавал проект загрузчика и тестовой программы в CubeIDE 1.16.

Самое главное что, раньше в uKeil и даже в System Workbench for STM32 все это работало на ура. А вот в CubeIDE не могу понять что не так.

Кстати, если в качестве тестовой программы залить прошивку скомпилированную с проекта System Workbench for STM32 то она запускается. т.е. получается, что где-то в настройках CubeIDE нужно еще что-то сделать, чтобы запуск программы удался.

Кто нибудь уже сталкивался с такой проблемой?

Information

Rating
Does not participate
Registered
Activity

Specialization

Embedded Software Engineer
From 400,000 ₸