Я пишу модуль ядра в Linux на архитектуре aarch64, который имеет глобальную структуру. Я работаю над устройством Pixel 8 (shiba) с callyxos, ядром AOSP (проект Android с открытым исходным кодом) [uname -r: 5.15.137-android14-11-gbc062a78e195-ab12057991].
< ul>
[*]Что я хочу:
sp регистр укажет на эту глобальную структуру, то есть я хочу, чтобы стек будет управляться внутри моей глобальной переменной.
[*]Что происходит:
Каждый раз, когда я устанавливаю sp, чтобы указать мою глобальную структуру, и получить доступ к этой памяти (например, с помощью инструкции stp), я сразу же получаю панику ядра из-за переполнения стека ядра.
[*]Вот пример код, вызывающий переполнение стека ядра KP:
mov x16, #0x12
mov x17, #0x34
mov x1, sp
ldr x0, =new_stack
mov sp, x0
stp x16, x17, [sp]
Подробнее здесь: https://stackoverflow.com/questions/793 ... le-aarch64