调整好目录后还要补充增加最外边的Makefile,主要功能是进入到boot、init、schedule、tools、drivers目录编译并做连接后用build_image工具打包成一个image
整个image分布应该是这样:
0~0x200:boot.s
0x200~0x600: setup.s
0x600~0x10000 kernel (setup.s 中加载kernel方法限制了当前kernel文件最大64K,现在够用,不够再改)
Makefile:
--------
INCLUDE=./include
CC = gcc -march=i386
LD = ld
ASFLAG = -f elf
LDFLAGS = -melf_i386 -Ttext 0x0 -e startup_32
CCFLG = -O2 -c -nostdinc -fno-builtin -I$(INCLUDE) -I.
OBJ_DIR=./obj/
BOOT_DIR=./boot/
TOOLS_DIR = ./tools/
SCHED_DIR = ./schedule/
DIRIVER_DIR = ./drivers/
OBJS = $(OBJ_DIR)main.o
LIBS = $(OBJ_DIR)traps.o $(OBJ_DIR)printk.o $(OBJ_DIR)vsprintf.o
all: Image
Image: boot_partition kernel $(TOOLS_DIR)build_image
@echo
@echo create Image
@cat $(BOOT_DIR)boot_partition kernel > ./Image
@echo build image...
@$(TOOLS_DIR)build_image Image
@rm -rf Image.img
@cp Image Image.img