准备实现rtc中断

master
阳光少年 1 year ago
parent 2436ad1481
commit 422fd35aac

@ -99,10 +99,20 @@ bochsg: $(BUILD_PATH)/master.img
@rm -rf $(BUILD_PATH)/*lock
bochs-gdb -q -f ../bochs/bochsrc.gdb
.PHONY: qemu
qemu: $(BUILD_PATH)/master.img
qemu-system-i386 \
-s -S \
QEMU:= qemu-system-i386 \
-m 64M \
-boot c \
-hda $<
-drive file=$(BUILD_PATH)/master.img,if=ide,index=0,media=disk,format=raw \
-audiodev pa,id=hda \
-machine pcspk-audiodev=hda \
-rtc base=localtime \
.PHONY: qemug
qemug: $(BUILD_PATH)/master.img
$(QEMU) -s -S \
.PHONY: qemu
qemu: $(BUILD_PATH)/master.img
$(QEMU)

@ -0,0 +1,12 @@
#ifndef ONIX_RTC_H
#define ONIX_RTC_H
#include <onix/types.h>
#include <onix/debug.h>
u8 cmos_read(u8 addr);
void cmos_write(u8 addr, u8 value);
#endif

@ -38,7 +38,7 @@ typedef struct tm{
void time_read_bcd(tm *time);
void time_read(tm *time);
// 将struct tm 结构体类型表示的时间转换为从 1970 1 1 00:00:00 +0000 (UTC) 到该时间点的秒数
// 将struct tm 结构体类型表示的时间转换为从 1970年1月1日00:00:00 +0000(UTC) 到该时间点的秒数
usize mktime(tm *time);
void time_init();

@ -192,4 +192,6 @@ void time_init()
// 计算得到时间戳
startup_time = mktime(&time);
DEBUGK("时间戳 time: %d", startup_time);
}
Loading…
Cancel
Save