stapleman 0 23 января, 2019 Опубликовано 23 января, 2019 · Жалоба Добрый день.Суть проблемы (задачи). Есть проект под IAR для МК stm32f. В проект в отдельном файле есть константная структура, которая инициализирована не нулевыми значениями. Необходимо при сборке проекта сформировать 2 bin-файла: в 1-ом должна содержаться только константная структура, а во 2-ом код прошивки без структуры. Моё "не идеальное" решение. В файле линковки завёл отдельный регион. Этот регион расположил по фиксированному адресу в конце flash МК. В этот регион линкую файл с константой структурой. Формирую bin-файл средствами iar-а. А затем разрезаю его на отдельных bin-файла внешним скриптом. В чем "не идеальность": 1. При отладке в МК зашивается прошивка размеров во всю flash. Т.к. промежуток между самой прошивкой и константой структурой заполняется нулями. При этом "полезная" часть прошивки занимает значительно меньше места. В итоге, лишнее время ожидания. 2. После разрезания bin-файл с прошивкой тоже значительно большего размера, чем его "полезная" часть. Что ведёт к некоторым сложностям у меня в дальнейшем. 3. Необходимость внешнего скрипта.Вопрос. Может быть уже кто-то сталкивался с подобной задачей и решил её более "красивым" способом. Вообще, аналог моей константой структуры - это дефолтное значение eeprom. И вроде, для МК с eeprom на борту задача формирования отдельного файла с дефолтными значениями eeprom должна была у кого-то всплыть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 26 23 января, 2019 Опубликовано 23 января, 2019 · Жалоба Не очень однозначно-понятно, что есть " в отдельном файле есть константная структура," - это исходник или объектный файл, или бинарный образ ? В одном Workspace (там где "рабочий" project ) создаете еще один проект, с темже файлом линкера и включаете в исходники для этого проекта только тот, что " в отдельном файле есть константная структура". Компилировать-линковать надо будет 2 проекта в этом WS - основной и "вспомогательный". Получите 2 файла прошивки, "1-без-2" и "2-без-1". Кроме того посмотрите опции компилятора, там есть работа с raw-образами памяти для загрузки в прошивку (сам не использовал). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HardEgor 63 23 января, 2019 Опубликовано 23 января, 2019 · Жалоба 2 часа назад, stapleman сказал: 1. При отладке в МК зашивается прошивка размеров во всю flash. Т.к. промежуток между самой прошивкой и константой структурой заполняется нулями. Программатор может перед записью стирать либо всю флэш, либо посекторно. Вам нужен второй вариант. Естественно программа и данные должны линковаться в разные сектора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться