Я хотел бы иметь два приложения во флеш-памяти STM32, одно в основном загрузочное, а другое - «основное» приложение. Я понял, как загружать каждый из них в разные области флеш-памяти, и после создания дампа памяти все выглядит так, как будто оно находится в нужном месте.
Поэтому, когда я делаю сброс, он загружает загрузку, все, что делает загрузка в данный момент, - это переход к приложению. Отлаживая загрузку, все это работает правильно. Однако проблемы возникают после того, как я совершил переход к приложению, оно просто выполняет одну инструкцию (сборку), а затем возвращается к загрузке. Он должен оставаться в приложении на неопределенный срок.
Тогда у меня вопрос, куда мне «прыгнуть» в приложении?
Кажется, есть несколько потенциальных точек, таких как векторы прерываний, обработчик сброса, основная функция приложения. На самом деле я пробовал все безуспешно.
Надеюсь, это имеет смысл, если нет, я обновлю вопрос.
Спасибо за вашу помощь! Ричард
Обновления:
- Я поигрался в отладчике и вручную изменил счетчик программы на основной в приложении, и хорошо, что это сработало, так что это заставляет меня думать, что с моим прыжком что-то не так, почему счетчик программ не продолжает работать после прыжка?
- На самом деле, похоже, это PSR, буква T сбрасывается при прыжке, если я снова установлю ее после прыжка, она продолжит работу с приложением, как я хочу
- Хорошо, нашел решение, похоже, вам нужно установить LSB ПК в 1, когда вы выполняете ветвление, или он переходит в режим «ARM» (32-битная инструкция вместо 16-битных инструкций, как в режиме «большого пальца». небольшая непонятная проблема, спасибо, что позволили мне поделиться ею с вами!