Yiming Liu

Results 11 issues of Yiming Liu

Add some modification to `format::inner_format()`, which will prevent the program from panic when an inproper format string is provided. This is the problem mentioned in issue #575 . The new...

design
waiting-on-author

我最近基于NutShell做了一些工作,并希望使用NEMU的Difftest功能来辅助调试。但结果却是NutShell的差分测试代码无法与现有的NEMU的so动态链接库兼容。在链接时会出现找不到符号(symbol)的问题,这意味着在新的代码中移除了一些原先存在的接口。而这个问题甚至存在于NutShell仓库的不同分支中(我无法将`difftest`分支下的`riscv64-nemu-interpreter-so`文件用于`master`分支,这同样存在找不到符号的问题)。 ![image](https://user-images.githubusercontent.com/44079387/147442703-d4e882f5-532a-44b4-b5eb-cf2b13255770.png) 考虑到NEMU现在已经被同时应用于**OpenXiangShan**、**NutShell**以及**一生一芯**这三个颇具影响力的项目中,我认为也许是时候将**API的向后兼容性**这一问题提上议程了。一个稳定的API能够保证我们不用频繁地修改测试代码。而且,如果日后希望能进一步地推广NEMU的话,一个稳定且具有向后兼容性的API也是必不可少的。

使用`make menuconfig`命令进入配置界面后,在FPU_Emulation一栏下选择Disable FPU Emulation。此后再进行编译会出现链接错误如下 ``` /usr/bin/ld: /tmp/ccdfIYii.ltrans0.ltrans.o: in function `rtl_fpcall': :(.text+0x8579): undefined reference to `fesetround' /usr/bin/ld: :(.text+0x8595): undefined reference to `llrintf' /usr/bin/ld: :(.text+0x8725): undefined reference to `fmaf' /usr/bin/ld: :(.text+0x8825): undefined...

在现阶段的VFS和Scheduler搞好之后,进行一次较大规模的代码整理,主要是整理代码和编写文档。

在多核的情况的,使用`printf`或是`panic`函数进行串口输出,有时会出现两个核的输出发生混淆的现象。这为多核情况下的调试带来了困难:输出有时会混淆到难以辨别的程度。 为了解决这一问题,我个人觉得应该要对`console`设备引入更加完善的锁机制,以保证一次输出的原子性。

bug

在与@AtomHeartCoder讨论之后,我们认为可以在调度器中引入任务(Task)支持。任务控制块的一个草稿如下 ```C struct task { struct list _node; // 与链表有关的域 struct proc *process; // 指向自己的进程控制块 enum task_status status; // 当前任务的运行状态 int tid; // 类似于PID,当前任务的ID struct context context; // 上下文,用于调度 struct...

enhancement

现有的Panic,我指的是xv6-k210 kernel中的`panic()`函数,严格来说只是使当前的核进入死循环。而我们希望能够能够在Panic的时候同时“*停止*”k210的两个核。 这可能会需要向`panic()`中引入适当的核间中断机制?

enhancement

一方面,Kendryte提供的`spi.c`对于xv6-k210的应用场景来说过于庞杂。原本的代码中考虑了很多在xv6-k210中大概率不会被用到的情况。另一方面,我们也希望通过重写`spi.c`来彻底消化SD卡驱动的协议栈。最后,我们还希望能够在新的代码中使用`kmemalloc.c`提供的动态内存分配功能。 但考虑到现有的`spi.c`模块其实跑得还挺好的,也许这项工作尚不太急?(笑

It works fine to use `ESC` key to exit from the game to the main window, but another press on `ESC` would cause the game to crash. "Segmentation Fault (core...

After this first wave of enemy(about 6 or less), there's no more enemy to come, only my character in the game screen. I wonder if it is a bug or...