XGoblinX 0 3 мая, 2011 Опубликовано 3 мая, 2011 · Жалоба Всем привет. Не могу понять как релиз собрать. Запускается из под дебага с J-Link безупречно, но нужно, чтобы оно без джитага работало. Делаю так: Progect Edit Configuration Дальше из Debug делаю Release. В опциях на релиз убираю просто отладочную инфу. В проекте макродефайны в опциях оставляю те же. Вектора гружу в 0ой сектор. В общем всё то же самое. Что именно нужно сделать чтобы всё было? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 3 мая, 2011 Опубликовано 3 мая, 2011 · Жалоба Вижу какое-то глобальное недопонимание. Давай с начала по полочкам. Для компилятора разделение 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 0 4 мая, 2011 Опубликовано 4 мая, 2011 (изменено) · Жалоба ... Спасибо большое! Очень развёрнуто! Напомнили мне про BOOT0 BOOT1 и вспомнил, что схемотехник и тот и другой вариант предусмотрел (притягивать туда или туда). Перепаяли мне резюк и всё залетало под дебагом даже ) Спасибо! Изменено 4 мая, 2011 пользователем XGoblinX Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться