gpt4 book ai didi

c - ARM 皮质 M4 : test from unpriviledged mode if inside interrupt

转载 作者:行者123 更新时间:2023-11-30 15:28:01 25 4
gpt4 key购买 nike

我正在使用以下 CPU:Stellaris LM4F120H5QR 微 Controller 。这个CPU包含一个MPU,我想利用这个东西。但是,在非特权模式下,许多寄存器不再可访问,而且我似乎找不到表明系统处于中断状态并且可从非特权模式读取的寄存器。

我需要这个,因为有些代码在从中断调用时可能会采取不同的路线。如果我在非特权模式下进行了错误的检查,系统将立即跳转到访问错误。

那么如何检查一个函数是否是从中断调用的,并且在从非特权模式调用时不会产生错误?

最佳答案

根据ARM's documentation CONTROLISR 寄存器可能正是您所需要的。

因此,使用 CMSIS 原型(prototype),代码可能如下所示:

if (__get_IPSR() || !(__get_CONTROL() & 0x1)) 
{
/* Privilged code */
}
else
{
/* Unprivileged code */
}

据我所知,甚至应该允许用户线程读取这些内容。

关于c - ARM 皮质 M4 : test from unpriviledged mode if inside interrupt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26758569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com