From fdd5d3cf660a9c123aab03408c737eca85f004b0 Mon Sep 17 00:00:00 2001 From: fslongjin Date: Thu, 4 Aug 2022 23:22:26 +0800 Subject: [PATCH] =?UTF-8?q?bugfix:=20=E8=A7=A3=E5=86=B3=E5=9C=A8docker?= =?UTF-8?q?=E4=B8=AD=E4=BB=A5O1=E4=BC=98=E5=8C=96=E6=97=B6=E5=AF=BC?= =?UTF-8?q?=E8=87=B4page=20fault=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/lib/libUI/textui-render.c | 1 + kernel/main.c | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/kernel/lib/libUI/textui-render.c b/kernel/lib/libUI/textui-render.c index 3861ee64..734e3c30 100644 --- a/kernel/lib/libUI/textui-render.c +++ b/kernel/lib/libUI/textui-render.c @@ -16,6 +16,7 @@ extern struct scm_ui_framework_t textui_framework; +extern unsigned char font_ascii[256][16]; //导出ascii字体的bitmap(8*16大小) ps:位于font.h中 static void __textui_render_chromatic(uint16_t actual_line, uint16_t index, struct textui_char_chromatic_t *character); /** diff --git a/kernel/main.c b/kernel/main.c index bd3cfb4a..8418511e 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -37,12 +37,10 @@ #include -unsigned int *FR_address = (unsigned int *)0xb8000; //帧缓存区的地址 ul bsp_idt_size, bsp_gdt_size; -// struct Global_Memory_Descriptor memory_management_struct = {{0}, 0}; -void test_slab(); - +#pragma GCC push_options +#pragma GCC optimize("O0") struct gdtr gdtp; struct idtr idtp; void reload_gdt() @@ -148,6 +146,7 @@ void system_initialize() // ps2_mouse_init(); // ata_init(); pci_init(); + io_mfence(); ahci_init(); // test_slab(); @@ -174,6 +173,9 @@ void system_initialize() apic_timer_init(); io_mfence(); + // 这里不能删除,否则在O1会报错 + // while (1) + // pause(); } //操作系统内核从这里开始执行 @@ -202,7 +204,7 @@ void Start_Kernel(void) io_mfence(); while (1) - hlt(); + pause(); } void ignore_int() @@ -211,3 +213,4 @@ void ignore_int() while (1) ; } +#pragma GCC pop_options \ No newline at end of file