一、参考DSP281x_Device.h
#define  EINT   asm(" clrc INTM")  //INTM置0,开中断
#define  DINT   asm(" setc INTM")  //INTM置1,关中断
#define  ERTM   asm(" clrc DBGM")  //使能调试事件
#define  DRTM   asm(" setc DBGM")  //禁止调试事件
二、参考《TMS320C28x DSP CPU和指令集参考指南》中对INTM和DBGM的解释(译的不好,凑合看吧。。。)
1、DBGM
Bit 1:调试启用屏蔽位。当DBGM置位时,仿真器无法在实时状态下访问内存或寄存器。调试器无法更新其窗口。
    在实时调试模式中,若DBGM = 1,则CPU忽略停止请求或硬件断点,直到DBGM清零。DBGM并不阻止CPU停止在软件断点。这点的一个影响可以在实时调试模式中看到。如果你在实时调试模式中单步执行一个指令,并且这条指令置位DBGM,CPU继续执行指令,直到DBGM被清零。
    当你给TI调试器“实时”命令时(进入实时模式),DBGM强制为0。令DBGM = 0确保了允许调试和测试直接内存访问 (DT-DMAs);内存和寄存器的值可传递到主处理器,用于更新调试器窗口。
    CPU在执行中断服务程序(ISR)之前将DBGM置位。当DBGM = 1时,来自主处理器和硬件断点的停止请求被忽略。如果你想要单步执行程序或在对时间要求不严格的ISR中设置断点,那么你必须在ISR的开始处增加一条CLRC DBGM指令。
    DBGM主要用在时间要求严格的程序代码部分的仿真,来阻止调试事件。DBGM使能或禁止调试事件,如下:
0   调试事件使能。
1   调试事件禁止。
    当CPU响应中断时,DBGM的当前值存储到堆栈中(当ST1存储在堆栈中时),然后DBGM置位。当由中断返回时,DBGM由堆栈中恢复。
    此位可分别由SETC DBGM指令和CLRC DBGM指令复位和清零。DBGM在中断操作期间被自动置位。复位时,DBGM置位。执行ABORTI (中止中断)指令也可以将DBGM置位。
2、INTM
Bit 0:中断全局屏蔽位。此位从全局上使能或禁止所有可屏蔽CPU中断(那些可由软件阻止的中断):
0   可屏蔽中断被全局使能。为了被CPU认可,则可屏蔽中断也必须被中断使能寄存器(IER)局部使能。
1   可屏蔽中断被全局禁止。即使一个可屏蔽中断被IER局部使能,也不会被CPU认可。
    INTM对非可屏蔽中断没有影响,包括硬件复位或软件复位中断NMI。此外,当CPU在实时仿真模式下被停止时,由IER和DBGIER使能的中断将被响应,即使INTM设置为禁止可屏蔽中断。
    当CPU响应中断时,INTM的当前值存储到堆栈中(当ST1存储在堆栈中时),然后INTM置位。当由中断返回时,INTM由堆栈中恢复。
    此位可分别由SETC INTM指令和CLRC INTM指令复位和清零。复位时,INTM置位。INTM的值不会引起中断标志寄存器(IFR)、中断使能寄存器(IER)或调试中断使能寄存器(DBGIER)的改变。

【转】对程序中常出现的EINT、DINT、ERTM、DRTM的理解相关推荐

  1. 一些程序中常出现的英文符号的读法

    英语是计算机界的通用语言,我们平时除了看一些英文的文献资料有时还需要通过英文的视频(主要在Youtube上)来学习,有时会听到一些符号的读法,这些不太起眼的东西通常不会引起人们的重视,但有时却会成为硬 ...

  2. 命名空间不能直接包含_C++程序中可以命名的5种元素

    C++程序中的许多元素都有用来表示它们的名称(也称为标识符).在C++程序中,可以命名的5种元素是: (1) 函数.函数是自包含的.可执行代码的命名块.第8章将详细讨论如何定义函数. (2) 变量.变 ...

  3. 【解析】在高级语言源程序中, 常需要用户定义的标识符为程序中的对象命名,常见的命名对象有()

    在高级语言源程序中, 常需要用户定义的标识符为程序中的对象命名,常见的命名对象有() A.关键字 B.变量 C.函数 D.数据类型 E.注释 一个一个分析: 关键字 :虽然很多关键字都可以用过defi ...

  4. MFC应用程序中添加控制台窗口

    在MFC程序中输出调试信息的方法有两种,一种是使用TRACE宏,可以向Output窗口输出调试信息:另一种是用MessageBox,弹出消息框来输出调试信息,但会影响程序的运行. 其实有一种方法可以更 ...

  5. python在中小学教学中的应用-在python程序中的进程操作

    ********在python程序中的进程操作********之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了, 运行中的程序就是一个进程.所有的进程都是通过 ...

  6. 面向对象程序中的常量

    一.常数据成员 使用constkeyword进行说明的数据成员,称为常数据成员.其作用和使用方法与一般常变量(const变量)相似,但常数据成员的值是不能改变的. 注意:仅仅能通过构造函数的參数初始化 ...

  7. php mysql设计中常问_PHP开发中常见的设计模式

    一.工厂模式 工厂模式是我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式. 使用工厂模式的好处是,如果你想要更改所实例化的类名等,则只需更改该工厂方法内容即可,不需逐一寻找代码中具体实 ...

  8. bluemix java_Bluemix 基础:将 SQL 数据库添加到您的 Java 应用程序中

    概述 学习如何在 Bluemix 上创建一个 SQL 数据库,并将其添加到您的 Java Web 应用程序中.探索一个数据驱动.动态生成的网络商店,该商店会根据当前库存水平来改变外观.使用基于 Web ...

  9. lombok 生成代码_使用Project Lombok减少Java应用程序中的样板代码

    lombok 生成代码 对Java编程语言最常提出的批评之一是它需要大量的样板代码 . 对于简单的类尤其如此,该类只需要存储一些值就可以. 您需要这些值的getter和setter方法,也许您还需要一 ...

  10. 使用Project Lombok减少Java应用程序中的样板代码

    对Java编程语言最常提出的批评之一是它需要大量的样板代码 . 对于简单的类尤其如此,该类只需要存储一些值就可以. 您需要这些值的getter和setter,也许您还需要一个构造函数,覆盖equals ...

最新文章

  1. php包含文件时显示空白页,php中添加了如下语句出现空白页 删除页面zhengchang
  2. 学习org-mode
  3. easyScholar——文献数据库插件
  4. [设计原则与模式] 如何理解TDD的三条规则
  5. SpringBoot JPA不调用save方法,调用set方法就自动修改了数据库值
  6. 使用lt;jsp:includegt;,不想写死URL,动态生成URL的解决的方法
  7. jdbc版本低MySQL版本高_Mysql JDBC驱动版本与Mysql版本的对应问题解决
  8. matlab 度表示,在matlab中,单精度类型用关键字()表示,双精度类型用关键字()表示...
  9. 360云盘直链解析PHP,360云盘分析直链解析
  10. 【每日算法Day 71】面试官想考我这道位运算题,结果我给出了三种解法
  11. 老路教你用得上的商学课_系列笔记
  12. 对话惠普亚太区高管:绿色智慧的中国战略
  13. 美国交通信号配时实践经验
  14. android twitter 分享代码,Twitter分享集成
  15. win10如何删除输入法_30秒解决Win10下输入法栏消失无法输入中文的难题
  16. ios禁止屏幕旋转的几种方法
  17. 可能是国内最火的开源项目 —— PHP 篇
  18. Docker学习十:网络
  19. 解决redis 6379本地可以访问,外网却不行
  20. thinkphp phpmailer发送邮件

热门文章

  1. 【分享】新品TI AM5708开发板!DSP+ARM异构多核!相比OMAP-L138,性能升级;相比AM5728,成本优化、功耗更低!
  2. 工作中沟通和执行力的重要性-开发、项目经理、需求之间的矛盾冲突
  3. VHDL实现数码管的动态扫描(可以连接其他的模块)
  4. 详解高速缓存存储器的3种映射方式
  5. excel 模糊查询
  6. 腾讯校招20道选择题含答案
  7. 单片机、ARM、DSP、FPGA区别与应用领域
  8. matlab 矩阵转数组,matlab数组与矩阵
  9. Java并发编程面试题合集
  10. PyTorch实现TPU版本CNN模型