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

 
 
> Впрос по размещению строковых констант, в AVRGCC
MVJ
сообщение Jul 7 2014, 12:37
Сообщение #1


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

Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119



AVRGCC по умолчанию размещает строковые константы, например
const char FirmwareVersion[] PROGMEM = "1.00";
непросредственно после таблицы векторов прерываний.
Есть ли возможность разместить ОДНУ такую константу НЕПРОСРЕДСВЕННО ПОСЛЕ всего кода программы?

Сообщение отредактировал MVJ - Jul 7 2014, 12:43
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Сергей Борщ
сообщение Jul 7 2014, 16:38
Сообщение #2


Гуру
******

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



Код
    __attribute__((section(".mysection")))
    char const HEX_convert[] = "0123456789ABCDEF";

В скрипте линкера указать, куда размещать секцию .mysection
Без правки скрипта линкера не обойтись.


--------------------
На любой вопрос даю любой ответ
"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
MVJ
сообщение Jul 8 2014, 09:10
Сообщение #3


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

Группа: Участник
Сообщений: 172
Регистрация: 9-10-06
Пользователь №: 21 119



Цитата(Сергей Борщ @ Jul 7 2014, 19:38) *
В скрипте линкера указать, куда размещать секцию .mysection
Без правки скрипта линкера не обойтись.

Если так, то нужно указывать конкретный адрес размещения .mysection. А мне нужно разместить ее сразу за кодом программы без разрывов (чтобы последний байт кода программы и .mysection попали в один сегмент флеша). Можно, конечно, каждый раз проделывать это в 2 приема (с правкой адреса размещения), но может есть какой более цивилизованный способ.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 8 2014, 09:51
Сообщение #4


Гуру
******

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



Цитата(MVJ @ Jul 8 2014, 12:10) *
Если так, то нужно указывать конкретный адрес размещения .mysection
Нет, не надо. Но вам придется изучить структуру скриптов линкера и именно в этом скрипте указать, куда размещать .mysection
У меня нет возможности и желания пересказывать здесь доступную в интернете документацию на линкер. Когда у меня была похожая на вашу задача - я прочитал эту документацию и разобрался. Прочитайте и вы. В двух словах это не описать и одним щелчком мышки это не делается.


--------------------
На любой вопрос даю любой ответ
"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

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

 


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


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