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也做一个

已经在做了,还要一段时间
页: 1 2 3 4 5 6 7 8 [9] 10 11 12 13 14 15 16 17 18
查看完整版本: 原创极简的51-MCU专用RTOS TinyRTOS51