STM32汇编指令(一)WFI 和 WFE
ARM汇编的调用
嵌入式开发,尤其是编写BSP的时候,非常接近底层,这个时候有可能用一些汇编指令来保证程序的简洁和高效,但是平常编写代码用到的都是C/C++,那么如何使用汇编指令呢?
其实这个问题也很简单,在C/C++中提供了关键字asm
或者ASM
来内嵌汇编,使用如下:
asm("WFI");
但是这种方法问题比较大,在Cortex-M平台上,这个语句有很大几率编译不通过,因为各家编译器又实现了自己的宏,具体可以在core_cmx.h中看到,如果我们的项目要在不同的编译器上通过,可以考虑使用条件编译来达标,不过这样付出的成本就很大。
另外一种简单的方法是使用intrinsic.h这个头文件,这个头文件把所有的汇编指令都封装成了诸如__Commnad()
的函数形式,并且预编译为二进制包,故不必使用条件编译也能达到相同效果
WFI和WFE
这两条指令的作用都是令MCU进入休眠/待机状态以便降低功耗,但是略有区别:
WFI: wait for Interrupt 等待中断,即下一次中断发生前都在此hold住不干活
WFE: wait for Events 等待事件,即下一次事件发生前都在此hold住不干活
所以使用前要掂量好到底是什么会触发MCU唤醒事件
STM32汇编指令(一)WFI 和 WFE相关推荐
- arm汇编指令WFI和WFE
1. 前言 很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂.最近准备研究CPU idle framework,由于WFI是让CPU进入idle状态的一种方法,就下决心把它们弄清楚. WF ...
- arm指令和C语言指令一样吗,ARM WFI和WFE指令
ARM WFI和WFE指令 作者:wowo 发布于:2014-12-10 22:43 分类:ARMv8A Arch 1. 前言 蜗蜗很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂.最近准 ...
- ARM WFI和WFE指令【转】
本文转载至:http://www.wowotech.net/armv8a_arch/wfe_wfi.html 1. 前言 蜗蜗很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂.最近准备研究 ...
- ARM WFI和WFE指令
1. 前言 蜗蜗很早以前就知道有WFI和WFE这两个指令存在,但一直似懂非懂.最近准备研究CPU idle framework,由于WFI是让CPU进入idle状态的一种方法,就下决心把它们弄清楚. ...
- STM32单片机-汇编指令2
目录: 11.STMFD和LDMFD指令 1)STMFD SP! ,{R0-R7,LR} 2)LDMFD SP! ,{R0-R7,LR} 99.伪指令 1)PROC伪指令 2)EXPORT伪指 ...
- arm 待机指令 WFI和WFE
百度百科上对于待机的解释: 待机是将当前处于运行状态的数据保存在内存中,机器只对内存供电,而硬盘.屏幕和CPU等部件则停止供电.由于数据存储在速度快的内存中,因此进入等待状态和唤醒的速度比较快. 对于 ...
- STM32单片机-汇编指令1
目录: 1.ldr/str/mov指令 1)LDR指令 2)STR和LDRB指令 3)MOV指令 4)使用示例 2.MOVS指令 3.LDM表示装载,STM表示存储 4.teq指令 5.使 ...
- RAM汇编指令DMB、DSB、ISB、SEV等
最近用keil调试STM32时,在代码中遇到了一些汇编指令,如DMB.DSB.ISB.SEV,现总结如下: DMB.DSB.ISB.SEV等指令都属于RAM汇编指令,在<ARM Cortex-M ...
- arm汇编指令详细整理及实例详解
目录 一.简介 二.ARM 汇编指令说明 2.1 32位数据操作指令 2.2 32位存储器数据传送指令 2.3 32位转移指令 2.4 其它32位指令 三.实例讲解 3.1 MRS 3.2 MSR 3 ...
最新文章
- 算法-------LIS算法(Java版本)
- 用示波器恢复软盘里的游戏,这个程序员大神的操作太硬核了
- case 关键字后面的的值有什么要求吗?
- 【推荐系统】协同过滤 零基础到入门
- python tkinter计算器实例_python -Tkinter 实现一个小计算器功能
- 未知的生成错误 因为没有预加载,所以无法解析程序集 GalaSoft.MvvmLight
- layui文本框填充值_layui输入框中只允许输入整数的实现方法
- java ldap 分页_具有从属引用的 LDAP 分页查询未正确处理
- 无法打开虚拟机“Ubuntu2” (D:\software\Ubuntu2.vmx): 未找到文件。 是否从库中移除“Ubuntu2”?
- Redis五大基本数据类型及其相关命令及常用用途
- 算法工程师面试备战笔记2_一个完整机器学习项目的流程
- HTTP/2之服务器推送(Server Push)最佳实践
- 计算机网络—数据链路层的流量控制与可靠传输机制(思维导图)
- 以京东为代表电商平台成中华老字号销售增速最快渠道
- 【Python】:用python做下百度2014笔试题
- 应用安全_WTS-WAF绕过
- 等比缩放公式_CVPR2019 | 旷视提出MetaSR:单一模型实现超分辨率任意缩放因子
- 语音芯片c语言程序,语音芯片4004C语言.doc
- Kerberos认证模型(c语言实现)
- 计算机无法验证签名,win7系统无法验证文件数字签名的解决方法