1 Star 2 Fork 0

directorhorse / myos

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Makefile 1.60 KB
一键复制 编辑 原始数据 按行查看 历史
directorhorse 提交于 2023-02-03 20:10 . 添加了定时器中断
cc=gcc
ld=ld
gccpara=-g -m32 -fno-pie -fno-stack-protector -nostdlib -nostdinc -ffreestanding -fno-asynchronous-unwind-tables
ldpara= -m elf_i386
disk=disk.img
INC_CLUDE=-I./
ALL: boot.bin loader.bin kernel.bin
dd if=/dev/zero of=$(disk) bs=512 count=20480
dd if=boot/boot.bin of=$(disk) conv=notrunc bs=512 count=1
dd if=loader/loader.bin of=$(disk) conv=notrunc seek=1
dd if=kernel/kernel.elf of=$(disk) conv=notrunc bs=512 seek=100
boot.bin: boot/bootsector.S
$(cc) boot/bootsector.S $(gccpara) -c -o boot/bootsector.o $(INC_CLUDE)
$(ld) boot/bootsector.o $(ldpara) -Ttext=0x7c00 -o boot/boot.elf
objcopy -O binary boot/boot.elf boot/boot.bin
loader.bin:
$(cc) loader/loader_entry.S $(gccpara) -c -o loader/loader_entry.o $(INC_CLUDE)
$(cc) loader/loader.c $(gccpara) -c -o loader/loader.o $(INC_CLUDE)
$(cc) loader/loader_32.c $(gccpara) -c -o loader/loader_32.o $(INC_CLUDE)
$(ld) loader/loader_entry.o loader/loader.o loader/loader_32.o -m elf_i386 -Ttext=0x8000 -O0 -o loader/loader.elf $(INC_CLUDE)
objcopy -O binary loader/loader.elf loader/loader.bin
kernel.bin:
$(cc) kernel/kernel_start.S $(gccpara) -c -o kernel/kernel_start.o $(INC_CLUDE)
$(cc) kernel/kernel.c $(gccpara) -c -o kernel/kernel.o $(INC_CLUDE)
$(cc) kernel/irq/irq.c $(gccpara) -c -o kernel/irq/irq.o $(INC_CLUDE)
$(cc) kernel/time/time.c $(gccpara) -c -o kernel/time/time.o $(INC_CLUDE)
$(ld) kernel/kernel_start.o kernel/kernel.o kernel/irq/irq.o kernel/time/time.o $(ldpara) -Ttext=0x10000 -o kernel/kernel.elf
clean:
find . -name "*.o" | xargs rm -f
find . -name "*.bin" | xargs rm -f
find . -name "*.elf" | xargs rm -f
1
https://gitee.com/directorhorse/myos.git
git@gitee.com:directorhorse/myos.git
directorhorse
myos
myos
master

搜索帮助