asm(” RPT #7 || NOP”)那点事
来源:互联网 发布:苏州掌柜软件 编辑:程序博客网 时间:2024/05/18 02:07
其实这条语句在DSP等系统开发中经常要用到,比如更改某些配置后需要延时几个时钟周期才能够生效,这时asm(” RPT #7 || NOP”)便可以闪亮登场了。虽然这个功能我们都知道而且经常使用,但是具体的细节很多人却不知道,包括我。今天在一个交流群里有人突然问这条指令下去执行之后,会占用多少时钟周期呢?结果可想而知问蒙了。
简单写段代码编译下载到片子里面(我是用的28335进行测试的!),观察CPU Timer0寄存器的TIMER0TIM位。发现执行asm(” RPT #7 || NOP”)之后,TIMER0TIM位增量是8.也就是说每执行一次需要8个时钟周期。确切的说是8个指令周期。这只是对CPU空闲的情况而言,因为空闲的时候,一个指令周期大约就是一个时钟周期。如果28335有任务的时候,可能就会占用9个抑或更多的时钟周期,这要分析流水线等因素。实际应用时,大可不必如此精准。用别的片子也可能会多于8个时钟,主要看片子执行每条指令需要多少个时钟周期。但有一点可以肯定的是asm(” RPT #7 || NOP”)这条指令必然会侵占8个指令周期.因为这条指令的意思就是重复执行7+1=8次 NOP 指令。
简单的总结一下:
对于TMS320F28335而言asm(” RPT #N || NOP”)会执行N+1次NOP指令,占用N+1个指令周期。正常情况下占用N+1个时钟周期。其他的片子占用的时钟周期自己计算。O(∩_∩)o …
0 0
- asm(” RPT #7 || NOP”)那点事
- 关于asm(" RPT #7 || NOP")的一点解释
- 关于asm(” RPT #N || NOP”)的解释
- 28335学习笔记:asm(" RPT #N || NOP")
- 关于asm(” RPT #N || NOP”)的一点解释
- NOP
- 面试那点事
- 公司那点事
- 编程那点事!!
- 公务员那点事
- 毕业那点事
- JVM 那点事
- C++那点事
- 【粗心】那点事
- 【春运】那点事
- 内存那点事
- 程序员那点事
- Ext那点事
- 迅捷PDF编辑器如何编辑PDF文字图文教程
- C++中char*和LPCTSTR类型的转化
- Android开发艺术探索
- ubuntu 14.04中安装 ruby on rails 环境(填坑)
- collectionview通过设置contentInset方式添加表头Header,影响MJRefresh使用的解决方案
- asm(” RPT #7 || NOP”)那点事
- Cocos2d-lua(五)config.json 和 config.lua
- Android Studio使用Lombok消除冗长的 java代码
- 沙箱和数据集市的区别
- FAST迅捷FW150US无线网卡安装说明
- git 使用问题
- javascript this指向详解
- POJ3977-Subset【双向搜索】
- Jetty实战之 嵌入式Jetty集成Spring运行