微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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,软件中断)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。