Arm 手臂皮层m4进入睡眠模式

Arm 手臂皮层m4进入睡眠模式,arm,suspend,bare-metal,cortex-m,Arm,Suspend,Bare Metal,Cortex M,我试图让cortex m4处理器休眠不到一秒钟。我希望能够告诉它睡觉,然后一秒钟后,或者当按下按钮时,从我离开的地方开始。我看了参考手册,VLPS模式看起来适合我的需要。我不知道如何开始进入该模式或如何编程NVIC 更多信息: 我用C语言在裸机上完成这项工作。您可以下载并检查实现的代码。尽管演示是针对RTOS的,但无论是使用RTOS还是应用程序在裸机上运行,用于将CPU置于睡眠模式的代码都是相同的 有一些通用的方法可以将Cortex-M3内核置于低功耗状态(请参阅WFI说明)。为了获得极低的功耗

我试图让cortex m4处理器休眠不到一秒钟。我希望能够告诉它睡觉,然后一秒钟后,或者当按下按钮时,从我离开的地方开始。我看了参考手册,VLPS模式看起来适合我的需要。我不知道如何开始进入该模式或如何编程
NVIC

更多信息:
我用C语言在裸机上完成这项工作。

您可以下载并检查实现的代码。尽管演示是针对RTOS的,但无论是使用RTOS还是应用程序在裸机上运行,用于将CPU置于睡眠模式的代码都是相同的

有一些通用的方法可以将Cortex-M3内核置于低功耗状态(请参阅WFI说明)。为了获得极低的功耗,您还必须做一些特定于芯片的事情。上面链接的代码在调用WFI之前执行一些特定于芯片的预睡眠处理(打开外围设备,设置芯片自己的睡眠模式等),然后在从WFI指令返回时执行一些特定于芯片的操作


你为什么在这里而不是在专门讨论ARM处理器的论坛上问这个问题?

你不需要RTOS来从睡眠中醒来Cortex M4,你需要的是使用和中断(ISR)。你应该参考制造商手册,你可以用定时器(ISR)或按钮(GPIO)来唤醒取决于特定芯片的休眠模式。下面是一个更深入的ARM文档


很难说这个问题是属于这里还是属于其他地方。您正在使用
C
?如果不是,你需要用什么语言来做这件事?另外,你是在使用RTOS还是在“裸机”上运行?@TaylorFlores我是在裸机上用c做这件事的。我已经更新了这个问题。@Eric Miller我正在裸机上做这件事。我现在意识到这不是回答这个问题的最佳地方,但你帮了我一个大忙。谢谢。像这样的问题一直在这里被问和回答,这是一个编程问题。