- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 ARM 架构相当陌生,我正在尝试了解唤醒机制。
首先,我发现很难找到这方面的好信息。 ARM 的文档似乎对该主题非常简洁。
我想了解的是皮质(特别是我正在使用的 M0)何时会醒来。
作为引用,我还查阅了以下内容:
WFE 说明的文档是:
3.7.11. WFE
Wait For Event.
Syntax
WFE
Operation
If the event register is 0, WFE suspends execution until
one of the following events occurs:
an exception, unless masked by the exception mask registers or the current
priority level
an exception enters the Pending state, if SEVONPEND in the
System Control Register is set
a Debug Entry request, if debug is enabled
an event signaled by a peripheral or another processor in a
multiprocessor system using the SEV instruction.
If the event register is 1, WFE clears it to 0 and completes immediately.
For more information see Power management.
Note
WFE is intended for power saving only. When writing software assume
that WFE might behave as NOP.
Restrictions
There are no restrictions.
Condition flags
This instruction does not change the flags.
Examples
WFE ; Wait for event
世界金融协会:
3.7.12. WFI
Wait for Interrupt.
Syntax
WFI
Operation
WFI suspends execution until one of the following events occurs:
an exception
an interrupt becomes pending, which would preempt if PRIMASK was clear
a Debug Entry request, regardless of whether debug is enabled.
Note
WFI is intended for power saving only. When writing software assume
that WFI might behave as a NOP operation.
Restrictions
There are no restrictions.
Condition flags
This instruction does not change the flags.
Examples
WFI ; Wait for interrupt
所以,有一些问题:
1)首先,有人可以澄清一下以下之间的区别:
a) 系统处理程序优先级寄存器
b) 中断优先级寄存器。难道 b) 用于与系统无关的中断,例如 pendSv?
现在来看一些场景。我真的很想了解这些场景是如何由以下因素控制的:NVIC 中断请求使能NVIC 待定PRIMASK
影响WFE和WFI的进出。
因此这些位的各种组合会产生 8 种不同的场景{NVIC_IRQ 启用、NVIC 待定、PRIMASK}。
我已经补充了目前为止我的模糊理解。请帮我整理一下这张 table 。
我在这里排除了优先级,因为我还不太关心异常处理顺序。
排除 SEV 和事件信号,如果 SEVONPEND 为 0,WFE 的行为是否与 WFI 相同?
最佳答案
您将在 Cortex-M 上看到的主要唤醒机制是中断,即 WFI(等待中断)。在我见过的所有实现中,都会导致内核时钟门控,尽管如果设计支持的话,有时可以使用更深的 sleep /更高的延迟模式。
WFE 在多处理器设计中更为相关。
关于问题 -1. Cortex-M 中的中断和系统处理程序非常相似,主要区别在于它们的触发方式。它们之间的架构有所区别,但实际上它们是相同的。
用于您的位表,它们实际上没有意义。每个 Cortex-M 实现对 WFI 期间发生的情况都有自己的解释。它可以从基本时钟门控到深度 sleep 模式有所不同。有关真实情况,请参阅微处理器文档。
PRIMASK 不会影响从 sleep 行为中唤醒。
关于 ARM sleep 模式进入和退出差异WFE、WFI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27188807/
我有一个计时器工作,我只想每天为整个农场运行一次。我如何能 将其部署在多个 WFE 环境中?我是在每个 WFE 中运行 stsadm -o deploysolution 命令,还是只在我想要运行它的地
WFE 指令如何工作? 我读到的是它使处理器等待 IRQ/FIQ/event/.... 但是当你得到一个 IRQ 时会发生什么,irq_fault_handler 向量是在得到一个中断还是在 WFE
我在 低功耗运行 模式下从 RAM 运行了 c 代码(因此不处理中断)。此模式由代码序列启用: 跳转到内存 SIM 卡 关闭内部闪存和电源调节器,切换到低速时钟源(LSE) 使用 WFE 模式(低功耗
我们有一个包含多个 WFE 的 SharePoint 场。一个新的应用程序需要我们在部署期间将一些自定义代码写入 web.config。在部署期间修改 web.config 文件以确保场中的每个 WF
我是一名优秀的程序员,十分优秀!