gpt4 book ai didi

arm - ARM Cortex M 中的“使用错误异常”

转载 作者:行者123 更新时间:2023-12-02 00:45:56 27 4
gpt4 key购买 nike

我参加了一个关于 FreeRtos 和 Cortex M 的讲座,讲师建议如果不从 ISR 使用 API 的 ISR 安全版本,它可能会导致 Cortex M 处理器中的使用错误异常。这会发生因为这可能涉及从中断上下文(中断处理程序)到任务上下文(线程处理程序)我的问题是为什么这个任务切换会被认为是非法的,这种切换会产生什么影响?

最佳答案

在 Cortex-M 上(某些)当前上下文将存储在中断之前使用的堆栈中(在中断入口处),因此如果您在一个任务中并且它被中断,一些当前上下文将被存储在任务堆栈上(通过 PSP)。中断本身总是在 MSP 上运行。如果中断没有返回到它中断的任务,那么被中断的任务将有一个困惑的堆栈(因为它在退出时恢复存储的上下文)以及尝试为切换到的任务恢复不正确的上下文。

在上下文切换(发生在中断中)中,一些上下文会自动存储在任务堆栈中,但操作系统也会将其余上下文存储在任务堆栈中。当它进行切换并退出中断时,操作系统会恢复它自己为任务存储的上下文,然后通过退出中断自动恢复上下文的其余部分。这是有效的,因为它确保堆栈以正确的格式保留。查看 Cortex-M4 通用用户指南中的中断进入/退出。

并非所有处理器都是这样工作的。

关于arm - ARM Cortex M 中的“使用错误异常”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878400/

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