Согласно моему пониманию ниже команда загружает значение «__image_copy_start» в регистр r1.как присвоено значение __image_copy_start в U-boot
ldr r1, =__image_copy_start
Я пытаюсь понять, как присваивается значение «__image_copy_start». Я не мог найти оператор присваивания, который присваивает значение «__image_copy_start», но я мог видеть следующие объявления в файле «arch/arc/lib/sections.c».
char __image_copy_start[0] __attribute__((section(".__image_copy_start")));
char __image_copy_end[0] __attribute__((section(".__image_copy_end")));
кажется __attribute__((section("")))
используется для размещения переменных в специальных разделах (В приведенном выше заявлении «__image_copy_start [0]» будут размещены в разделе «.__ image_copy_start»). Можете ли вы помочь понять следующее.
- Как присвоено значение "__image_copy_start [0]"?
- Почему «__image_copy_start» объявлен как массив «char __image_copy_start [0]« почему бы не «char __image_copy_start»?
Спасибо за ответ. Почему он объявлен как массив? В вашей таблице объектов ответа есть таблица символов? – user3693586
Его способ иметь на char, зарезервированном в разделе. Да, я имею в виду таблицу символов. – Antoine
Я мог видеть следующие две записи для «__image_copy_start» в таблице символов. Можете ли вы помочь понять это. # arm-linux-gnueabihf-objdump -t arch/arm/lib/sections.o; запись 1: 00000000 л д .__ image_copy_start \t 00000000 .__ image_copy_start вход 2: 00000000 г О .__ image_copy_start \t 00000000 __image_copy_start – user3693586