BCM2836 / BCM2837在Aarch64模式下-如何在裸机程序中生成异常?

问题描述

我正在尝试使用AArch64,并且已经将“ OS”设置为可在EL1中运行。 IRQ向量表已加载并正在工作,等等。如果在对齐时出错,则会在打印出ESR和ELR时出现一个很好的异常。但是...我可以生成自己的异常吗?如果EL1中的某些条件为真,我希望具有相同的行为(即打印出ESR,ELR并重新启动),例如if(cond == 1)generate_exception()... CPU?

具体来说,如果它是特定于CPU的,则在Raspberry Pi 3B +上,因此BCM2837B0 ARM Cortex A-53 ...

解决方法

我想说的是,您的问题与BCM2836 / BCM2837中使用的专有中断控制器有关,而不是与Aarch64本身有关。

我建议使用document中所述的邮箱中断。

Raspberry Pi Bare Bones project是另一个有价值的信息来源,因为它确实使用中断和邮箱提供了代码。

使用标准GIC的Aarch64处理器,您可以向四个内核中的任何一个发送SGI(软件生成的中断)。

,

听起来您可以使用 SVC。

Supervisor Call(以前称为 SWI,软件中断)。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...