7307|2

5979

帖子

8

TA的资源

版主

楼主
 

学习点滴之__WFI() [复制链接]

看lpc1343的程序总是在while(1)里面会出现这样一个语句,不明所以然,只好到处找答案,记录如下。

 

NOP、SEV、WFE、WFI 和 YIELD

无操作、设置事件、等待事件、等待中断和通知。

语法

NOP{cond}
SEV{cond}
WFE{cond}
WFI{cond}
YIELD{cond}

其中:

cond

是一个可选的条件代码。

用法

这些是提示指令。 是否实现这些指令是可选的。 只要其中任何一个指令未实现,则与 NOP 效果相同。

 

NOP

NOP 不执行任何操作。 在您的目标体系结构中,如果 NOP 没有作为特定指令实现,则汇编器将其视为伪指令,并生成不执行任何操作的另一条指令,例如 MOV r0, r0 (ARM) 或 MOV r8, r8 (Thumb)。

NOP 未必一定是消耗时间的 NOP。 也许在该指令执行前,处理器就会将其从管道中删除。

您可以利用 NOP 进行填充,例如将后续指令置于 64 位边界上。

 

SEV

SEV 会导致向多处理器系统的所有内核发送事件信息。 如果实现了 SEV,则还必须实现 WFE

 

WFE

如果未设置事件寄存器,则 WFE 会暂时中断挂起执行,直至发生任一以下事件后再恢复执行:

  • 发生 IRQ 中断,除非被 CPSR I 位屏蔽

  • 发生 FIQ 中断,除非被 CPSR F 位屏蔽

  • 发生不精确的数据中止,除非被 CPSR A 位屏蔽

  • 出现调试进入请求(需启用调试)

  • 另一个处理器利用 SEV 指令向事件发送信号

如果设置了事件寄存器,则 WFE 会清除该设置,然后立即返回。

如果实现了 WFE,则还必须实现 SEV

 

WFI

WFI 会暂时将执行中断挂起,直至发生以下事件后再恢复执行:

  • 发生 IRQ 中断,不考虑 CPSR I 位

  • 发生 FIQ 中断,不考虑 CPSR F 位

  • 发生不精确的数据中止,除非被 CPSR A 位屏蔽

  • 出现调试进入请求,无论是否启用调试

 

YIELD

YIELD 可告知硬件有线程正在执行任务,例如可换出的自旋锁。 硬件可使用此提示在多线程系统中暂挂并恢复执行线程。

体系结构

这些 ARM 指令可用于 ARMv6K 及更高版本。

这些 32 位 Thumb 指令可用于 ARMv6T2 及更高版本。

这些 16 位 Thumb 指令可用于 ARMv6T2 及更高版本。

NOP 可在其他所有 ARM 和 Thumb 体系结构中用作伪指令。

此帖出自NXP MCU论坛

最新回复

走对地方啦!!!  详情 回复 发表于 2010-8-4 20:29
点赞 关注
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 

回复
举报

2955

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
学习了............
此帖出自NXP MCU论坛
 
个人签名不断地学习,才会有创新!
淘宝小店:手机、qq点卡、游戏点卡自动充值 http://shop63727265.taobao.com/
 
 

回复

790

帖子

66

TA的资源

五彩晶圆(初级)

板凳
 
走对地方啦!!!
此帖出自NXP MCU论坛
 
个人签名行动才有结果,知识并非力量 !
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表