嵌入式开发者社区

标题: c6748,怎么实现中断嵌套? [打印本页]

作者: likuihan    时间: 2014-12-25 14:17
标题: c6748,怎么实现中断嵌套?
创龙工作人员: 您好,我现在一个bsp事件产生edma3中断,edma3中断号为int6,而timer中断设置为int11。
现在我想在timer中断服务函数中被edma3来的中断抢占(即timer的中断服务暂停,去执行bsp事件引起的edma3中断服务),即中断嵌套,怎么实现呢?我在c6748的文档中也没有找到相关的操作,请问你们有此方面的例程吗?



作者: 希望缄默    时间: 2014-12-25 14:24



C6748 硬件上只支持可屏蔽中断和不可屏蔽中断之间的嵌套

建议您使用 SYS/BIOS 系统实现的中断嵌套


作者: likuihan    时间: 2014-12-25 15:12
很感谢您的回复!
SYS/BIOS 系统内部是怎么实现的?如果用Startware 软件怎么实现!因为我不想使用SYS/BIOS系统!

作者: 希望缄默    时间: 2014-12-25 16:18
likuihan 发表于 2014-12-25 15:12
很感谢您的回复!
SYS/BIOS 系统内部是怎么实现的?如果用Startware 软件怎么实现!因为我不想使用SYS/BIOS ...

这个..... 还是比较复杂的

主要原理是这样的
有更高优先级中断产生后,开始保存通用寄存器、PC指针、堆栈指针、中断状态、返回指针等信息
然后进入中断服务函数,返回后再进行低优先级中断服务函数 ......
而且要自己实现中断优先级的调度
难度还是很大的

作者: likuihan    时间: 2014-12-25 17:05
希望缄默 发表于 2014-12-25 16:18
这个..... 还是比较复杂的

主要原理是这样的

这个实现你们有代码例程吗?你们有实现过例程吗?
实现中断优先级的调度,这个怎么实现?

作者: 希望缄默    时间: 2014-12-25 18:04
likuihan 发表于 2014-12-25 17:05
这个实现你们有代码例程吗?你们有实现过例程吗?
实现中断优先级的调度,这个怎么实现?
...

据说所知 谁也不会做这个的(学习除外)~
因为使用实时操作系统就可以解决了~

不过啊 根据你的需求 应该用不到中断嵌套的~

作者: bit0rain    时间: 2014-12-31 16:40
omapl138有中断管理器,里面提供中断嵌套的功能,但是关于栈的处理还需要自己来做

作者: 377711    时间: 2018-5-19 19:44
你好,,你的中断嵌套问题解决了吗?




欢迎光临 嵌入式开发者社区 (https://51ele.net/) Powered by Discuz! X3.4