课程设计: 在RV开发板上大致运行我们的移植

我们的课程设计进度为:可以在RV开发板上大致运行sv6移植了。主要修改了如下几个地方:

  1. RV开发板的第0个hart是被屏蔽的,所以hartid从1开始,需要特别处理。
  2. 根据规范,RV的实现可以不支持由硬件自动设置页表项的A、D位,移植的时候我们注意到了这一点,但是QEMU支持自动设置,我们也就没有特别处理。而RV开发板的实现就不支持,需要软件设置,为简化实现,我们在创建页表项的时候直接将A、D位置1。
  3. sv6某个填写页表的地方似乎缺少刷新TLB的操作,需要加上。
  4. bbl不会将部分.bss段清零,需要手动清零。由于QEMU开启时,内存全部为零,所以之前没有遇到这个问题。
  5. (暂未解决)开-O3编译后,运行ls会导致内核卡死,卡死位置大致在referenced::dec()、具体位置不明、原因不明,猜测和缓存或内存模型有关。

此外,我们还研究了如何生成SD卡镜像,发现了RV开发板手册的两处错误。

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/10680QrCode