CoroutineDemo
CoroutineDemo copied to clipboard
svc 模式
ARM 芯片有五种模式,在不同模式有不同的作用。只有开启了 SVC 模式,不在此模式访问了那些寄存器,会出现硬件错误
这句话我不听明白,汇编的协程上下文切换的代码中,哪些寄存器的访问需要SVC 模式,不都是有些浮点寄存器和通用寄存器吗?
ARM 芯片有五种模式,在不同模式有不同的作用。只有开启了 SVC 模式,不在此模式访问了那些寄存器,会出现硬件错误
这句话我不听明白,汇编的协程上下文切换的代码中,哪些寄存器的访问需要SVC 模式,不都是有些浮点寄存器和通用寄存器吗?
这方面可能我理解有错误,可以查看一下阿里巴巴开源的 coobjc,里面不需要开启特权模式就已经实现上下文切换和保存。
好的,我看了下,没有涉及 svc模式 谢谢哈
好的,我看了下,没有涉及 svc模式 谢谢哈
那个汇编是我反汇编 setjmp 和 longjmp 得来的,setjmp 汇编代码是开启 SVC 模式的,但我自己也曾尝试过不开启 SVC,实际上是出现错误了。
@suancaiAmour 这比较奇怪,我没有进入SVC,并没有出错,我和阿里实现的 arm 64的协程是一样的几乎, 难道是使用场景并没有覆盖你跑的case? 跑helloworld 你也会失败吗?
@suancaiAmour 这比较奇怪,我没有进入SVC,并没有出错,我和阿里实现的 arm 64的协程是一样的几乎, 难道是使用场景并没有覆盖你跑的case? 跑helloworld 你也会失败吗?
是的,我到时候研究下,这方面我当时理解可能有点错误。你代码能发送给我吗?可以的话发送到 [email protected],谢谢。
@suancaiAmour 这比较奇怪,我没有进入SVC,并没有出错,我和阿里实现的 arm 64的协程是一样的几乎, 难道是使用场景并没有覆盖你跑的case? 跑helloworld 你也会失败吗?
是的,我到时候研究下,这方面我当时理解可能有点错误。你代码能发送给我吗?可以的话发送到 [email protected],谢谢。
不好意思,我们现在代码还没有开源,我发给你违反公司规定了,等后续开源,我会第一时间通知你,到时候多多交流一下。
@suancaiAmour 这比较奇怪,我没有进入SVC,并没有出错,我和阿里实现的 arm 64的协程是一样的几乎, 难道是使用场景并没有覆盖你跑的case? 跑helloworld 你也会失败吗?
是的,我到时候研究下,这方面我当时理解可能有点错误。你代码能发送给我吗?可以的话发送到 [email protected],谢谢。
不好意思,我们现在代码还没有开源,我发给你违反公司规定了,等后续开源,我会第一时间通知你,到时候多多交流一下。
好的 谢谢