Giter Club home page Giter Club logo

Comments (13)

retrhelo avatar retrhelo commented on July 30, 2024

init exiting 请问是什么问题 _init文件也导入sd卡中了

在之前的修改中,默认是使用init作为启动程序的名称,而不是原本使用的_init。可以尝试将_init改为init,将_sh改为sh来避免这个问题。

from xv6-k210.

retrhelo avatar retrhelo commented on July 30, 2024

系统启动的时候,第一个用户进程initcode会尝试通过exec系统调用来运行init程序,同样的,init程序会通过exec调用运行sh程序。所以为了能让系统正确地运行起来,需要保证initsh两个程序在文件系统中是有效的。

from xv6-k210.

 avatar commented on July 30, 2024

谢谢大佬 初始进程加载进去了 顺便问一下我更改init中的进程调用 把sh换成了其他elf文件会报r_scause寄存器错误是什么原因怎么解决
2021-05-26 18-55-24屏幕截图

from xv6-k210.

AtomHeartCoder avatar AtomHeartCoder commented on July 30, 2024

报错的程序是initcode,估计是exec调用不成功。从sepc的值来看,已经超出原initcode的代码段了(initcode只有几条指令)

from xv6-k210.

 avatar commented on July 30, 2024

不是initcode 我讲init文件换成二进制导入到原initcode数组中没改名字 大小为2.7KB没超页表大小 请问我如何更改他获取的数据段大小不让他超出范围

from xv6-k210.

AtomHeartCoder avatar AtomHeartCoder commented on July 30, 2024

堆大小需要通过sbrk系统调用扩增,栈大小可以直接在exec.c中修改相关代码设置,大概是下面这一段(截取自main分支)

......
sz = PGROUNDUP(sz);
uint64 sz1; 
if((sz1 = uvmalloc(pagetable, kpagetable, sz, sz + 2*PGSIZE)) == 0)
    goto bad;
sz = sz1;
uvmclear(pagetable, sz-2*PGSIZE);
sp = sz;
stackbase = sp - PGSIZE;
......

from xv6-k210.

AtomHeartCoder avatar AtomHeartCoder commented on July 30, 2024

不过如果你是直接修改initcode数组的话,应该是需要修改userinit()函数(在proc.c中)

from xv6-k210.

 avatar commented on July 30, 2024

谢谢大佬 在qemu上已经成功将init加载到了内核中并成功运行 但是到k210上运行有时候会有scause=5的加载异常报错 经复位可以避免 请问是什么问题 附init程序
2021-05-27 10-26-56屏幕截图

from xv6-k210.

retrhelo avatar retrhelo commented on July 30, 2024

from xv6-k210.

 avatar commented on July 30, 2024

谢大佬 观察了下发现可能是在init里顺位调用elf造成的撞车问题 经加入循环后发生以下错误请问是什么原因
2021-05-27 16-30-26屏幕截图

from xv6-k210.

retrhelo avatar retrhelo commented on July 30, 2024

如截图所示,是所执行的代码中包含非法指令。可以先在QEMU下进行测试,OK了以后再上板测试。建议仔细检查
一下源代码的反汇编结果,以及内核中的硬编码是否正确。

同时,建议检查一下sfence()中的代码是否正确。K210下的MMU和TLB存在一些未知的问题,直接使用sfence.vma
无法有效地更新TLB。可以看一下Issue #16,里面有讨论这个问题。

from xv6-k210.

luojia65 avatar luojia65 commented on July 30, 2024

我觉得提问的好方法是分别寻找或者发一个issue,而不是在同一个issue下面追着作者问。更多个issue会促进用户们帮助寻找问题。我们的成员并非全职工作,平时还有自己的研究和生活,如果还是以“谢大佬,但是我……这个问题怎么办”的提问方式,你过于打扰朋友们的生活了,极有可能达不到解决问题的效果。
如果还追着我们的成员不放,我将关闭你的所有issue。
@potato-particle

from xv6-k210.

 avatar commented on July 30, 2024

我觉得提问的好方法是分别寻找或者发一个issue,而不是在同一个issue下面追着作者问。更多个issue会促进用户们帮助寻找问题。我们的成员并非全职工作,平时还有自己的研究和生活,如果还是以“谢大佬,但是我……这个问题怎么办”的提问方式,你过于打扰朋友们的生活了,极有可能达不到解决问题的效果。
如果还追着我们的成员不放,我将关闭你的所有issue。
@cgxtudou

抱歉 之前解决问题心切 多有打扰各位

from xv6-k210.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.