From 9802d67470b4aeb0c179e5a1fee546e3d2c641f4 Mon Sep 17 00:00:00 2001 From: fslongjin Date: Wed, 2 Mar 2022 18:31:23 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E8=A7=A3=E5=86=B3=E4=BA=86=E5=B8=A7?= =?UTF-8?q?=E7=BC=93=E5=86=B2=E5=8C=BA=E5=A4=A7=E5=B0=8F=E8=AE=A1=E7=AE=97?= =?UTF-8?q?=E9=94=99=E8=AF=AF=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/common/printk.c | 6 +++--- kernel/main.c | 2 +- kernel/mm/mm.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/common/printk.c b/kernel/common/printk.c index b5ed9e13..4baf656a 100644 --- a/kernel/common/printk.c +++ b/kernel/common/printk.c @@ -36,7 +36,7 @@ int printk_init(const int char_size_x, const int char_size_y) // @todo:将来需要将帧缓冲区物理地址填写到这个地址的页表项中 VBE_FB_phys_addr = (ul *)info.framebuffer_addr; pos.FB_address = (uint *)0x0000000003000000; - pos.FB_length = pos.width * pos.height*2; + pos.FB_length = pos.width * pos.height; // ======== 临时的将物理地址填写到0x0000000003000000处 之后会在mm内将帧缓存区重新映射===== @@ -51,7 +51,7 @@ int printk_init(const int char_size_x, const int char_size_y) ul *tmp1; // 初始化2M物理页 - for (ul i = 0; i < (PAGE_2M_SIZE<<3); i += PAGE_2M_SIZE) + for (ul i = 0; i < (pos.FB_length<<2); i += PAGE_2M_SIZE) { // 计算当前2M物理页对应的pdt的页表项的物理地址 tmp1 = phys_2_virt((ul *)(*tmp & (~0xfffUL)) + (((fb_virt_addr + i) >> PAGE_2M_SHIFT) & 0x1ff)); @@ -811,7 +811,7 @@ int scroll(bool direction, int pixels, bool animation) */ int cls() { - memset(pos.FB_address, BLACK, pos.FB_length * sizeof(unsigned int)); + memset(pos.FB_address, BLACK, pos.FB_length*sizeof(unsigned int)); pos.x = 0; pos.y = 0; return 0; diff --git a/kernel/main.c b/kernel/main.c index 3ccb52c1..31fecc9a 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -158,7 +158,7 @@ void system_initialize() cpu_init(); // test_slab(); - // test_mm(); + test_mm(); // 再初始化进程模块。顺序不能调转 // process_init(); } diff --git a/kernel/mm/mm.c b/kernel/mm/mm.c index 60ae1a54..6cbaed7a 100644 --- a/kernel/mm/mm.c +++ b/kernel/mm/mm.c @@ -514,7 +514,7 @@ void init_frame_buffer() ul vbe_fb_length = get_VBE_FB_length(); ul *tmp1; // 初始化2M物理页 - for (ul i = 0; i < (PAGE_2M_SIZE<<3); i += PAGE_2M_SIZE) + for (ul i = 0; i < (vbe_fb_length<<2); i += PAGE_2M_SIZE) { // 计算当前2M物理页对应的pdt的页表项的物理地址 tmp1 = phys_2_virt((ul *)(*tmp & (~0xfffUL)) + (((ul)(fb_virt_addr + i) >> PAGE_2M_SHIFT) & 0x1ff));