tianyixueshi 发表于 2018-1-22 23:08:24

那个零延迟中断是怎么实现的呢?

最近在看RTX的源代码,硬汉多次提到了零延迟中断。。我理解的是进中断的时间和裸机一样的,不知道对不对?
那RTX是怎么利用M3和M4的特性实现的呢?看来RTX和M3/M4架构耦合的很紧,像是量身打造
@eric2013

eric2013 发表于 2018-1-23 01:26:41

1. 对的。
2. 主要是两个方面,一个是任务级API函数通过SVC软中断调用,这样就无需做开关中断操作了,还有一个是需要互斥的地方使用CM内核指令 LDREX 和 STREX

roguebear 发表于 2019-3-15 17:02:10

明白了。ucos这块有类似操作不?

eric2013 发表于 2019-3-15 17:33:04

roguebear 发表于 2019-3-15 17:02
明白了。ucos这块有类似操作不?

uCOS没有用到SVC,之前有个中断延迟提交功能,新版的uCOS-III V3.07.XX已经将其删除了,实用性差

suozhang 发表于 2019-8-26 17:41:52

这个我 没有 理解 ,假如 一个线程正在 操作队列(通过SVC中断实现), 串口中断里在 操作 队列,岂不是 会 打乱 SVC 中断?

eric2013 发表于 2019-8-26 17:46:01

suozhang 发表于 2019-8-26 17:41
这个我 没有 理解 ,假如 一个线程正在 操作队列(通过SVC中断实现), 串口中断里在 操作 队列,岂不是 会 ...

不会,分中断级API和任务级API。
页: [1]
查看完整版本: 那个零延迟中断是怎么实现的呢?