@Klaxons

Почему stm32 не стартует после прошивки?

Суть проблемы в следующем, прошиваю stm32f103 своей прошивкой, в режиме дебага по openocd все ок, все работает, когда заливаю прошивку по st-flash ничего не работает.

Пробовал чистить/удалять всю сборку и собирать заново, все также. Заливаю бинарник по правильному адресу 0x8000000.

Как мне кажется проблема с линковщиком, так как залил пример с blink все прошло хорошо и светодиод мигает, а моя прошивка не воспроизводится. Эта же прошивка, скомпиленная и залитая через Keil работает на ура.

Память проверил и флешах тоже, все ок

MEMORY
{
  RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 20K
  CCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 0
  FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 64K
  FLASHB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  EXTMEMB0 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  EXTMEMB1 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  EXTMEMB2 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  EXTMEMB3 (rx) : ORIGIN = 0x00000000, LENGTH = 0
  MEMORY_ARRAY (xrw)  : ORIGIN = 0x00000000, LENGTH = 0
}


UPD: оказалось, что прошивка занимала больше места, чем вмещается на флеш памяти и в режиме дебага как-то могли это обойти, а в режиме релиза требовалась оптимизация, при этом темплейт проекта в эклипсе никак не обработал данную ошибку и, не обращая внимания на финальный размер файла, я его пытался шить. Вылечилось рефакторингом, оптимизацией кода и компилятора
  • Вопрос задан
  • 1050 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы