ALIGN в скриптах компоновщика - PullRequest
12 голосов
/ 10 декабря 2011

Что делает ключевое слово ALIGN в скриптах компоновщика?Я прочитал много уроков о скриптах компоновщика, но не могу понять, что на самом деле делает ALIGN.Может ли кто-нибудь объяснить это просто.Спасибо!

Ответы [ 3 ]

19 голосов
/ 11 декабря 2011

Типичное использование

. = ALIGN(8);

Это означает: вставлять байты заполнения до тех пор, пока текущее местоположение не будет выровнено по 8-байтовой границе. То есть:

while ((current_location & 7) != 0)
  *current_location++ = padding_value;
1 голос
/ 14 сентября 2018

Инструкции ALIGN () сообщают компоновщику, что раздел (bss, текст) должен быть настолько выровнен.

Для типичной идеи вы можете посмотреть здесь

например

    //.data is aligned by word size on the 32-bit architecture and direct it to the data section
For a 32-bit machine, it typically needs to be word aligned 

        .data : ALIGN(4) 
        {
           *(.data*)
        } > data_sdram
0 голосов
/ 13 сентября 2018

.= ALIGN (8)

Соответствует следующему (пример сценария рабочей ссылки с использованием операторов):

data = .;

. = ((data + 0x8 - 1) & ~(0x8 - 1)) - data;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...