发新帖我要提问
12
返回列表
打印

stm8 iar中,为什么进入中断,就修改一次中断级别

[复制链接]
楼主: solo777
手机看帖
扫描二维码
随时随地手机跟帖
21
香水城| | 2012-1-10 16:26 | 只看该作者 回帖奖励 |倒序浏览
上面那句话,关键疑惑的地方,就是this

那个this到底是指那个!!!!!

我怎么看都不明白。
最后不看了,我怕我会疯掉!
solo777 发表于 2012-1-10 15:55


this routine 是指那个包含DIV/DIVW指令的函数,它又会被中断函数打断。

使用特权

评论回复
22
香水城| | 2012-1-10 16:29 | 只看该作者
香水,问你一下

这个错误上面的
Stack pointer address incompatibility across family devices

这个是什么意思,

Stack pointer address incompatibility across family devices
Description
Stack pointer addr ...
solo777 发表于 2012-1-10 15:58


这个是说不同的型号,可能堆栈指针的地址范围不尽相同,因为RAM的地址范围不同;其实这不是Bug,只是移植时有些不便。

使用特权

评论回复
23
solo777|  楼主 | 2012-1-10 18:09 | 只看该作者
this routine 是指那个包含DIV/DIVW指令的函数,它又会被中断函数打断。
香水城 发表于 2012-1-10 16:26


If an ISR or a function called by this routine contains a division operation,

called by 是这个包含div的函数调用其他????

这个程序调用自身??

"isr或者这个程序调用的其他函数,包括一个除法操作。"这应该是正确的翻译。

这个说明写的太不仔细了,断句太多疑问。

我最后觉得正确翻译应该是:这个isr服务程序中,或者在isr服务程序中调用的函数代码段中有div操作,可能会错误。


使用特权

评论回复
24
solo777|  楼主 | 2012-1-10 18:15 | 只看该作者
This error occurs when the DIV/DIVW instruction is interrupted and a second interrupt is generated during the execution of the IRET instruction of the first ISR.

这个里面有太多的含义了。我的理解是:当div指令被中断,这是一个状态

然后在运行中断是发生在第一个中断执行iret指令的时候。

这两个状态使用and链接。

这个and 到底是联合组成一个,描述发生时候的两个条件。
还是两个都是单独并列的情况。


文档没有说清楚。

唉!!!!!!!

使用特权

评论回复
25
solo777|  楼主 | 2012-1-10 18:16 | 只看该作者
其实DIV/DIVW这个问题已经被编译器解决了,如果你不研究编译产生的代码,你是看不见的;所以说你并没有遇到Bug,是你钻研太深了,:lol
香水城 发表于 2012-1-10 16:25


我在抑制os,需要看调用规范,和编译器保护那些,那些不保护。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则