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

 
 
> Переопределить дефолтные секции.
jcxz
сообщение Sep 13 2014, 08:55
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Подскажите пожалуйста: можно-ли в IAR переопределить дефолтные секции кода/данных для конкретного файла?
Типа #pragma location = ".some_section", но только не для конкретной функции/переменной, а для всего файла.
А то что-то в мануале к компилятору не найду.... sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
den_po
сообщение Sep 15 2014, 08:05
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



"грязь" можно украсить, сунув прагму в макрос. для этого есть вариант _Pragma()
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 15 2014, 11:31
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(den_po @ Sep 15 2014, 14:05) *
"грязь" можно украсить, сунув прагму в макрос. для этого есть вариант _Pragma()

Её станет меньше, но она останется wink.gif
Очень неудобно перед каждой функцией и после каждой переменной писать имя секции. Особенно когда их в файле - десятки.
И постоянно забываешь это сделать.

Цитата(SSerge @ Sep 15 2014, 14:43) *
Переопределить секции можно ключом компилятора:
--section OldName=NewName
добавив их в Options->C/C++Compiler->Extra Options
Чтобы не упражняться с дефайнами, может быть проще будет кроме Debug и Release создать несколько конфигураций с разными настройками (Project->Edit Configurations...).
В каждой конфигурации можно задать необходимые настройки, в том числе и определить символы (в разделе Options->C/C++Compiler->Preprocessor), тогда можно будет собирать проект с разными настройками без правки текстов.

О! Это хороший совет! спасибо!
У меня кстати как раз и определено несколько вариантов сборки (FLASH_DEBUG, RAM_DEBUG, FLASH_RELEASE, RAM_RELEASE),
и нужный мне дефайн (определяющий в какие секции памяти какие выходные секции компоновать) он и указывается в Extra options.
При выборе вариантов с RAM_.., он как раз компоновал readonly-секции в ОЗУ (для скорости отладки).
Но про --section OldName=NewName не знал. Значит впишу его туда.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 15 2014, 14:53
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(jcxz @ Sep 15 2014, 14:31) *
При выборе вариантов с RAM_.., он как раз компоновал readonly-секции в ОЗУ (для скорости отладки).
Не проще ли было сделать свой .icf для каждой конфигурации и в нем распихать стандартные секции как душе угодно, не трогая исходники вообще?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
jcxz
сообщение Sep 16 2014, 15:41
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Сергей Борщ @ Sep 15 2014, 20:53) *
Не проще ли было сделать свой .icf для каждой конфигурации и в нем распихать стандартные секции как душе угодно, не трогая исходники вообще?

У меня и так два .icf.
Но как сказать, что секцию ".text" из одного файла компоновать в одну область памяти, а ".text" из другого - в другую? Вы знаете как?
В CCS это сделать можно. В IAR не знаю как. Это было-бы идеальным решением - вообще не трогать исходник.
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 16 2014, 15:50
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(jcxz @ Sep 16 2014, 19:41) *
Но как сказать, что секцию ".text" из одного файла компоновать в одну область памяти, а ".text" из другого - в другую? Вы знаете как?

Как-как... В мануале английским по белому написано.
Цитата
where section-selector is:
[ section-attribute ][ section-type ][section sectionname ]
[object {module | filename } ]
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:01
Рейтинг@Mail.ru


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