LINUX.ORG.RU

GCC, адрес массива


0

2

Как разместить массив в памяти по определённому адресу?
Пробовал выровнять его с помощью определения массивов до и после него, но это не помогает: gcc размещает так как ему удобно.

char stub0[N0];
char buff[N];
char stub1[N1];

В num-файле они располагаются в другом порядке:

buff
stub0
stub1

Может кто знает какую-нибудь директиву или атрибут для указания адреса?


Если выровнять, то он вроде сам выравнивает (что собственно и наблюдается). Если разместить по нужному адресу, то это к линковщику.

KblCb ★★★★★
()
Ответ на: комментарий от arsi

Скорее выровнять: адрес должен начинаться с границы, кратной 1024

Попробовал задать атрибут aligned:

char buff[N] __attribute__ ((aligned (4096)));

Помогло! Благодарю за ссылку!

KUser
() автор топика

Очень интересно, а зачем?

svu ★★★★★
()
Ответ на: комментарий от one_more_hokum

Физический: пишу для одной системы, в которой память устройства отображена в файл на другой машине. И для удобства чтения/записи с помощью dd данные желательно выровнять

KUser
() автор топика

это возможно, но это будет прибивание гвоздями к конкретном компилятору.

Deleted
()
Ответ на: комментарий от Deleted

Он и так жёстко задан, поскольку компилируется под специфическое железо

KUser
() автор топика
Ответ на: комментарий от arsi

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

KUser
() автор топика
Ответ на: комментарий от shty

Это нужно для чтения/записи памяти одного устройства, которая представлена файлом в /dev .
Для работы с устройством уже написаны некоторые скрипты и ПО, поэтому приходится так извращаться.
Автор исходной системы не я, так что приходится приспосабливаться к тому что есть.

KUser
() автор топика
Ответ на: комментарий от KUser

Это нужно для чтения/записи памяти одного устройства, которая представлена файлом в /dev . Для работы с устройством уже написаны некоторые скрипты и ПО, поэтому приходится так извращаться. Автор исходной системы не я, так что приходится приспосабливаться к тому что есть.

аж мурашки по коже, сочувствую и желаю удачи

shty ★★★★★
()

В структуру его! В структуру!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.