Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как в коде C/C++ получить адрес section?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Sagittarius
Здравствуйте.

В файле .icf описаны символы, блоки, секции. Возможно ли как то получить эти значения в коде C/C++?
Если более конкретно: есть section во Flash, в которой хранится конфиг устройства. Если просто положить переменную в эту секцию (а секция в старших адресах флеша) то вырастает объем .bin файла прошивки (эта переменная тоже включается в бинарник а между ней и основным кодом 200к пустого места). Сейчас решено просто работой через указатель с присвоением конкретного адреса. Но хотелось бы взять этот адрес именно из .icf, чтоб при изменениях расположения областей во flash все менялось бы в одном месте. Или может быть можно сделать на оборот: задать все сегменты в файле для компилятора с экспортом в линкер?

Спасибо.
_Артём_
Цитата(Sagittarius @ Sep 7 2013, 16:17) *
Возможно ли как то получить эти значения в коде C/C++?
Если более конкретно: есть section во Flash, в которой хранится конфиг устройства. Если просто положить переменную в эту секцию (а секция в старших адресах флеша) то вырастает объем .bin файла прошивки (эта переменная тоже включается в бинарник а между ней и основным кодом 200к пустого места). Сейчас решено просто работой через указатель с присвоением конкретного адреса. Но хотелось бы взять этот адрес именно из .icf, чтоб при изменениях расположения областей во flash все менялось бы в одном месте.


Используйте функции __section_begin, __section_end, __section_size:


Код
#pragma section="MYSECTION"
...
section_start_address = __section_begin("MYSECTION");





Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.