Перейти к содержанию
    

Проблема сделать Release

Всем привет.

 

Не могу понять как релиз собрать.

Запускается из под дебага с J-Link безупречно, но нужно, чтобы оно без джитага работало.

Делаю так: Progect

Edit Configuration

Дальше из Debug делаю Release.

В опциях на релиз убираю просто отладочную инфу.

В проекте макродефайны в опциях оставляю те же. Вектора гружу в 0ой сектор. В общем всё то же самое.

 

Что именно нужно сделать чтобы всё было?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вижу какое-то глобальное недопонимание. Давай с начала по полочкам.

 

Для компилятора разделение Release и Debug чисто условное. В обоих случаях ты можешь включать или нет отладочную информацию, менять степень оптимизации и прочие настройки проекта. Разница начинается уже после того как линкер собрал выходной файл.

 

В варианте Debug скомпилированный файл прошивки, содержащий отладочную информацию, обычно загружается в ОЗУ и ему передаётся управление. Через J-tag осуществляется отладка. В принципе, ничто не мешает с помощью флэшлоадера поместить прошивку во FLASH и производить отладку, выполняя программу из FLASH. Нужен только флэшлоадер для твоего процессора и правильный конфигурационный макрос.

 

Результатом сборки Relaese обычно является только файл прошивки без отладочной информации. Этот файл потом нужно как-то поместить во FLASH и сказать процессору стартовать из FLASH. Одни из вариантов записи во FLASH - использование флэшлоадера как в режиме отладки.

 

Обрати внимание на следующее:

1. При запуске программы из SRAM при отладке или из FLASH при штатной работе адресное пространство распределено по разному. Сегменты данных, кода, cтэки и векторы прерываний обязательно правильно разместить в памяти. Это всё надо в настройках проекта установить. Попросить линкер сделать map-файл и проверить по каким адресам он всё разместил.

2. Я не работал с STM32, но беглый просмотр даташита говорит, что он может стартовать из FLASH, SRAM или системной памяти. После того как ты поместил прошивку во FLASH процессор надо перевести в режим старта из FLASH.

3. Каким способом ты помещаешь готовую прошивку во FLASH (прошиваешь)? Это можно сделать либо флэшлоадером через J-tag, либо бутлоадером процессора через UART, либо ... Да мало ли как, но в любом случае, ты должен чётко понимать что (файл прошивки), как и по каким адресам надо прошить.

4. Насчёт векторов прерываний. При старте из FLASH их не надо скопировать в SRAM?

 

Что именно нужно сделать чтобы всё было?

Хороший даташит и его полное прочтение, хэлпы от компилятора почитать внимательно. Сказать компилятору сделать программу в точности так как написано в даташите на процессор. Прошить и запустить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...

Спасибо большое! Очень развёрнуто!

Напомнили мне про BOOT0 BOOT1 и вспомнил, что схемотехник и тот и другой вариант предусмотрел (притягивать туда или туда).

Перепаяли мне резюк и всё залетало под дебагом даже )

Спасибо!

Изменено пользователем XGoblinX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...