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

Отдельный bin-файл для сегмента

Добрый день.
Суть проблемы  (задачи).

Есть проект под IAR для МК stm32f. В проект в отдельном файле есть константная структура, которая инициализирована не нулевыми значениями. Необходимо при сборке проекта сформировать 2 bin-файла: в 1-ом должна содержаться только константная структура, а во 2-ом код прошивки без структуры.

Моё "не идеальное" решение.

В файле линковки завёл отдельный регион. Этот регион расположил по фиксированному адресу в конце flash МК. В этот регион линкую файл с константой структурой. Формирую bin-файл средствами iar-а. А затем разрезаю его на отдельных bin-файла внешним скриптом.
В чем "не идеальность":
1. При отладке в МК зашивается прошивка размеров во всю flash. Т.к. промежуток между самой прошивкой и константой структурой заполняется нулями.
При этом "полезная" часть прошивки занимает значительно меньше места. В итоге, лишнее время ожидания.
2. После разрезания bin-файл с прошивкой тоже значительно большего размера, чем его "полезная" часть. Что ведёт к некоторым сложностям у меня в дальнейшем.
3. Необходимость внешнего скрипта.

Вопрос.
Может быть уже кто-то сталкивался с подобной задачей и решил её более "красивым" способом. Вообще, аналог моей константой структуры - это дефолтное значение eeprom. И вроде, для МК с eeprom на борту задача формирования отдельного файла с дефолтными значениями eeprom должна была у кого-то всплыть.

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


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

Не очень однозначно-понятно, что есть " в отдельном файле есть константная структура," - это исходник или объектный файл, или бинарный образ ?

В одном Workspace (там где "рабочий" project ) создаете еще один проект, с темже файлом линкера и включаете в исходники для этого проекта 

только тот, что " в отдельном файле есть константная структура". Компилировать-линковать надо будет 2 проекта в этом WS - основной и "вспомогательный".

Получите 2 файла прошивки, "1-без-2" и "2-без-1".

Кроме того посмотрите опции компилятора, там есть работа с raw-образами памяти для загрузки в прошивку (сам не использовал).

 

 

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


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

2 часа назад, stapleman сказал:

1. При отладке в МК зашивается прошивка размеров во всю flash. Т.к. промежуток между самой прошивкой и константой структурой заполняется нулями.

Программатор может перед записью стирать либо всю флэш, либо посекторно. Вам нужен второй вариант. Естественно программа и данные должны линковаться в разные сектора.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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