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

Переменная во флеш памяти в GCC

в IAR это делается просто

#pragma location = 0x00003FD8
__root const uint32_t magic_num1 = BOOT_PRESENT_MAGIC_NUMBER;

а в GCC есть подобная прагма? без секций и ковыряния в линкере.

Изменено пользователем haker_fox
Уточнил название темы, переместил в подходящий раздел.

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


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

Нужно поместить переменную (вернее, константу) по определенному адресу во флеш или просто затолкать ее во флеш? 

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


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

On 12/18/2022 at 4:24 PM, Variant99 said:

Нужно поместить переменную (вернее, константу) по определенному адресу во флеш или просто затолкать ее во флеш? 

константа. я её потом только читаю. она мне говорит что бутовая секция была записанна успешно.

Изменено пользователем jenya7

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


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

On 12/18/2022 at 5:17 PM, jenya7 said:

а в GCC есть подобная прагма? без секций и ковыряния в линкере.

Без секций никак.

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


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

On 12/18/2022 at 5:45 PM, jenya7 said:

печаль. 

Я почему вы боитесь в скрипт линкера залезть ?

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


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

On 12/18/2022 at 4:47 PM, dimka76 said:

Я почему вы боитесь в скрипт линкера залезть ?

да задолбался. все линкеры латаные перелатаные. потом начинаешь проект и тупишь пытаясь вспомнить где что менял.

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


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

1 minute ago, jenya7 said:

все линкеры латаные перелатаные. потом начинаешь проект и тупишь пытаясь вспомнить где что менял.

Мне кажется, что скрипты для линкера не такие уж и мудрёные произведения, не "Война и мир" по сравнению с кодом. Можно же комментарии добавлять.

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


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

On 12/18/2022 at 4:52 PM, haker_fox said:

Мне кажется, что скрипты для линкера не такие уж и мудрёные произведения, не "Война и мир" по сравнению с кодом. Можно же комментарии добавлять.

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

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


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

17 minutes ago, jenya7 said:

но я стараюсь не патчить линкеры

Не патчить? КМК, речь идёт о настройке проекта. Линковка - стандартный процесс сборки проекта, следовательно линкер нобходимо настраивать. Скорее это этап программирования, чем пропатчивание. Я вообще не стесняюсь писать эти скрипты с нуля. Зато в них легко разобраться потом. Правда начальство не очень одобряет сей подход. Ведь мои скрипты не открываются в среде программирования (IAR) и их уже не настроишь через диалоговое окно, меняя числа и двигая бегунки)

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


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

On 12/18/2022 at 6:51 PM, x893 said:

__attribute__((at(...)))

Нет в GCC такого.

https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Variable-Attributes.html

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


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

14 часов назад, jenya7 сказал:

но я стараюсь не патчить линкеры и другие конфигурационные файлы

Их не надо "патчить" их надо писать. Точно так же как и файлы исходников (которые тоже нужно писать самому, а не "патчить" чьи-то нагугленные в инете).

Файлы описания для линкера - это часть исходников. Подобно .c/.cpp/.asm

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


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

Magic Number проще всего положить в незадействованый вектор в таблице векторов прерываний.

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


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

On 12/19/2022 at 9:23 AM, VladislavS said:

Magic Number проще всего положить в незадействованый вектор в таблице векторов прерываний.

Или сразу после таблицы

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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