- 主题:Re:单片机中断和外部大循环都可能去修改一个全局双向链表
使能中断屏障应该不会丢中断
【 在 feiy 的大作中提到: 】
:
: 单片机中断和外部单线程大循环都可能去修改一个全局双向链表。
:
: 按照目前的设计架构和实时性需要,中断里的修改链表的操作,必须放置在中断里执行
: 。
:
: 该单片机不支持中断挂起,不支持软件模拟触发中断,只支持使能或禁止。但如果禁止
: 了中断,则禁止期间中断请求会被丢失。
:
: 请问,怎么处理比较好?
:
: --
:
发自「今日水木 on SPN-AL00」
--
FROM 49.90.62.*
前提是中断信号持续存在
【 在 fyzjsmth 的大作中提到: 】
: 使能中断屏障应该不会丢中断
: 发自「今日水木 on SPN-AL00」
--
FROM 115.205.48.*
中断分电平和脉冲,脉冲会锁存
【 在 feiy 的大作中提到: 】
:
: 单片机中断和外部单线程大循环都可能去修改一个全局双向链表。
:
: 按照目前的设计架构和实时性需要,中断里的修改链表的操作,必须放置在中断里执行
: 。
:
: 该单片机不支持中断挂起,不支持软件模拟触发中断,只支持使能或禁止。但如果禁止
: 了中断,则禁止期间中断请求会被丢失。
:
: 请问,怎么处理比较好?
:
: --
:
发自「今日水木 on SPN-AL00」
--
FROM 49.90.62.*
...你希望怎么办,禁止期间中断请求给你进个队列?
【 在 feiy (null) 的大作中提到: 】
单片机中断和外部单线程大循环都可能去修改一个全局双向链表。
按照目前的设计架构和实时性需要,中断里的修改链表的操作,必须放置在中断里执行
。
该单片机不支持中断挂起,不支持软件模拟触发中断,只支持使能或禁止。但如果禁止
了中断,则禁止期间中断请求会被丢失。
请问,怎么处理比较好?
--
FROM 106.121.160.*
实时性,除非你在中断里完成要做的工作,而这个工作必须修改全局链表
如果不带操作系统
中断里只做标记,不修改全局链表
修改工作在非中断环境中完成
【 在 feiy 的大作中提到: 】
: 单片机中断和外部单线程大循环都可能去修改一个全局双向链表。
: 按照目前的设计架构和实时性需要,中断里的修改链表的操作,必须放置在中断里执行
: 。
: ...................
--
FROM 121.69.101.*
单片机中断 外部单线程只提供链表修改请求,请求放入队列
专门的线程处理这个队列,这样就不需要加锁解锁
--
FROM 223.166.13.*
换单片机。明显你选的这个单片机太弱了,不适合这个场景
【 在 feiy 的大作中提到: 】
: 单片机中断和外部单线程大循环都可能去修改一个全局双向链表。
: 按照目前的设计架构和实时性需要,中断里的修改链表的操作,必须放置在中断里执行
: 。
: ...................
--
FROM 182.136.10.*
加个定时中断,外部大循环操作这个表的部分放定时中断里面进行。
【 在 feiy 的大作中提到: 】
: 单片机中断和外部单线程大循环都可能去修改一个全局双向链表。
: 按照目前的设计架构和实时性需要,中断里的修改链表的操作,必须放置在中断里执行
: 。
: ...................
--
FROM 120.244.220.*
杜绝在中断中大量干活的错误设计
最多设置个标志或者计数,由外部代码去干活
【 在 feiy 的大作中提到: 】
: 单片机中断和外部单线程大循环都可能去修改一个全局双向链表。
: 按照目前的设计架构和实时性需要,中断里的修改链表的操作,必须放置在中断里执行
: 。
: ...................
--
FROM 106.39.50.*