最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
Eric Ma:
进入中断后,CPU默认关全局中断,保存IER,进入ISR,执行完后恢复IER,开全局中断。
进入ISR后,如果执行EINT,即开全局中断,这时候任何使能的中断都能够再让CPU去相应。
IER|=M_INT1; 是使能这组中断,让这组中断源能够嵌套。
IER&=M_INT1; 是屏蔽其他中断,然这个ISR中只有第一组能够进行中断嵌套。
由于进中断的时候IER已经有保存了,所以在这个过程IER如何改变都没关系。
Eric
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
Henry Le:
回复 Eric Ma:
进入ISR后执行IER |= M_X; EINT;当前中断是否可以嵌套打入。比如Timer0是否可被自己重入?
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
Eric Ma:
回复 Henry Le:
是可以的。如果你不想要,可以通过IER关掉。
Eric
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
Henry Le:
回复 Eric Ma:
你的意思是否中断可以被自身中断嵌套,自己打断自己,那嵌套层数是多少,可以嵌套几次。
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
Eric Ma:
回复 Henry Le:
没有限制多少层,但是每次嵌套都会压栈,堆栈空间是有限的。
另外,实际应用中,常用嵌套一层。
Eric
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
user3506888:
回复 Eric Ma:
您好,请问该方法能实现不同组别中断的嵌套吗?
例如:欲实现在DMA中断中嵌套定时器中断1,下面的方式能实现吗?
interrupt void Dma_ISR(void)
{
IER |= M_INT7; IER &= M_INT1; PieCtrlRegs.PIEIER1.all &= 0x40; PieCtrlRegs.PIEACK.all = 0xFFFF; asm(" NOP"); EINT;
……..
……..
}
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
qingsong tan:
回复 Eric Ma:
你好,请问下怎样的中断方式才叫做多级中断嵌套呢?
本人在中断嵌套这里遇到一个中断循环嵌套(自我理解只是一级嵌套),但是无法一直执行的问题,还望指点下,谢谢,非常感谢!
具体情况见附录文件
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
xinglei wang:
回复 Eric Ma:
“这时候任何使能的中断都能够再让CPU去相应”,这句是不是意味着比当前中断优先级低的中断也能相应?
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
Eric Ma:
回复 xinglei wang:
“这时候任何使能的中断都�够再让CPU去相应”,这句是不是意味着比当前中断优先级低的中断也能相应?
ERIC:
是,如果开中断嵌套后,那么低优先级的中断也可以打断被嵌套的高优先级中断。
最近在使用F28335做控制器,需要一些中断,现在问几个问题,看自己的理解对不对。
1. 从响应中断-即对IFR.X对应的中断作出相应,到进入ISR过程所有可屏蔽中断是不能打入的?
2. 在进入ISR后,执行EINT 后,比当前中断优先级高的中断可以打入?
3. 在进入ISR后,执行IER |= M_X; EINT; 重新使能当前中断后,当前中断和更高优先级中断可以打入?
4. 在例程中有
IER |= M_INT1;
IER &= MINT1;
后一语句的作用是什么,理解为屏蔽其它中断,为什么这样做?
请高手帮忙回答下
Fangyuan Zeng:
回复 Eric Ma:
您好,Eric Ma!
想请教一下您几个问题:
1.如果我想实现通过ePWM的SOC信号来触发ADC和DMA的中断,因为他们的中断不同组是否也涉及到中断嵌套的问题?
2.DMA触发源是有ePWM的SOC的,但是为什么DMA定义的头文件中只定义了前17个中断源,对18到31未作定义,可否用户自己定义,还是有其他的什么限制?
希望您可以回答,谢谢!
TI中文支持网



