Ошибка при передаче большой структуры по значению в ядре Aarch64C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка при передаче большой структуры по значению в ядре Aarch64

Сообщение Anonymous »

Я разрабатываю простое ядро ​​Aarch64. Проблема исчезает, если структура имеет 16 байтов. < /P>

env < /p>
Qemu Emulator Версия 9.0.2 < /p>
aarch64-linux-gnu-g ++ (ubuntu 14.2.0-4ubuntu2) 14.2.0 < /p> p> p> p> p> p> p> p> p> p> p> p> p> p> p> p> p> p> pro-gnu-gnu-gnu-gnu-gnu-gnu (ubuntu 14.2.0-4ubuntu2) /> < /ul>
main.cpp

extern "C" void _start() {
asm volatile("ldr x11, =stack_top\n\t"
"mov sp, x11\n\t"
"bl main\n\t");
}

void putc(char character) { *(char *)0x9000000 = character; }

struct param_t {
char data[15]; // Work if 16
};

void callee(param_t var) { putc('a'); }

void main() {
putc('0');
callee({});
putc('1');
}
< /code>
Команда строительства < /pbr /> # build on ubuntu
aarch64-linux-gnu-g++ -ffreestanding -nostdlib -Wl,--entry=_start -Wl,--section-start=.text=0x40100000 -Wl,--defsym=stack_top=0x40101000 -o aarch64_minimal main.cpp

# Run in QEMU
qemu-system-aarch64 -nographic -serial stdio -monitor telnet::2333,server,nowait -m 1024M -machine virt -cpu cortex-a72 -kernel aarch64_minimal


Подробнее здесь: https://stackoverflow.com/questions/795 ... h64-kernel
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»