реклама на сайте
подробности

 
 
> Проблема сделать Release, Проц STM32F100R4
XGoblinX
сообщение May 3 2011, 13:35
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 13-12-10
Пользователь №: 61 586



Всем привет.

Не могу понять как релиз собрать.
Запускается из под дебага с J-Link безупречно, но нужно, чтобы оно без джитага работало.
Делаю так: Progect
Edit Configuration
Дальше из Debug делаю Release.
В опциях на релиз убираю просто отладочную инфу.
В проекте макродефайны в опциях оставляю те же. Вектора гружу в 0ой сектор. В общем всё то же самое.

Что именно нужно сделать чтобы всё было?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
VladislavS
сообщение May 3 2011, 20:11
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140



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

Для компилятора разделение 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?

Цитата(XGoblinX @ May 3 2011, 17:35) *
Что именно нужно сделать чтобы всё было?

Хороший даташит и его полное прочтение, хэлпы от компилятора почитать внимательно. Сказать компилятору сделать программу в точности так как написано в даташите на процессор. Прошить и запустить sm.gif
Go to the top of the page
 
+Quote Post
XGoblinX
сообщение May 4 2011, 07:44
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 43
Регистрация: 13-12-10
Пользователь №: 61 586



Цитата(VladislavS @ May 3 2011, 21:11) *
...

Спасибо большое! Очень развёрнуто!
Напомнили мне про BOOT0 BOOT1 и вспомнил, что схемотехник и тот и другой вариант предусмотрел (притягивать туда или туда).
Перепаяли мне резюк и всё залетало под дебагом даже )
Спасибо!

Сообщение отредактировал XGoblinX - May 4 2011, 07:50
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 06:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.0137 секунд с 7
ELECTRONIX ©2004-2016