关于asm(" RPT #7 || NOP")的一点解释
2012-05-07 19:14
351 查看
其实这条语句在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 …
简单写段代码编译下载到片子里面(我是用的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 …
相关文章推荐
- 关于tasklet的一点小小的解释
- 关于"VC技术内幕"-控件上绘图代码的解释
- Hibernate配置文件中关于discriminator 的一点解释
- 关于hibernate中报错”The content of element type "class" must match ......“的一点发现
- 关于鼠标拖拽的一点解释
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- 关于cmp函数返回值的一点小解释
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Objective-C之学一点记一点 关于sqlite3_prepare_v2的各返回值解释
- 学习笔记:关于" No ResultSet was produced"
- 关于C++内存的一点解释。
- ABAP 关于BAPI的EXTENSIONIN 一点解释
- 关于springmvc中web.xml配置dispatherservlet的pattern中"/"的疑问解释
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- 28335学习笔记:asm(" RPT #N || NOP")
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- 关于python3.5-32 pyinstaller 启动时提示"ImportError: No system module 'pywintypes' (pywintypes35.dll)的解决方法"
- 关于堆、栈的一点解释
- 关于document.write()会清空dom的一点解释