From 7518966eb1be0a9ae9a5191aa2dffb1477d33a2a Mon Sep 17 00:00:00 2001 From: Zhiyuan Shao Date: Mon, 13 Sep 2021 17:15:41 +0800 Subject: [PATCH] Update chapter3_traps.md --- chapter3_traps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter3_traps.md b/chapter3_traps.md index 33472cf..fa2486e 100644 --- a/chapter3_traps.md +++ b/chapter3_traps.md @@ -1057,7 +1057,7 @@ handle_syscall()函数的定义也在kernel/strap.c文件中: 但是,做实验的时候,需要读者思考在handle_syscall()函数中调用do_syscall()函数,后者的参数怎么办?毕竟有8个long类型(因为我们的机器是RV64G,long类型占据8个字节)的参数,另外,do_syscall()函数的返回值怎么处理?毕竟do_syscall()函数有一个long类型的返回值,而这个返回值是要通知应用程序它发出的系统调用是否成功的。 -除了实验内容之外,在handle_syscall()函数的第19行,有一个`tf->epc += 4;`语句,**这里请读者思考为什么要将tf->epc的值进行加4处理?**这个问题请结合你对RISC-V指令集架构的理解,以及系统调用的原理回答。另外,**我们的PKE操作系统内核是如何得到应用程序中“hello world!”字符串的地址的呢**? +除了实验内容之外,在handle_syscall()函数的第19行,有一个`tf->epc += 4;`语句,**这里请读者思考为什么要将tf->epc的值进行加4处理**?这个问题请结合你对RISC-V指令集架构的理解,以及系统调用的原理回答。另外,**我们的PKE操作系统内核是如何得到应用程序中“hello world!”字符串的地址的呢**?