我正在写自己的小操作系统。我已经完成启动,进入保护模式,一些文本打印以及与qemu的串行通信。我已经尝试添加中断两天了。我到处都在寻找,包括其他系统资源。不,我下面没有代码,qemu(我不知道为什么)关闭了。我包括geust errorsqemu。
这是我的主文件 kernel.cpp
__asm__ (".pushsection .text.start\r\n" \
"jmp main\r\n" \
".popsection\r\n");
#include <stdbool.h>
#include "utils/debug.h"
#include "drivers/display.h"
#include "drivers/serial.h"
#include "drivers/keyboard.h"
#include "drivers/pic.h"
#include "interrupt/interrupt.h"
void initDrivers(){
serial::init();
pic::init();
interrupt::init();
interrupt::enable();
terminal_initialize();
}
int main() {
initDrivers();
terminal_setcolor(VGA_COLOR_WHITE);
terminal_writestring("Hello!");
debug::println("after println");
bool alive = true;
while(alive) {
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
PIC驱动程序pic.cpp和pic.h
#include "pic.h"
#include <stddef.h>
#include <stdint.h>
#include "IO.h"
#include "../utils/debug.h"
/*
* IMR - Interrupt Mask Register
* IRR - Interrupt Request …Run Code Online (Sandbox Code Playgroud)