3

I'm trying to put a cortex m4 processor to sleep for a little less than a second. I want to be able to tell it to sleep, then a second later, or when a button is pressed, pick up right where I left off. I've looked in the reference manual and VLPS mode looks like it would fit my needs. I don't know how to begin to enter that mode or how to program the NVIC.

More Info: I am doing this in C, on the bare metal.

4

2 回答 2

1

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

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

于 2013-06-12T05:32:39.153 回答
0

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

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0553a/BABGGICD.html

于 2014-05-18T15:47:13.653 回答