可编程中断控制器8259A工作方式超详细解析
可编程中断控制器8259A工作方式超详细解析say-fall个人主页专栏《手把手教你学会C》 | 《系统深入Linux操作系统》 | 《数据结构与算法》 | 《小游戏与项目》格言做好你自己才能吸引更多人与他们共赢这才是最好的成长方式。 前言学微机原理到中断这一章很多人对8259A这个芯片是又爱又恨——爱的是它功能强大恨的是工作方式实在太多了优先级、嵌套、EOI、屏蔽、触发、级联各种概念交织在一起稍不留神就绕晕了。其实8259A的工作方式虽然多但核心逻辑只有一个如何高效、有序地管理多个中断源。只要抓住这个主线所有的知识点都能串起来。本文将从优先级管理、中断嵌套、中断结束、中断屏蔽、中断触发、级联工作六大维度把8259A的所有工作方式掰开揉碎讲清楚每个方式都配有原理分析、编程方法和实际示例保证你看完就能用。通过本文你将掌握技能应用场景固定优先级与循环优先级的原理和区别设计不同优先级需求的中断系统普通全嵌套与特殊全嵌套方式单片/级联系统中的中断嵌套设计三种EOI方式的原理和编程中断服务程序中正确结束中断普通屏蔽与特殊屏蔽方式灵活控制中断的响应与屏蔽边沿触发与电平触发方式根据外设特性选择合适的触发方式级联系统的连接、初始化和中断结束扩展中断源至64个 前置知识本文假设你已经了解8259A的基本结构IRR、IMR、ISR、PR四个寄存器的作用、引脚功能、初始化命令字ICW1ICW4和操作命令字OCW1OCW3的基本格式。如果还不太熟悉建议先看一下8259A基础介绍的文章。文章目录可编程中断控制器8259A工作方式超详细解析 前言一、️ 8259A工作方式总览二、 中断优先级方式2.1 固定优先级方式默认方式工作原理优先级判断规则适用场景2.2 循环优先级方式工作原理两种循环优先级模式1️⃣ 自动循环优先级普通循环2️⃣ 指定循环优先级适用场景三、 中断嵌套方式3.1 普通全嵌套方式默认方式工作原理中断响应过程适用场景3.2 特殊全嵌套方式为什么需要特殊全嵌套工作原理级联系统中的应用编程设置注意事项四、✅ 中断结束方式EOI4.1 自动EOI方式AEOI工作原理优点缺点编程设置适用场景4.2 非指定EOI方式NSEOI工作原理适用条件编程设置优点缺点4.3 指定EOI方式SEOI工作原理适用场景编程设置优点缺点4.4 三种EOI方式对比五、 中断屏蔽方式5.1 普通屏蔽方式默认方式工作原理编程设置特点5.2 特殊屏蔽方式SMM为什么需要特殊屏蔽工作原理工作过程编程设置注意事项六、⚡ 中断触发方式6.1 边沿触发方式默认方式工作原理优点缺点编程设置6.2 电平触发方式工作原理优点缺点注意事项6.3 两种触发方式对比七、 级联工作方式7.1 级联硬件连接7.2 级联系统的中断响应过程7.3 级联系统的编程1. 主片初始化2. 从片初始化7.4 级联系统的中断结束八、 其他工作方式8.1 查询工作方式8.2 缓冲方式九、 工作方式综合应用示例示例1PC/XT机的8259A初始化示例2中断服务程序中的EOI处理十、 学习重点与常见问题10.1 学习重点10.2 常见问题十一、 几个思考题1️⃣ 固定优先级方式下IR3正在被服务此时IR1和IR5同时请求中断哪个会被响应2️⃣ 在级联系统中主片IR2连接从片从片IR5正在被服务。此时从片IR0请求中断能否被响应为什么3️⃣ 如果在一个中断服务程序中使用了特殊屏蔽方式但结束时忘记取消特殊屏蔽会有什么后果一、️ 8259A工作方式总览8259A的工作方式分为六大类所有方式都通过向芯片写入**初始化命令字ICW和操作命令字OCW**来设置工作方式类别具体方式设置命令字中断优先级方式固定优先级、循环优先级ICW1、OCW2中断嵌套方式普通全嵌套、特殊全嵌套ICW4中断结束方式自动EOI、非指定EOI、指定EOIICW4、OCW2中断屏蔽方式普通屏蔽、特殊屏蔽OCW1、OCW3中断触发方式边沿触发、电平触发ICW1级联工作方式单片、多片级联ICW1、ICW3 记住一个核心原则8259A的所有工作方式都是围绕如何高效、有序地管理多个中断源设计的核心是解决中断优先级和中断响应顺序问题。二、 中断优先级方式中断优先级是8259A最核心的功能决定了当多个中断源同时请求时CPU先响应哪一个。8259A提供两种优先级管理方式固定优先级和循环优先级。2.1 固定优先级方式默认方式工作原理8个中断源IR0~IR7的优先级固定不变IR0优先级最高IR7优先级最低。优先级顺序IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7这是8259A加电后的默认优先级方式不需要额外编程设置。优先级判断规则当多个中断源同时请求时优先级最高的中断源先被响应。当一个中断正在被服务时只有更高优先级的中断请求才能打断它中断嵌套。同级或低级的中断请求会被挂起直到当前中断服务结束。适用场景系统中各中断源的重要性有明显差异的场合。例如在微机系统中IR0通常连接系统定时器最高优先级IR7连接打印机最低优先级。2.2 循环优先级方式当系统中多个中断源的重要性相同时固定优先级方式会导致低优先级中断长期得不到响应饥饿现象。循环优先级方式可以解决这个问题。工作原理中断源的优先级不是固定的而是轮流处于最高优先级。当某个中断源被服务后它的优先级自动降为最低原来比它低一级的中断源上升为最高优先级。初始优先级顺序可以通过编程设置默认初始优先级与固定优先级相同IR0最高。两种循环优先级模式1️⃣ 自动循环优先级普通循环触发条件当一个中断服务结束后自动调整优先级。优先级调整规则假设当前正在服务的中断是IRi服务结束后IRi的优先级变为最低IR(i1)的优先级变为最高其余中断源的优先级依次顺延编程设置通过OCW2设置命令字格式10100000B0A0H非指定EOI自动循环示例初始优先级IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7IR3请求中断并被服务服务结束后优先级自动调整为IR4 IR5 IR6 IR7 IR0 IR1 IR2 IR3此时IR4成为最高优先级IR3成为最低优先级2️⃣ 指定循环优先级触发条件由CPU通过命令字主动指定哪个中断源的优先级降为最低。优先级调整规则CPU发送指定循环命令指定IRi为最低优先级则IR(i1)自动成为最高优先级。编程设置通过OCW2设置命令字格式11000L2L1L0B其中L2~L0指定最低优先级的中断号。示例发送命令字11000011B0C3H指定IR3为最低优先级则优先级变为IR4 IR5 IR6 IR7 IR0 IR1 IR2 IR3适用场景系统中多个中断源的重要性基本相同的场合。例如多个相同类型的外设如多个串口共享中断控制器。⚠️ 循环优先级解决的是公平问题——防止高优先级中断源霸占CPU让所有中断源都有机会被及时响应。三、 中断嵌套方式中断嵌套是指在一个中断服务程序执行过程中CPU可以响应更高优先级的中断请求。8259A支持两种中断嵌套方式普通全嵌套方式和特殊全嵌套方式。3.1 普通全嵌套方式默认方式工作原理这是8259A加电后的默认嵌套方式。当一个中断正在被服务时只有更高优先级的中断请求才能打断它。同级或低级的中断请求会被屏蔽直到当前中断服务结束。中断响应过程IRi请求中断优先级最高被响应。ISR中断服务寄存器的ISRi位置1表示IRi正在被服务。在IRi服务期间只有优先级高于IRi的中断请求才能被响应。IRi服务结束后发送EOI命令ISRi位清零。适用场景单片8259A系统。不需要同级中断嵌套的场合。3.2 特殊全嵌套方式为什么需要特殊全嵌套在多片8259A级联系统中主片的一个IR引脚连接一个从片从片的8个中断源优先级不同。如果主片工作在普通全嵌套方式下当从片的一个中断正在被服务时从片内部更高优先级的中断请求会被主片屏蔽无法得到响应。问题示例主片IR3连接从片从片优先级IR0 IR1 ... IR7从片IR3请求中断主片响应ISR3位置1此时从片IR0请求中断优先级高于IR3主片检测到IR3引脚有中断请求但ISR3已经为1认为是同级中断不予响应导致从片内部更高优先级的中断无法得到服务工作原理特殊全嵌套方式与普通全嵌套方式基本相同只有一个区别当一个中断正在被服务时允许同级的中断请求打断它。也就是说只要中断请求的优先级不低于当前正在服务的中断就可以被响应。级联系统中的应用主片必须工作在特殊全嵌套方式。从片工作在普通全嵌套方式。这样当从片内部有更高优先级的中断请求时主片会认为是同级中断允许嵌套从而保证从片内部的优先级顺序。编程设置通过ICW4的D4位SFNM设置SFNM1特殊全嵌套方式SFNM0普通全嵌套方式注意事项在特殊全嵌套方式下中断结束时需要特殊处理先向从片发送EOI命令。读取从片的ISR寄存器判断是否还有其他中断正在被服务。如果从片ISR全为0再向主片发送EOI命令。如果从片ISR不为0不向主片发送EOI命令继续服务从片的其他中断。 这一步非常关键不能像单片系统那样简单地连续发两个EOI从片主片必须先检查从片是否还有未处理完的中断否则主片会提前清除ISR位导致后续中断无法正常嵌套。四、✅ 中断结束方式EOI当一个中断服务程序执行完毕后必须将ISR寄存器中对应的位清零否则8259A将不再响应该中断或更低优先级的中断。这个清零操作称为中断结束End Of InterruptEOI。8259A提供三种中断结束方式自动EOI方式、非指定EOI方式和指定EOI方式。4.1 自动EOI方式AEOI工作原理不需要CPU发送EOI命令8259A在第二个中断响应信号#INTA结束时自动将ISR寄存器中优先级最高的位清零。也就是说在中断服务程序开始执行之前ISR位就已经被清零了。优点软件简单不需要在中断服务程序中编写发送EOI命令的代码。缺点不能用于中断嵌套方式。因为在中断服务程序执行期间ISR位已经为0任何中断请求包括同级和低级都可以打断当前中断导致优先级混乱。可能导致中断丢失或重复响应。编程设置通过ICW4的D1位AEOI设置AEOI1自动EOI方式AEOI0非自动EOI方式适用场景没有中断嵌套的简单系统。中断服务程序非常短的场合。⚠️ 除非你确信系统中不需要中断嵌套否则不要使用自动EOI方式。一旦ISR位提前清零中断优先级保护就失效了。4.2 非指定EOI方式NSEOI工作原理中断服务程序结束时CPU向8259A发送一个非指定EOI命令。8259A收到命令后自动将ISR寄存器中优先级最高的置1位清零。这个优先级最高的置1位就是当前正在被服务的中断。适用条件系统工作在普通全嵌套方式下。因为在普通全嵌套方式下ISR寄存器中优先级最高的置1位一定是当前正在被服务的中断。编程设置通过OCW2设置命令字格式00100000B20H示例; 中断服务程序结束前 MOV AL, 20H ; 非指定EOI命令 OUT 20H, AL ; 发送到8259A偶地址端口 IRET ; 中断返回优点软件简单只需要发送一个固定的命令字。支持中断嵌套。缺点只能用于普通全嵌套方式不能用于特殊屏蔽方式和循环优先级方式。4.3 指定EOI方式SEOI工作原理中断服务程序结束时CPU向8259A发送一个指定EOI命令命令字中明确指定要清零的ISR位号。8259A收到命令后将ISR寄存器中指定的位清零。适用场景特殊屏蔽方式。循环优先级方式。任何需要明确指定结束哪个中断的场合。编程设置通过OCW2设置命令字格式01100L2L1L0B其中L2~L0指定要清零的中断号。示例结束IR3的中断服务MOV AL, 01100011B ; 指定EOI命令结束IR3 OUT 20H, AL IRET优点最灵活可以结束任意指定的中断。支持所有工作方式。缺点软件稍复杂需要知道要结束的中断号。4.4 三种EOI方式对比EOI方式触发时机清零的ISR位适用工作方式软件复杂度自动EOI第二个#INTA结束优先级最高的置1位无嵌套最简单非指定EOICPU发送命令优先级最高的置1位普通全嵌套简单指定EOICPU发送命令命令字指定的位所有方式稍复杂 实际开发中非指定EOI是最常用的方式单片系统下指定EOI是最万能的方式任何场景都能用自动EOI只在极简场景下使用。五、 中断屏蔽方式8259A可以通过中断屏蔽寄存器IMR屏蔽一个或多个中断源的请求。提供两种屏蔽方式普通屏蔽方式和特殊屏蔽方式。5.1 普通屏蔽方式默认方式工作原理通过设置IMR寄存器的对应位可以屏蔽一个或多个中断源的请求。IMR的Mi位1屏蔽IRi的中断请求。IMR的Mi位0允许IRi的中断请求。当一个中断被屏蔽时即使该中断有请求也不会被8259A发送给CPU。编程设置通过OCW1设置写入奇地址端口A01。示例屏蔽IR3和IR5允许其他中断MOV AL, 00101000B ; IMR31, IMR51 OUT 21H, AL ; 写入OCW1特点屏蔽某个中断源不会影响其他中断源的优先级。当一个中断正在被服务时屏蔽该中断不会影响当前的服务只会阻止新的请求。5.2 特殊屏蔽方式SMM为什么需要特殊屏蔽在普通屏蔽方式下当一个中断正在被服务时所有同级和低级的中断请求都会被屏蔽。但在某些场合我们希望在中断服务程序的执行过程中能够响应低级的中断请求。应用场景一个优先级较高的中断服务程序很长其中有一部分代码对实时性要求不高我们希望在执行这部分代码时能够响应低级的中断请求提高系统的实时性。工作原理当设置特殊屏蔽方式后屏蔽当前正在服务的中断通过OCW1设置IMR对应位为1。同时开放所有其他未被屏蔽的中断包括同级和低级。也就是说除了当前正在服务的中断被屏蔽外其他所有中断都可以被响应。工作过程在中断服务程序中设置特殊屏蔽方式。屏蔽当前中断IMR对应位置1。开中断STI此时可以响应所有未被屏蔽的中断。执行需要允许低级中断的代码。关中断CLI。取消特殊屏蔽方式。解除对当前中断的屏蔽IMR对应位清零。开中断STI继续执行中断服务程序的剩余部分。编程设置通过OCW3的D6和D5位设置ESMM1SMM1设置特殊屏蔽方式ESMM1SMM0取消特殊屏蔽方式示例在IR4的中断服务程序中使用特殊屏蔽方式; IR4中断服务程序 INT4 PROC FAR PUSH AX ; 执行对实时性要求高的代码 ; 设置特殊屏蔽方式 CLI MOV AL, 01101000B ; OCW3ESMM1, SMM1 OUT 20H, AL IN AL, 21H ; 读取当前IMR OR AL, 00010000B ; 屏蔽IR4 OUT 21H, AL STI ; 执行对实时性要求不高的代码此时可以响应低级中断 ; 取消特殊屏蔽方式 CLI IN AL, 21H ; 读取当前IMR AND AL, 11101111B ; 解除对IR4的屏蔽 OUT 21H, AL MOV AL, 01001000B ; OCW3ESMM1, SMM0 OUT 20H, AL STI ; 继续执行剩余代码 ; 发送EOI命令 MOV AL, 20H OUT 20H, AL POP AX IRET INT4 ENDP注意事项特殊屏蔽方式下必须使用指定EOI方式结束中断。因为在特殊屏蔽方式下ISR寄存器中可能有多个置1位非指定EOI方式会错误地清零优先级最高的位。⚠️ 特殊屏蔽方式是一个精确手术刀——只在需要临时开放低级中断的代码段使用用完立即恢复千万不要在整个中断服务程序中一直保持特殊屏蔽状态。六、⚡ 中断触发方式中断触发方式是指中断源通过什么方式向8259A发出中断请求。8259A支持两种触发方式边沿触发方式和电平触发方式。6.1 边沿触发方式默认方式工作原理中断请求信号IRi从低电平变为高电平的上升沿表示有中断请求。上升沿过后IRi可以保持高电平不会产生重复请求。优点不会产生重复中断。抗干扰能力较强。缺点中断请求信号必须是一个脉冲信号。如果中断请求信号在上升沿后被撤销中断仍然会被响应。编程设置通过ICW1的D3位LTIM设置LTIM0边沿触发方式LTIM1电平触发方式6.2 电平触发方式工作原理中断请求信号IRi为高电平表示有中断请求。只要IRi保持高电平就表示有中断请求。优点中断请求信号可以是电平信号不需要脉冲。适合一些只能输出电平信号的外设。缺点容易产生重复中断。如果中断服务程序结束后IRi仍然保持高电平8259A会认为是新的中断请求再次响应。抗干扰能力较差噪声可能导致误触发。注意事项在中断服务程序结束前必须撤销中断请求信号将IRi变为低电平否则会产生重复中断。中断请求信号的高电平必须保持到第一个#INTA信号结束否则会丢失中断。6.3 两种触发方式对比触发方式请求信号重复中断抗干扰适用外设边沿触发上升沿脉冲不会较强能输出脉冲的外设电平触发高电平可能较差只能输出电平的外设 边沿触发是更安全的选择大多数场景下推荐使用。只有外设本身只能输出电平信号时才考虑用电平触发此时一定要确保中断服务程序中及时撤销请求信号。七、 级联工作方式单片8259A只能管理8个中断源当系统需要更多中断源时可以采用多片8259A级联的方式。最多可以级联9片8259A1片主片8片从片管理64个中断源。7.1 级联硬件连接主片INT引脚连接CPU的INTR引脚#INTA引脚连接CPU的#INTA引脚。从片INT引脚连接主片的某个IRi引脚#INTA引脚连接主片的#INTA引脚。级联线所有8259A的CAS0CAS2引脚并联在一起。主片的CAS0CAS2为输出从片的CAS0~CAS2为输入。#SP/#EN引脚非缓冲方式主片#SP1从片#SP0。缓冲方式作为输出控制总线缓冲器。7.2 级联系统的中断响应过程从片的IRi引脚收到中断请求。从片向主片的IRj引脚发出中断请求。主片向CPU发出中断请求。CPU响应中断发出第一个#INTA信号。主片通过CAS0~CAS2发出从片的标识码IRj的编号。所有从片将自己的标识码与CAS0~CAS2上的信号比较匹配的从片被选中。CPU发出第二个#INTA信号。被选中的从片将中断类型码送到数据总线上。CPU读取中断类型码转去执行对应的中断服务程序。7.3 级联系统的编程1. 主片初始化ICW1级联方式SNGL0。ICW2主片的中断向量码高5位。ICW3主片的ICW3中对应连接从片的IRj位置1。ICW4特殊全嵌套方式SFNM1非自动EOI方式。2. 从片初始化ICW1级联方式SNGL0。ICW2从片的中断向量码高5位。ICW3从片的ICW3中ID2~ID0位为连接到主片的IRj编号。ICW4普通全嵌套方式SFNM0非自动EOI方式。示例主片IR3连接从片主片ICW300001000B08HIR3位置1从片ICW300000011B03HID2~ID0011对应IR37.4 级联系统的中断结束在级联系统中中断结束时需要向从片和主片都发送EOI命令先向从片发送EOI命令。再向主片发送EOI命令。示例从片IR2的中断服务结束; 向从片发送EOI命令假设从片地址为0A0H和0A1H MOV AL, 20H OUT 0A0H, AL ; 向主片发送EOI命令主片地址为20H和21H MOV AL, 20H OUT 20H, AL IRET⚠️ 如果主片工作在特殊全嵌套方式下需要先读取从片的ISR寄存器判断是否还有其他中断正在被服务。只有当从片ISR全为0时才向主片发送EOI命令否则主片的ISR位会被提前清除。八、 其他工作方式8.1 查询工作方式8259A可以工作在查询方式下不向CPU发出中断请求而是由CPU主动查询8259A的状态。编程设置通过OCW3的D2位P设置P1进入查询方式。查询过程CPU向8259A发送查询命令OCW3P1。8259A将查询字送到数据总线上。CPU读取查询字判断是否有中断请求及最高优先级的中断号。查询字格式I x x x x R2 R1 R0I1有中断请求R2~R0为最高优先级的中断号。I0无中断请求。8.2 缓冲方式当8259A通过总线缓冲器与系统数据总线连接时需要工作在缓冲方式。编程设置通过ICW4的D3位BUF设置BUF1为缓冲方式。在缓冲方式下#SP/#EN引脚作为输出用于控制总线缓冲器的使能。同时需要通过ICW4的D2位M/S设置是主片还是从片M/S1主片M/S0从片 缓冲方式和级联方式是正交的两个概念级联解决中断源够不够用的问题缓冲解决数据总线驱动能力够不够的问题。两者可以同时使用。九、 工作方式综合应用示例示例1PC/XT机的8259A初始化PC/XT机使用单片8259A管理8个外部中断初始化程序如下; 8259A地址20H偶地址、21H奇地址 INIT8259: ; ICW1边沿触发单片需要ICW4 MOV AL, 00010011B OUT 20H, AL ; ICW2中断向量码高5位为00001BIR0~IR7对应08H~0FH MOV AL, 08H OUT 21H, AL ; ICW4普通全嵌套非缓冲非自动EOI8086模式 MOV AL, 00000001B OUT 21H, AL ; OCW1允许所有中断 MOV AL, 00H OUT 21H, AL RET示例2中断服务程序中的EOI处理; IR0中断服务程序系统定时器 INT0 PROC FAR PUSH AX ; 中断处理代码 ; 发送非指定EOI命令 MOV AL, 20H OUT 20H, AL POP AX IRET INT0 ENDP十、 学习重点与常见问题10.1 学习重点中断优先级方式固定优先级和循环优先级的区别及应用。中断嵌套方式普通全嵌套和特殊全嵌套的区别级联系统中为什么要用特殊全嵌套。中断结束方式三种EOI方式的原理、适用场景及编程方法。中断屏蔽方式特殊屏蔽方式的原理及应用。级联工作方式主从片的连接、初始化及中断结束处理。10.2 常见问题为什么在级联系统中主片要工作在特殊全嵌套方式答为了保证从片内部的优先级顺序使从片内部更高优先级的中断能够打断从片内部较低优先级的中断。如果主片用普通全嵌套从片发出的所有请求对主片来说都是同级的一旦从片的某个中断被响应主片ISR位置1从片后续更高优先级的请求就会被屏蔽。特殊屏蔽方式和普通屏蔽方式的区别是什么答普通屏蔽方式下屏蔽某个中断不会影响其他中断的优先级判断低级中断仍然无法打断高级中断特殊屏蔽方式下屏蔽当前中断后所有其他未被屏蔽的中断包括同级和低级都可以被响应相当于临时打破了优先级保护。什么时候需要使用指定EOI方式答在特殊屏蔽方式、循环优先级方式以及任何需要明确指定结束哪个中断的场合。简单记只要ISR中有多个置1位可能同时存在就应该用指定EOI。电平触发方式和边沿触发方式各有什么优缺点答边沿触发方式不会产生重复中断抗干扰能力强但需要脉冲信号电平触发方式适合电平信号的外设但容易产生重复中断需要及时撤销请求信号。十一、 几个思考题学完本文来试试回答这些问题1️⃣ 固定优先级方式下IR3正在被服务此时IR1和IR5同时请求中断哪个会被响应答IR1会被响应。在固定优先级方式下IR1 IR3 IR5IR1的优先级高于当前正在被服务的IR3可以打断它而IR5的优先级低于IR3会被挂起。 普通全嵌套方式只允许更高的打断正在服务的不允许更低的打断。2️⃣ 在级联系统中主片IR2连接从片从片IR5正在被服务。此时从片IR0请求中断能否被响应为什么答能被响应前提是主片工作在特殊全嵌套方式。从片IR5正在被服务主片ISR2位置1。从片IR0请求中断通过从片INT引脚传到主片IR2。主片工作在特殊全嵌套方式下允许同级中断嵌套因此会响应该请求。然后从片判断IR0优先级高于IR5允许嵌套。 如果主片工作在普通全嵌套方式这个请求就会被主片屏蔽掉因为ISR2已经为1主片认为这是同级请求。3️⃣ 如果在一个中断服务程序中使用了特殊屏蔽方式但结束时忘记取消特殊屏蔽会有什么后果答后续所有中断包括低级中断都可能打断当前中断服务导致优先级保护完全失效。即使当前中断服务结束如果没有恢复普通屏蔽方式ISR中的状态和优先级判断可能出现混乱。 这就像一个保安突然离开岗位所有通道都开放了——后果可想而知。所以特殊屏蔽方式用完必须立即恢复。✅ 本节完。 作者say-fall | 编辑say-fall | 原创不易如果对你有帮助记得 点赞 ⭐ 收藏哦