fanxsp
发表于 2024-4-21 21:17:06
本帖最后由 fanxsp 于 2024-4-21 22:21 编辑
TinyRTOS51 支持非屏蔽中断NMI。今天通过一个例程进行了验证。
也就是说,临界区可以不用关总中断EA,只要关闭有调用系统API的中断就可以了,没有调用API的中断可以不关闭,
这可以通过重写开、关中断的宏定义OSDi()、OSEi()来实现。
因为临界区关总中断而造成中断响应延迟的问题,可以通过NMI来解决。
对响应时间要求高,无法容忍临界区关中断的信号,可以设为非屏蔽中断NMI。
使用NMI也有以下限制:1. 不能调用系统API 2. 必须自行处理共享变量的保护问题。
zhangfuhg
发表于 2024-4-22 09:22:49
{:4_165:}谢谢分享。学习!
ghost
发表于 2024-4-22 10:21:32
3Q
youlinys
发表于 2024-4-30 22:39:38
能出个面向初学者的教程就好了,
杨为民
发表于 2024-5-1 09:56:25
fanxsp 发表于 2024-4-21 21:17
TinyRTOS51 支持非屏蔽中断NMI。今天通过一个例程进行了验证。
也就是说,临界区可以不用关总中断EA,只要 ...
你能用新的这个支持NMI的版本再写个排行榜的实时响应测试程序传上来吗?
(1)对于STC8H单片机这是一个很重要的技术,用测试程序可以让我们更深入地了解这个特性。
(2)你的这个新版本我认为也能实现了“零中断延迟”,所以想请本尊亲自写测试程序参加排行榜。
fanxsp
发表于 2024-5-2 08:54:47
杨为民 发表于 2024-5-1 09:56
你能用新的这个支持NMI的版本再写个排行榜的实时响应测试程序传上来吗?
(1)对于STC8H单片机这是一个很 ...
非屏蔽中断对任务切换时间没有影响,因为非屏蔽中断不能调用系统服务函数,也不能进行任务切换。非屏蔽中断,主要是用于需要快速响应的信号,它的响应不受临界区关中断的影响,和祼机系统一样。
神农鼎
发表于 2024-5-2 08:56:56
非屏蔽中断===不要用这个词,统一使用===不可屏蔽中断
fanxsp
发表于 2024-5-2 08:58:45
神农鼎 发表于 2024-5-2 08:56
非屏蔽中断===不要用这个词,统一使用===不可屏蔽中断
{:5_323:}
lmyyjx
发表于 2024-5-2 10:01:37
STC32G也做一个
fanxsp
发表于 2024-5-2 10:11:37
lmyyjx 发表于 2024-5-2 10:01
STC32G也做一个
已经在做了,还要一段时间