Closed keigo1216 closed 10 months ago
ユーザーランド側からsvc #0
でカーネルへ例外を出すと、handle_trap
は呼び出されるが、printf
のアドレスが違うか何かで呼び出すことができていない
カーネル側からsvc #0
で例外を出すと場合はうまくいっている
考えられるバグ
UARTのメモリマップしてる部分のkernel空間のページへマップされていないみたいなので、カーネルのブート時にマップするようにしたい
*uart_flag
にアクセスする際に例外を出しているみたい
https://github.com/keigo1216/ketchup/blob/9bf16bc96ad2c70016892d56d999187a262c9c71/kernel/print.c#L10
スタックレジスタの設定を変更した
// Use SP_ELt (EL1 => SP_EL1, EL0 => SP_EL0)
msr SPSel, #1
システムコールを実装する