From c3bce0a9eda2dfdc36a4c4097570af13d465333c Mon Sep 17 00:00:00 2001 From: chyyuu Date: Wed, 11 Mar 2015 08:21:50 +0800 Subject: [PATCH] Update report.md --- labcodes_answer/lab1_result/report.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/labcodes_answer/lab1_result/report.md b/labcodes_answer/lab1_result/report.md index 345d24e..c518dbc 100644 --- a/labcodes_answer/lab1_result/report.md +++ b/labcodes_answer/lab1_result/report.md @@ -42,12 +42,12 @@ bin/ucore.img | | | -nostdinc -fno-stack-protector -Ilibs/ -Os -nostdinc \ | | | -c boot/bootasm.S -o obj/boot/bootasm.o | | | 其中关键的参数为 -| | | -ggdb 生成可供gdb使用的调试信息 -| | | -m32 生成适用于32位环境的代码 -| | | -gstabs 生成stabs格式的调试信息 -| | | -nostdinc 不使用标准库 -| | | -fno-stack-protector 不生成用于检测缓冲区溢出的代码 -| | | -Os 为减小代码大小而进行优化 +| | | -ggdb 生成可供gdb使用的调试信息。这样才能用qemu+gdb来调试bootloader or ucore。 +| | | -m32 生成适用于32位环境的代码。我们用的模拟硬件是32bit的80386,所以ucore也要是32位的软件。 +| | | -gstabs 生成stabs格式的调试信息。这样要ucore的monitor可以显示出便于开发者阅读的函数调用栈信息 +| | | -nostdinc 不使用标准库。标准库是给应用程序用的,我们是编译ucore内核,OS内核是提供服务的,所以所有的服务要自给自足。 +| | | -fno-stack-protector 不生成用于检测缓冲区溢出的代码。这是for 应用程序的,我们是编译内核,ucore内核好像还用不到此功能。 +| | | -Os 为减小代码大小而进行优化。根据硬件spec,主引导扇区只有512字节,我们写的简单bootloader的最终大小不能大于510字节。 | | | -I 添加搜索头文件的路径 | | | | | | 生成bootmain.o需要bootmain.c