ucore-project4: interrupt -- 搞定第一个中断:timer

修改了代码中的一个bug,时钟终端终于正常了。

 

project4是一个很大的工程,包括了6个小工程。今天完成的是第一个工程:添加中断,初始化pic(8259A)和pit(8253)。

第二个工程project4.1主要添加了用户态段和一个TSS段,重新初始化gdt,并加载了一个TSS

第三个工程project4.1.1实现用户态和内核态的切换,主要通过修改int中断,在中断处理函数中修改trapframe的CS、DS等的值实现。同时这个工程中需要注意idt中从user到kernel那一项的dpl是3(改成0试试???)

第四个工程project4.1.2使用lret从kernel跳转到user,通过call callgate从user跳转到kernel

第五个工程project4.2实现了一个kgdb

第六个工程project4.3使用了cpu的调试寄存器db0~db7进行内核调试

 

project4已经延期了6天了,今天刚刚完成project4,后续需要完成内核和外部跳转的能力,调试部分先不管,毕竟还有printf和qemu提供的gdb调试能力。

 

争取project4明天全部完成。

 

2011/12/18: 很遗憾,今天刚刚完成4.1.1,延期12天。不过收获很大,对x86 cpu内核和用户态切换,以及中断的实现、任务处理(TSS)有了比较多的了解,idt中从user到kernel那一项的dpl必须为3,为0时会不断产生通用保护异常(异常13)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值