TI中文支持网
TI专业的中文技术问题搜集分享网站

请教关于MSP430汇编中的指令DINT和EINT。(文中图片来自MSP430F169的英文用户指南)

如图所示,红圈中的文字是什么意思,DINT指令后跟随NOP指令的原因是啥。在胡大可的中午书中的例子中并没有NOP。是否DINT执行后的第一条指令仍有被中断的风险。

再有EINT指令,上图红圈中所述是否表达的是:EINT后的这条指令会不受中断影响,即使目前有已经挂起的中断请求。

灰小子:

没看过胡大可的中午书。

这种情况以官方的资料为准就好。非官方的资料偶尔会有写错误或者问题也很常见,你懂得

XiaoLiang Gao:

回复 灰小子:

呵呵,拼音害死人啊,是‘中文书’。上面的英文就是官方资料,事实上官方资料错误也不少,描述指令的这几页就有。

我的这个问题是没太理解官方资料所述,胡大可的中文资料翻译自早期的官方英文,所以可以简单借鉴。

总结我的问题是: 1、DINT后的第一条指令知否仍有被中断的风险?这个NOP插在这里的真实作用是什么?

                                 2、EINT后的第一条指令是否总是执行,不会被中断?

Lichen Wang:

回复 XiaoLiang Gao:

任何指令都不可能被中斷. 中斷只可能在一個指令和下一個指令之間發生.

DINT 和 EING 在執行下一條指令後才生效.

因此, 在下面的指令序列中; DINT 和 指令1 之間可能被中斷.  指令1到指令a之間不可能被中斷. 指令a後可能被中斷.

DINT

指令1

指令2

指令3

指令4

EINT

指令a

指令b

指令c

XiaoLiang Gao:

回复 Lichen Wang:

感谢你的回复!同意你的看法,我可能没表达清楚,我指被中断就是在指令与指令之间。

实际上我最困惑的位置来自数据手册中DINT的那个例子和它下面的注解。如下例:

DINT

NOP

指令1

指令2

在后面的注释中也提到这个NOP,按常规理解中断只会发生在NOP指令之前,那NOP指令还有存在的必要吗?在胡大可早期的译注书中(翻译自用户指南)也有同样的例子,几乎完全一样。不同的就是没有加NOP和相关NOP的文字注释。

在举例:

下面两种代码,都在执行DINT指令时发生中断请求,中断处理程序没有列出,中断处理是对R15进行-1操作。

clr     r15

DINT

inc   r15

jmp $

;————————————-

clr     r15

DINT

nop

inc    r15

jmp $

最后结果会有不同?还是我的例子不太恰当没有找到比较好的切入点?

如果假设NOP指令加在这里确实有特殊的原因,那这个原因是什么?本质又是什么原因造成的呢?

由这个DINT后加NOP可以引申到与DINT相对应的EINT,EINT是不是也会存在同样或类似的原因呢。

Lichen Wang:

回复 XiaoLiang Gao:

XiaoLiang Gao

实际上我最困惑的位置来自数据手册中DINT的那个例子和它下面的注解。如下例:

DINT

NOP

指令1

指令2

在后面的注释中也提到这个NOP,按常规理解中断只会发生在NOP指令之前, . . .

可是使用手冊似乎是說中断仍然可能会发生在NOP指令之後. 也就是說, DING在執行下一條指令 (NOP) 後才生效. 舊扳的使用手冊沒有提到這一點. 我不知誰是誰非.

XiaoLiang Gao:

回复 Lichen Wang:

NOP在这里使问题看起来变得复杂、有意思了。

从JTAG仿真MSP430169来看,中断位置发生在NOP之前。但这只是初步试验的结果,无法定性。

假设我首贴贴图中的数据手册正确,并且可以理解成   ‘中断有机会发生在NOP指令之后’,那么下面这个例子会出现什么情况呢?

DINT

EINT

指令1

指令2

注:假设中断请求发生在DINT指令执行时。

那么中断实际发生在哪里呢?EINT指令之前和指令1之后两种情况都有可能? 

XiaoLiang Gao:

回复 XiaoLiang Gao:

再看看这个TI原作 《 MSP430 Family Architecture Guide and Module Library》中附录的说明。

Susan Yang:

回复 XiaoLiang Gao:

建议大家参考下  http://www.ti.com.cn/cn/lit/ug/slau387c/slau387c.pdf 第7页的说明。

XiaoLiang Gao:

回复 Susan Yang:

Susan Yang

建议大家参考下  http://www.ti.com.cn/cn/lit/ug/slau387c/slau387c.pdf 第7页的说明。

XiaoLiang Gao:

回复 XiaoLiang Gao:

正在积极与TI联系,感兴趣的朋友请耐心等待。感谢Susan Yang的大力协助!

赞(0)
未经允许不得转载:TI中文支持网 » 请教关于MSP430汇编中的指令DINT和EINT。(文中图片来自MSP430F169的英文用户指南)
分享到: 更多 (0)