sktt1ryze / xv6-k210 Goto Github PK
View Code? Open in Web Editor NEWPorting xv6-riscv on k210
License: MIT License
Porting xv6-riscv on k210
License: MIT License
最近在看以及在做lab3(也就是pagetable)相关的内容了。其中有一点我不是很明白。xv6会给每一个process分配一个pagetable放在PCB(struct proc
)中,那么操作系统切进程的时候是会将PCB中的pagetable载入到satp中吗?否则我实在是想不通如何将虚拟地址映射到一块与进程有关的物理地址上去。riscv-book中貌似没有专门讲到这个问题。
你好,我们在您的xv6-user中看到了shell的实现,请问该怎么启动这些shell
https://pdos.csail.mit.edu/6.828/2020/labs/syscall.html
关于其中的第二个实验"Sysinfo",在实现struct sysinfo
赋值的代码中为什么一定要使用copyout()
函数来实现?用户代码调用sysinfo()
的syscall时不是已经将一个struct sysinfo指针作为参数传入了吗?为什么这里不能像普通的C语言代码那样简单地使用这个传入的指针进行赋值?
copyout()
函数的原型为int copyout(pagetable_t pagetable, uint64 dstva, char *src, uint64 len)
,从参数名来看似乎是使用到了虚拟地址。是说因为用户态传入的struct sysinfo
指针使用的是虚拟地址所以无法直接在内核中访问吗?
试着编译并跑了一下代码,发现每次都会在userinit()
(main.c: 38)处panic。再进一步地追下去,发现是userinit()
最后的release()
失败了。似乎是代码中的某处修改了cpu->noff,导致无法正常地解锁。各位有什么头绪吗?(苦笑)
该 issure 用于记录同学们的日志链接,方便大家学习交流。
刚刚检查了一下sdcard_test()中相关的操作,发现sdcard_test()(src/sdcard.c)中存在一个可能的bug。代码中大量的使用sizeof(buffer)
和sizeof(pre_buffer)
来表示buffer和pre_buffer数据区的长度。这两个数据区的长度理论上应该是4096B(4KB),但是如果使用sizeof运算符的话,得到的结果则应该是指针的长度。因为buffer
和pre_buffer
都是uint8*
类型的,使用sizeof运算符得到的应该是它们的类型的长度,而非所期望的4KB。
目前能够启动一个用户进程。但是我想把终端进程启动起来,要做些什么吗?
[INFO] COM Port Selected Manually: /dev/ttyUSB0
[Errno 16] could not open port /dev/ttyUSB0: [Errno 16] Device or resource busy: '/dev/ttyUSB0'
Makefile:121: recipe for target 'run' failed
make: *** [run] Error 1
lzp@lzp:~/vmsha/k210-test1$ ls /dev/ | grep USB
ttyUSB0
lzp@lzp:~/vmsha/k210-test1$ make run
0+1 records in
0+1 records out
45156 bytes (45 kB, 44 KiB) copied, 0.00175343 s, 25.8 MB/s
[INFO] COM Port Selected Manually: /dev/ttyUSB0
[INFO] Default baudrate is 115200 , later it may be changed to the value you set.
[INFO] Trying to Enter the ISP Mode...
._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
Greeting fail, check serial port ([ERROR] No vaild Kendryte K210 found in Auto Detect, Check Your Connection or Specify One by`-p /dev/ttyUSB0` )
Makefile:121: recipe for target 'run' failed
make: *** [run] Error 1
lzp@lzp:~/vmsha/k210-test1$
可以帮我看看是什么问题吗?同学的cpu是intel的,一下就可以
我的是AMD的一直是这样,另外一个同学是AMD的也是这样。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.