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

 
 
 
Reply to this topicStart new topic
> Фиксация секции
VictorsProg
сообщение Nov 21 2016, 10:58
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 8-10-16
Пользователь №: 93 664



Доброго времени суток.
Я применяю ARM freescale. компилятор gcc

Я расположил переменные в определённой секции.
Код
/*скрипт линкёра*/
    .mod :
    {
        *(.mod)
    } > m_text2

Код
//код
uint8_t var __attribute__ ((section(".mod")));

Подскажите, возможно секцию mod зафиксировать по определенному адресу?
Например в 0x2700.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 21 2016, 11:05
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(VictorsProg @ Nov 21 2016, 13:58) *

Можно, поправив скрипт линкера.
Но надо помнить, что гнушный линкер не позволяет создавать секции с дырками, т.е. секция text, например, должна быть непрерывной.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
VictorsProg
сообщение Nov 21 2016, 12:26
Сообщение #3





Группа: Участник
Сообщений: 6
Регистрация: 8-10-16
Пользователь №: 93 664



Цитата(demiurg_spb @ Nov 21 2016, 11:05) *
Но надо помнить, что гнушный линкер не позволяет создавать секции с дырками, т.е. секция text, например, должна быть непрерывной.


А возможны дырки между секциями?
например между mod1 И mod2.

Цитата
Можно, поправив скрипт линкера.

Вы могли бы привести пример как это можно сделать?

Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 21 2016, 12:45
Сообщение #4


Гуру
******

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



QUOTE (VictorsProg @ Nov 21 2016, 15:26) *
А возможны дырки между секциями?
Да.

QUOTE (VictorsProg @ Nov 21 2016, 15:26) *
Вы могли бы привести пример как это можно сделать?
Посмотрите внимательно на объявление региона m_text2 в вашем скрипте. Заведите по аналогии свой регион в нужных адресах и кладите в него нужные секции.


--------------------
На любой вопрос даю любой ответ
"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
AVI-crak
сообщение Nov 21 2016, 17:02
Сообщение #5


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

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Как это - дырки между секциями???
По дефолту gcc самостоятельно может заполнить первую секцию, для второй необходимо ручным способом помечать функции и дату.
Однако мне ентересно, как gcc будет лить автоматом то, что не влезло в первую секцию.
Желательно с наскальными рисунками.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 21 2016, 17:25
Сообщение #6


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(AVI-crak @ Nov 21 2016, 20:02) *

В случае с гнушным линкером возможны лишь дырки между РАЗНЫМИ секциями. Автоматом никто никуда ничего лить не будет.
Ну а, например, IAR может работать и с рваными секциями. Интересуетесь как - почитайте доку на линкер от IAR.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
VictorsProg
сообщение Nov 22 2016, 12:57
Сообщение #7





Группа: Участник
Сообщений: 6
Регистрация: 8-10-16
Пользователь №: 93 664



Цитата(Сергей Борщ @ Nov 21 2016, 12:45) *
Да.

Посмотрите внимательно на объявление региона m_text2 в вашем скрипте. Заведите по аналогии свой регион в нужных адресах и кладите в него нужные секции.


спасибо
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:42
Рейтинг@Mail.ru


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