TI论坛
直播中

刘超

8年用户 1529经验值
私信 关注
[问答]

请问C6678实时处理过程中使用中断嵌套的实现原理是什么

请教:
        在我们的应用中使用到了中断嵌套,方法是使用汇编代码(intrNest_En和intrNest_Dis)。现在有一些问题希望指点:
        1、实现原理是不是就是在进入中断时打开中断全局屏蔽,退出时关闭?除了这些需要有别的操作吗?
         2、中断之间的切换要多少时间呢?能否在1us之内完成?
         3、是否保证了一个中断服务只能被更高优先级的中断打断?
         4、是否有一些代码在执行过程中不可能被打断?这些代码主要有哪些呢?
         5、通常来说,在C6678中使用中断嵌套是不是不提倡的?会对流程有哪些不良影响?
         谢谢!

回帖(3)

谭齐慧

2019-1-7 11:15:52
1. 不知道你调的函数的具体实现。一般就是在进入中断时操作GIE和IER。
2. 硬件中断响应时间一般是几百个周期,应该在1us之内。
3. 可以通过IER控制实现。
4. 跳转指令的保护周期不会被打断,硬件保证的。有些情况如果被打断的话可能会出问题,编译器会帮你关中断。请参阅C6000编程指南。
5. 如果你理解并正确处理了这些限制,那就没问题。
举报

刘超

2019-1-7 11:22:42
引用: lkjljljlj 发表于 2019-1-7 07:31
1. 不知道你调的函数的具体实现。一般就是在进入中断时操作GIE和IER。
2. 硬件中断响应时间一般是几百个周期,应该在1us之内。
3. 可以通过IER控制实现。

你好:
        您说第3个“可以通过IER控制实现”,您的意思是系统不会自动保证高优先级中断不被低优先级中断打断?
        
举报

谭齐慧

2019-1-7 11:28:02
引用: jenny042 发表于 2019-1-7 07:38
你好:
        您说第3个“可以通过IER控制实现”,您的意思是系统不会自动保证高优先级中断不被低优先级中断打断?
        

对,优先级由软件实现。软件通过IER把软件认为优先级高的中断enable,把软件认为优先级低的中断disable,这样就可实现高优先级中断抢断,而低优先级中断被屏蔽。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分