其实这条语句在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 …

asm(” RPT #7 || NOP”)相关推荐

  1. 关于asm(” RPT #N || NOP”)

    其实这条语句在DSP等系统开发中经常要用到,比如更改某些配置后需要延时几个时钟周期才能够生效,这时asm(" RPT #7 || NOP")便可以闪亮登场了.虽然这个功能我们都知道 ...

  2. CCS DSP28335 asm(“ RPT #8 || NOP“); 报错Target ‘all‘ not remade because of errors.

    asm(" RPT #8 || NOP"); 编译报错 报错的代码 报错的结果 正确代码与错误代码比较 很明显是因为空格的问题导致了代码报错. 具体格式如下: asm(" ...

  3. asm(” RPT #N || NOP”)

    对于TMS320F28335而言asm(" RPT #N || NOP")会执行N+1次NOP指令,占用N+1个指令周期. 正常情况下占用N+1个时钟周期.

  4. TMS320F28335时钟(1)

    TMS320F28335时钟(1)  PLL作用就是对外部时钟进行倍频,降低产生高频时钟信号的成本.但是倍频配置的时候,需要在特定的条件下更改,因此需要检测PLL工作的各种状态信号,因此PLL有两个配 ...

  5. 28035 CLA 学习

    CLA特征: 1.与主CPU采用相同的系统时钟 2.单独的架构,具备独立的数据和程序总线: 3.支持最多8个任务或中断,其中任务1优先级最高: 4.可以直接访问PWM.ADC等寄存器,注意28035 ...

  6. DSP Flash运行代码

    在前面章节那些实验我们都是将程序烧写到芯片 RAM 中运行调试的,我们知道 RAM 中存储的东西在掉电后是会丢失的,也就是说程序烧入到 RAM 中运行,如果系统电源关闭后再开启,之前下载的程序是不会再 ...

  7. DSPF28335学习笔记

    1. GPIO GPxMUX(功能选择寄存器), GPxMUX.bit=0配置为I/O功能.GPxMUX.bit=1配置为外设功能.复位时所有GPIO配置为I/O功能. GPxDIR(方向选择寄存器) ...

  8. 将flash中的代码复制到RAM中运行的方法

    在MCU的使用过程中,偶尔会遇到将flash中的代码复制到RAM中运行的情况,下面就来说一下具体的方法,以28335的flash初始化为例: 1,编写函数,该函数处于flash中,就是我们即将要复制的 ...

  9. DSP28335使用SPI从AD2S1210(旋变芯片)读取位置

    前言 精准的转子位置对于电机精确控制来说至关重要,利用旋转变压器获取转子位置角度是一种常见方案.因此在电控程序中只需要通过主控芯片(以DSP28335为例)与旋变解码芯片(以AD2S1210为例)进行 ...

最新文章

  1. 数字图像处理6:配准与掩膜
  2. Android之EasyPermissions源码解析
  3. javascript数据结构-介绍
  4. 新手入门深度学习 | 2-1:图像数据建模流程示例
  5. 2018及以后的热门网络技巧
  6. ldap集成nginx
  7. Java面向对象(17)--类代码块
  8. Nginx大规模并发原理
  9. YaCy开源搜索引擎的热门技巧
  10. 如何使用C#压缩文件及注意的问题!
  11. python计算auc的代码_python是怎么计算auc指标的?
  12. Android系统开发之唤醒与功耗
  13. 三角形内部线性插值方法
  14. html的兼容有哪些,HTML里需要兼容验证的浏览器有哪些
  15. LeetCode:递归思想的延伸,从斐波那契数列到爬楼梯模型
  16. php 支持泛型,PHP对Java样式类的泛型有答案吗?
  17. 计算机专业创新创业培养,中职计算机专业学生创新创业能力培养思考
  18. idea中启动项目 就报异常
  19. ERROR: No matching distribution found for cv2解决方案
  20. 构建具有丰富功能的交互式 Kiosk

热门文章

  1. 仓山工业机器人_2019年福建省机器人行业企业名录127家
  2. 《算法和数据结构》数据结构篇
  3. python manage.py startapp app 执行成功但未生成 app文件夹 解决办法
  4. Pepper/Nao中级教程:第二章 如何将Python程序部署到机器人内部运行
  5. Pro SQL Server Internals, 2nd edition》CHAPTER 1 Data Storage Internals节选翻译
  6. 托福要学会多少单词量才能考出比较高的分数?
  7. 【Elasticsearch】文本分析 Text analysis 查询_search中使用分析 (3)
  8. Rust actix aiohttp_Actix - Web:稳定、快速的Rust语言Web框架(安装与应用)
  9. 基于 Agora SDK 实现 Web 端的多人视频互动
  10. python编程用台式还是笔记本好_编程选什么笔记本电脑?