精华内容
下载资源
问答
  • 本题必选题,请在I、II两道试题中任选一题作答。I.对于学生在课堂上的违规行为,教师可能采用各种不同的办法进行处理。下面是5个实例:例一:学生张明在课堂上对邻座做鬼脸,引起对方发笑,老师对其注视片刻后,即...

    本题为必选题,请在I、II两道试题中任选一题作答。

    I.对于学生在课堂上的违规行为,教师可能采用各种不同的办法进行处理。下面是5个实例:

    例一:学生张明在课堂上对邻座做鬼脸,引起对方发笑,老师对其注视片刻后,即不再理睬,继续讲课,学生遂终止其不当行为。

    例二:当学生的违规行为获得部分学生认可时,让违规学生坐到教室后边,与其他学生分开,有效地阻止了学生的违规行为。

    例三:刚上课时,郭忠抽掉前座李军的椅子,李军重重地摔了一跤,老师当即严肃地批评了郭忠,并令其放学后到老师办公室写情况说明。

    例四:课间有两个学生吵架,前来上课的老师厉声制止,毫无效果,围观的学生越来越多。老师于是决定用8分钟时间让两个学生吵个够,而让其他学生在一旁静观

    例五:对于平时在课堂上经常讲闲话的学生,一旦他在某节课不再讲闲话,老师就及时予以表扬。结果两个学生很快就不再吵架了。

    请用行为主义学习观点,分析说明上述各实例中处置学生不当行为的教育措施的心理学依据。

    II.阅读下述材料,按要求作答。

    小学三年级语文老师李华执教的两个班,90%的学生是外来务工人员子女。在日常教学中,李老师发现,这些孩子大多握笔姿势不正确、不善与人交流、知识面窄。为了进一步了解外来务工人员子女在学习上面临的困难及其原因,李老师对部分学生进行了家访,并就相关问题询问了本年级其他科任教师。结果显示:与本市居民子女相比,外来务工人员子女在学习上存在一定差距,其中英语学习差距最大,语文学习次之,数学学习差别不大。为了探索提高这些外来务工人员子女语文学习成绩的有效策略,李老师打算在这两个班进行以“扩展课外阅读”为自变量的实验研究。但是,学校科研顾问认为采取行动研究方式更为适当。李老师陷入困惑,不能确定采用何种方式展开研究。

    (1)案例中李老师在发现和确定研究问题的过程中使用了哪些研究方法?

    (2)针对李老师的困惑,请为她选择一种研究方式,并从研究目的、研究过程、研究主体三个方面阐述作出这种选择的理由。

    展开全文
  • 说最基本的,老的51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。现在很多扩展的51单片机已经有4个优先级(或更多)和更多的中断源了。在说到中断之前,我先来定义一下优先级,明白了什么是...

    说最基本的,老的51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。现在很多扩展的51单片机已经有4个优先级(或更多)和更多的中断源了。

    在说到中断之前,我先来定义一下优先级,明白了什么是优先级,后面的阐述就容易明白了。实际上很多人都是混淆了优先级的含义,所以才觉得糊里糊涂。

    中断的优先级有两个:查询优先级和执行优先级。

    什么是查询优级呢?我们从datasheet或书上看到的默认(IP寄存器不做设置,上电复位后为00H)的优先级:

    外部中断0 > 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断

    或  int0,timer0,int1,timer1,serial port  或  INT0、T0、INT1、T1、UART

    或  PX0>PT0>PX1>PT1>PS>......

    其实都是查询优级。首先查询优先级是不可以更改和设置的。这是一个中断优先权排队的问题。是指多个中断源同时产生中断信号时,中断仲裁器选择对哪个中断源优先处理的顺序。而这与是否发生中断服务程序的嵌套毫不相干。当CPU查询各个中断标志位的时候,会依照上述5个查询优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高优查询先级的中断标志位,但并不代表高查询优先级的中断可以打断已经并且正在执行的低查询优先级的中断服务。

    例如:当计数器0中断和外部中断1(按查询优先级,计数器0中断>外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1的中断服务函数正在服务的情况下,这时候任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0计数器0中断。

    而中断的执行优先级就是你对IP寄存器的设置了。在2个优先级的情况下,某位为1,则相应的中断源为高优先级;为0,则为低优先级。

    关于中断的优先级有三条原则:

    1、CPU同时接收到几个中断时,首先响应优先级最高的中断请求;

    2、正在进行的中断过程不能被新的同级或低行优优先级的中断请求所中断;

    3、正在进行的低行优优先级中断服务,能被高行优优先级中断请求中断;

    若:同一执行优先级中的中断申请不止一个时,则有一个中断优先权排队问题。同一执行优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,优先权自高到低的顺序即:

    外部中断0>定时/计数0>外部中断1>定时/计数1>串行接口

    例如:设置IP = 0x10,即设置串口中断为最高优先级,则串口中断可以打断任何其他的中断服务函数实现嵌套,且只有串口中断能打断其他中断的服务函数。若串口中断没有触发,则其他几个中断之间还是保持逻辑优先级,相互之间无法嵌套。

    关于中断嵌套。可以这样说,当一个中断正在执行的时候,如果事先设置了中断优先级寄存器IP,那么当一个更高优先级的中断到来的时候会发生中断嵌套,如果没有设置则不会发生任何嵌套;如果有同一个优先级的中断触发,它并不是在“不断的申请”,而是将它相应的中断标志位置即IE寄存器的某位置位,当CPU执行完当前中断之后,按照查询优先级重新去查询各个中断标志位,进入相应中断。

    要记住,没有设置IP时,单片机会按照查询优先级(或都说逻辑优先级)来排队进入服务。如果要想让某个中断优先响应, 则要设置IP,更改执行优先级(或者说物理优先级)。要注意的是,当设置了IP后,当低执行优先级中断在运行时,如果有高执行优先级的中断产生,则会嵌套调用进入高执行优先级的中断。如果你是用C语言写的程序,并在中断服务时 using 了寄存组,要注意,两个不同执行优先级的中断服务程序不要 using 同一组寄存器。

    看两个问题,如下:

    1 在各个中断都是低优先级的时候,如果定时器0的溢出进入中断。在这个中断处理的过程中,外部中断0也被触发了,那么是不是要发生中断嵌套?

    2 如果定时器0发生中断的时候,进入中断处理程序,这个时候外部中断1条件触发条件满足了。因为定时器0自然优先级比外部中断1高,那么定时器0的中断处理程序继续执行。假设定时器中断处理程序执行的过程中,外部中断1的触发。条件消失了,那么等定时器0的中断处理完后,程序还是会进入外部中断1处理程序吗?

    答案1:在IP事先设置了外部中断0的优先级的情况下,CUP会中止定时器0的中断服务,进入外部中断0服务程序,执行完以后再回到定时器0中断服务程序。否则不会。

    答案2:肯定会进入中断的;外部中断1的触发条件满足后会置位外部1的中断标志,即使后来外部中断1的触发条件消失了,也不会清除已置位的中断标志,所以等定时器0的中断处理完后,程序判断外部中断的中断标志为1后依然会进入外部中断1处理程序的,只有在外部中断1处理程序中执行reti指令才会硬件清除外部中断1的中断标志(这也正是为什么中断返回使用reti指令而不可以用ret替换的原因)...

    展开全文
  • 中断优先级

    千次阅读 2021-07-25 04:32:43
    使系统能及时响应并处理发生的所有中断,系统...解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority ),又称优先权,先响应优先级最高的中断请求。另外,当CPU正...

    为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。

    在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority ),又称优先权,先响应优先级最高的中断请求。另外,当CPU正在处理某一中断时,要能响应另一个优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,形成中断嵌套。

    中文名

    中断优先级

    外文名

    Interrupt priority

    解决方法

    软件、硬件优先级排队作    用

    及时响应并处理发生的所有中断

    排序方法

    引起中断事件的重要性和紧迫程度

    依    据

    优先级

    中断优先级简介

    编辑

    语音

    微机系统中有多个中断源,有可能出现两个或两个以上中断源同时发出中断请求的情况。多个中断源同时请求中断时,CPU必须先确定为哪一个中断源服务,要能辨别优先级最高的中断源并进行响应。CPU在处理中断时也要能响应更高级别的中断申请,而屏蔽掉同级或较低级的中断申请,这就是中断优先级问题。[1]

    中断系统中,CPU一般根据各中断请求的轻重缓急分别处理,即给每个中断源确定一个中断优先级别,系统自动对它们进行排队判优,保证首先处理优先级别高的中断请求,待级别高的中断请求处理完毕后,再响应级别较低的中断请求。对多个中断源进行识别和优先级排队的日的就是要确定出最高级别的中断源,并形成该中断源的中断服务程序入口地址,以便CPU将控制转移到该中断服务程序去。[1]

    一般指以下两层含义:[2]

    ①若有2个或2个以上的中断源同时提出中断请求,微处理器先响应哪个中断源,后响应哪个中断源;[2]

    ②若一个中断源提出中断请求,微处理器给予响应并正在执行其中断服务程序时,又有1个中断源提出中断请求,后来的中断源能否中断前一个中断源的中断服务程序。[2]

    中断优先级分类

    编辑

    语音

    中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。最初引入硬件中断,只是出于性能上的考量。如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进行忙等待(Busy waiting),反复轮询该设备是否完成了动作并返回结果。这就造成了大量处理器周期被浪费。引入中断以后,当处理器发出设备请求后就可以立即返回以处理其他任务,而当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。这样,在设备进行处理的周期内,处理器可以执行其他一些有意义的工作,而只付出一些很小的切换所引发的时间代价。后来被用于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个方面,并产生通过软件方式进入中断处理(软中断)的概念。[3]

    中断可分为如下几种:

    中断优先级硬件中断

    (Hardware Interrupt)[3]可屏蔽中断(maskable interrupt)。硬件中断的一类,可通过在中断屏蔽寄存器中设定位掩码来关闭。[3]

    非可屏蔽中断(non-maskable interrupt,NMI)。硬件中断的一类,无法通过在中断屏蔽寄存器中设定位掩码来关闭。典型例子是时钟中断(一个硬件时钟以恒定频率—如50Hz—发出的中断)。[3]

    处理器间中断(interprocessor interrupt)。一种特殊的硬件中断。由处理器发出,被其它处理器接收。仅见于多处理器系统,以便于处理器间通信或同步。[3]

    伪中断(spurious interrupt)。一类不希望被产生的硬件中断。发生的原因有很多种,如中断线路上电气信号异常,或是中断请求设备本身有问题。[3]

    中断优先级软件中断

    (Software Interrupt)软件中断也叫内部中断,它是CPU执行中断指令INT n产生的中断。中断指令提供了直接调用中断服务程序的软件手段。[4]

    软件中断是以INT n指令的形式出现在程序中的,中断指令占用两个字节,第一个字节为指令码CDH,第二个字节为指令操作数n,即中断类型码。当软件中断时,CPU从指令流中读取中断类型码;当可屏蔽中断时,要在发出中断响应信号ITA后,才能从数据总线上读取中断类型码。可见,软件中断与外部中断有许多不同之处,它具有自身的一些特点,表现在以下几个方面。[4]

    (1)软件中断是以一条指令INT n而进入中断服务程序的,并且其中断类型码由指令的第二字节提供。[4]

    (2)软件中断不受中断允许标志IF的禁止,即无论正=1或0,对任何一个软件中断都不影响。其中,只有单步中断受单步标志TF的影响,即只有当TF=1时,才能执行单步中断。[4]

    (3)由于CPU从指令流中读取软件中断的中断类型码,因此,在软件中断进入中断后,不需要执行中断响应总线周期,也不必从数据总线上读取中断类型码。[4]

    (4)软件中断除类型0(除数为0的中断)外,都没有随机性,因为软件中断是以INT n指令的形式出现在程序中的,该指令放在程序的何处何时执行都是预先定好的,这就使得软件中断不会出现随机性。[4]

    中断优先级中断源种类

    编辑

    语音

    (1)设备中断:如键盘、打印机等设备的数据传送请求等。[1]

    (2)指令中断:为了方便用户使用系统资源或调试软件而设置的中断指令,由程序预先安排的中断指令(INT n)引起,如BIOS及DOS系统功能调用的中断指令等。[1]

    (3)故障中断:计算机内部设有故障自动检测装置,如电源掉电、奇偶校验错或协处理器中断请求等意外事件,都要求CPU进行相应的中断处理。[1]

    (4)实时时钟中断:在自动控制系统中,常遇到定时检测与时间控制,这时可采用外部时钟电路进行定时。CPU可发出命令启动时钟电路开始计时,待定时时间到,时钟电路就会向CPU发出中断申请,由CPU进行处理。[1]

    (5) CPU内部运算产生的某些错误所引起的中断:如除法出错、运算溢出、程序调试中设置断点等。[1]

    中断优先级中断响应原则

    编辑

    语音

    响应不同优先级中断的原则是:[5]CPU首先响应高优先级的中断请求;

    如果优先级相同,CPU按查询次序响应排在前面的中断;

    正在进行的中断过程不能被新的同级或低优先级的中断请求所中断;

    正在进行的低优先级中断过程,能被高优先级中断请求所中断。

    中断优先级响应流程

    编辑

    语音

    CPU在执行每一条指令的后期,要对所有的中断源进行检测。[5]

    在检测到中断请求前,程序计数器PC中存储的是下一条指令码的地址。如果CPU检测到某一中断请求并将响应该中断时,它要跳转到该中断服务程序处,即把PC的当前内容保存起来,再把该中断服务程序的入口地址送给PC,则其后CPU就执行该中断服务程序了。[5]

    b7240e5016ab5eacdf7d8c1f303e9f9b.png

    图1 CPU响应中断流程

    [5]在退出中断服务程序前,CPU要执行中断返回指令RETI,该指令把进入中断服务程序前保存的PC内容再写入PC,则其后CPU就从进入中断服务程序前的断点处向下执行指令,其流程如图1所示用C51编写中断服务函数时,并不需要在中断服务函数的最后编写RETI指令,该指令由编译器在编译中断服务函数时自动添加。

    中断优先级优先级排队

    编辑

    语音

    在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority),又称优先权,先响应优先级最高的中断请求。另外,当CPU正在处理某一中断时,要能响应另一个优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,形成中断嵌套。[6]

    中断源的优先级判别一般可采用软件优先级排队和硬件优先级排队两种方法。[7]

    中断优先级软件优先级排队

    948d699fb96c8f5dfd92f8ded619a179.png

    图2 软件査询接口电路如图2所示,优先级由查询顺序决定,先查询的中断源具有最高的优先级。[8]

    软件优先级排队是指各个中断源的优先权由软件安排。若干个外设的中断请求信号相“或”后,送至CPU的中断接收引脚(如INTR)。这样,只要任一外设有中断请求,CPU便可响应中断。在中断服务子程序前可安排一段优先级的查询程序,即CPU读取外设中断请求状态端口,然后根据预先确定的优先级级别逐位检测各外设的状态,若有中断请求就转到相应的Uo处理程序入口,为该外设服务。[7]

    71af1de55d112643a2b592e6e864456d.png

    软件查询程序流程用软件査询方法确定中断优先级是一种最简单的解决方法,主要依靠软件方法实现,不需要专门的优先级排队电路,可以通过修改查询顺序来修改中断优先级,不必更改硬件。但是当中断源个数较多时,由逐位检测査询到转入相应中断服务程序所耗费的时间较长,中断响应速度慢,服务效率低。[7]

    中断优先级硬件优先级排队

    dd8ec7437355aa01df587d6a172b5863.png

    菊花链优先级排队电路为提高中断处理效率,通常采用硬件处理中断优先权问题,即采用优先级排队电路或专用中断控制器等硬件电路来管理中断。其中,硬件优先权排队电路形式众多,有采用编码器组成的,有采用链式电路的。[1]

    利用外设连接在排队电路的物理位置来决定其中断优先权的,排在最前面的优先级最高,排在最后面的优先级最低。[6]

    中断优先级改变并发中断优先级的方法

    编辑

    语音

    在PC环境下,要改变并发中断优先级,实现理想的中断处理顺序,要从以下两个方面着手。

    (1)使低优先级的中断可中断高优先级的中断服务程序。

    通过研究发现,8259A 中的中断服务寄存器ISR。对中断处理顺序的改变起了非常重要的作用。当中断服务寄存器的相应位置 1时,8259A 自动禁止同级和较低级的中断请求。因此要改变中断的处理顺序,必须在CPU响应中断后,将8259A中的相应位清零的。这样,如果有新的中断请求,不论它的级别高低,只要CPU处于开中断状态,芯片就会马上再向CPU发出中断请求,即低优先级的中断就可能会中断高优先级的中断服务程序。而实现CPU响应中断后,将中断服务寄存器8259A中的相应位清零,有3种解决的办法。[9]

    (2)在中断处理程序中设置新的中断屏蔽字。

    为了能根据需要,改变实际的中断处理次序,很多机器都设置了中断屏蔽寄存器硬件,以决定是否让某级中断请求进入中断优先权电路进行优先权比较。级别高的中断请求优先得到响应。只要将每一类中断处理程序的各级中断屏蔽位设置成不同的状态,就可以得到所希望的中断处理次序。[9]

    中断优先级单级中断与多级中断

    编辑

    语音

    根据计算机系统对中断处理策略的不同,中断系统可以分为单级中断系统和多级中断系统,单级中断系统是中断结构中最基本的形式。[1]

    在单级中断系统中,所有的中断源都属于同一级,所有中断请求触发器排成一行,其优先次序是离CPU越近优先级越高。当响应某一中断请求时,CPU执行该中断源的中断服务程序,在此过程中,中断服务程序不允许被其他中断源所打断,即使优先级比它高的中断源也不例外,只有当该中断服务程序执行完毕之后,才能响应其他中断。[1]

    多级中断系统是指计算机系统中的多个中断源,根据中断事件的轻重缓急程度不同而分成若干个级别,每一个中断级分配一个优先级。一般而言,优先级高的中断级可以打断优先级低的中断服务程序,以中断嵌套方式进行工作。[1]

    在中断优先级已定的情况下,CPU总是首先响应优先级最高的中断请求。当CPU正在响应某一中断源的请求,即正在执行某个中断服务程序时,若有优先级更高的中断源申请中断,为使级别更高的中断源能及时得到服务,CPU就应暂停当前正在服务的级别较低的服务程序而转入新的中断源服务,等新的级别较高的中断服务程序执行完后,再返回到被暂停的中断服务程序继续执行,直至处理结束返回主程序,这种过程称为中断嵌套。CPU允许高优先级中断请求可以打断低优先级中断服务,使CPU对于急需处理的事件立即做出响应。[1]

    中断嵌套的出现,扩大了系统中断功能,进一步加强了系统处理紧急事件的能力。中断嵌套可以商多级。具体级数(即嵌套深度)原则上不限制,只取决于堆栈深度,实际上与要求的中断响应速度有关。[1]

    词条图册

    更多图册

    参考资料

    1.

    杨立,邓振杰,荆淑霞等编著.微型计算机原理与接口技术:中国铁道出版社,2016.02:第219页

    2.

    袁志勇,王景存主编;章登义,刘树波副主编.嵌入式系统原理与应用技术:北京航空航天大学出版社,2014.01:第146页

    3.

    张自军,蒋军,叶爱芹.微机原理与接口技术:中国科学技术大学出版社,2012.08:第205页

    4.

    李育贤.微机接口技术及其应用:西安电子科技大学出版社,2007.06:第73页

    5.

    王普斌.单片机接口与应用:冶金工业出版社,2016.04:第61页

    6.

    刘显荣主编;张元涛,吴云君副主编;汪德彪,常继彬,叶文,范苏参编.微机原理与嵌入式接口技术:西安电子科技大学出版社,2016.08:第129页

    7.

    万晓东,陈则王,孔德明编著.计算机硬件技术基础:南京航空航天大学,2013.01:第275页

    8.

    刘显荣主编;张元涛,吴云君副主编;汪德彪,常继彬,叶文,范苏参编.微机原理与嵌入式接口技术:西安电子科技大学出版社,2016.08:第130页

    9.

    陈燕俐, 洪龙, CHENYan-li, et al. 自由调整中断优先级的研究和实现[J]. 南京邮电大学学报(自然科学版), 2005, 25(6):35-39.

    展开全文
  • STM学习- -中断优先管理 Wed 0303:0006:0009:0012:0003:0006:0009:00Thu 04已完成 时间安排 中断优先级分组: CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。 ...

    STM学习- -中断优先管理

    Wed 03 03:00 06:00 09:00 12:00 03:00 06:00 09:00 Thu 04 已完成 时间安排

    中断优先级分组:

    • CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。
    • STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。
    • STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。
    • STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)

    中断管理:

    • STM32中断数量太多,对中断的使用需要进行分组
      在这里插入图片描述
      在这里插入图片描述
      *假定设置中断优先级组为2,然后设置
      /中断3(RTC中断)的抢占优先级为2,响应优先级为1。 中断6(外部中断0)的抢占优先级为3,响应优先级为0。中断7(外部中断1)的抢占优先级为2,响应优先级为0。
      /那么这3个中断的优先级顺序为:中断7>中断3>中断6。

    Systick中断服务函数:

    void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
    
    void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
    {
    assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));
    SCB->AIRCR = AIRCR_VECTKEY_MASK | NVIC_PriorityGroup;
    }
    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
    
    
    • 中断设置相关寄存器
    __IO uint8_t  IP[240]; //中断优先级控制的寄存器组
    __IO uint32_t ISER[8]; //中断使能寄存器组
    __IO uint32_t ICER[8]; //中断失能寄存器组
    __IO uint32_t ISPR[8]; //中断挂起寄存器组
    中断挂起控制寄存器组:ISPR[8]
    作用:用来挂起中断
    __IO uint32_t ICPR[8]; //中断解挂寄存器组
    中断解挂控制寄存作用:用来解挂中断
    器组:ICPR[8]
    __IO uint32_t IABR[8]; //中断激活标志位寄存器组
    
    MDKNVIC寄存器结构体
    typedef struct
    {
     __IO uint32_t ISER[8];             
          uint32_t RESERVED0[24];              
                               
     __IO uint32_t ICER[8];                    
          uint32_t RSERVED1[24]; 
    -----------------------------------------------------------------------------------------------------                              
    中断失能寄存器组:ICER[8]
    作用:用来使能中断
    32位寄存器,每个位控制一个中断的失能。STM32F10x只有60个可屏蔽中断,所以只使用了其中的ICER[0]ICER[1]ICER[0]的bit0~bit31分别对应中断0~31ICER[1]的bit0~27对应中断32~59;
    
    配置方法跟ISER一样。
    void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
        
     __IO uint32_t ISPR[8];                     
          uint32_t RESERVED2[24];                                   
     __IO uint32_t ICPR[8];                   
          uint32_t RESERVED3[24];                                   
     __IO uint32_t IABR[8];                     
          uint32_t RESERVED4[56];      
                                       
     __IO uint8_t  IP[240];                     
          uint32_t RESERVED5[644];           
    -----------------------------------------------------------------------------------------------------          
     中断优先级控制的寄存器组:IP[240] 
    全称是:Interrupt Priority Registers
    
    2408位寄存器,每个中断使用一个寄存器来确定优先级。STM32F10x系列一共60个可屏蔽中断,使用IP[59]~IP[0]。
    
    每个IP寄存器的高4位用来设置抢占和响应优先级(根据分组),低4位没有用到。
    void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);             
     __O  uint32_t STIR;                         
    }  NVIC_Type; 
    
    
    
    
    
    • 中断初始化函数
    typedef struct
    {
    uint8_t NVIC_IRQChannel; //设置中断通道
    uint8_t NVIC_IRQChannelPreemptionPriority;//设置响应优先级
    uint8_t NVIC_IRQChannelSubPriority; //设置抢占优先级
    FunctionalState NVIC_IRQChannelCmd; //使能/使能
    } NVIC_InitTypeDef;
    
    NVIC_InitTypeDef   NVIC_InitStructure;
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//串口1中断
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1 ;// 抢占优先级为1
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;// 子优先级位2
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//IRQ通道使能
    NVIC_Init(&NVIC_InitStructure);	//根据上面指定的参数初始化NVIC寄存器
    
    
    • 中断优先级设置步骤
    • 系统运行后先设置中断优先级分组。调用函数:
      void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
      整个系统执行过程中,只设置一次中断分组。
      -针对每个中断,设置对应的抢占优先级和响应优先级:
      void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
    • 如果需要挂起/解挂,查看中断当前激活状态,分别调用相关函数即可。
    展开全文
  • configMAX_SYSCALL_INTERRUPT_PRIORITY 中断优先级设置问题 从CortexM角度 Cortex-M构架自身最多允许256级可编程优先级(优先级配置寄存器最多8位,所以优先级范围从0x00~0xFF), 是绝大多数微控制器制造商只是使用...
  • 51单片机(80C51系列)有5个中断源,2个优先级,可以实现二级中断服务嵌套。现在很多扩展的51单片机已经有4个优先级(或更多)和更多的中断源了。在说到中断之前,我先来定义一下优先级,明白了什么是优先级,后面的阐述...
  • demi 发布于:周三, 10/16/2019 - 15:15 ,关键词:51单片机包含五个中断源,两级中断优先级,优先级可编程设置,通过IP进行设置。● PX0(IP.0),外部中断0优先级设定位;● PT0(IP.1),定时/计数器T0优先级设定位;...
  • 2002级《单片微机原理与接口技术》期末试卷(A卷)一、单项选择题(每小题2分,共20分)⒈ 在MCS-51系列单片微机的CPU内部参与运算的数是 ( C )数D、T1、INT1、T0、INT0、串行口中断 ⒏ 执行下列指令组后,A的内容( ) ...
  • 第6章 中断与DMA第2节 中断中断系统第二节 中断中断系统2.1 中断的概念1、 中断中断系统"中断(Interrupt)"是一种操作,它使CPU中止正在执行的程序,而转入称为"中断处理程序(Interrupt Handler)"(或称中断...
  • 某计算机系统共有五级中断,其中断响应优先级从高到低來源:互聯網2010-02-16 21:16:18評論分類: 電腦/網絡 >> 操作系統/系統故障問題描述:某计算机系统共有五级中断,其中断响应优先级从高到低。但操作...
  • 中断系统中一定会用到的寄存器就是IE,因为IE寄存器中有中断的总开关(EA)。 EA:CPU的总中断允许控制位,EA=1时,CPU开放中断(允许中断的发生),EA=0时,屏蔽所有的中断申请。同理以下其他允许位,置1时...
  • 它们在硬件上的排列顺序是INT0,T0,INT1,T1,TI/RI,这5个中断源的中断顺序号依次就是interrupt 后面的0,1,2,3,4。其中定时器可以选择工作方式,因为我们使用定时器的方式不一而足,有的程序会用来计时,有的...
  • stm32中断优先级概述

    2021-01-17 13:59:05
    stm32中断优先级概述一:综述STM32 目前支持的中断 84 个(16 个内核+68 个外部),可以提供16 级可编程中断优先级的设置(仅使用中断优先级设置8bit中的高4位)和16个抢占优先级(因为抢占优先级最多可以有4位)。...
  •   中断响应次序的基本规则:一般在处理某级的某个中断请求时,是不能被与它同级的或比它低一级的中断请求所中断的。只有比它高一级的中断请求才能中断其处理,等响应和处理完后再继续处理原先的那个中断请求。中断...
  • PSPT1PX1PT0PX0IP优先级别寄存器各位介绍如下:PS:串行口中断优先级控制位。PS=1设定串行口高优先级中断;PS=0低优先级中断。PT1:T1中断优先级控制位。PT1=1设定定时器T1高优先级中断;PT1=0低优先级中断...
  • 中断优先级可以由中断屏蔽字来改变,反映的是正在处理的中断是否比新发生的中断的处理优先级低(屏蔽位‘0’,对新中断开放),如果是的话,就中止正在处理的中断,转到新中断去处理,处理完后再回到刚才被中止...
  • 单片机中断系统

    2021-08-29 10:55:31
    前言:中断系统是单片机非常重要的组成部分,是为了使单片机能够对外部或者内部随机发生的事件实时处理而设置的。 一:单片机的概念 一个高速主机和一个低俗外设连接时,效率极低,低俗外设工作时无端大量占用CPU...
  • stm32_中断优先级详解

    千次阅读 2021-01-30 09:57:19
    )前提条件1:组别优先顺序(第0组优先级最强,第4组优先级最弱):NVIC_PriorityGroup_0>NVIC_PriorityGroup_1>NVIC_PriorityGroup_2>NVIC_PriorityGroup_3>NVIC_PriorityGroup_4这里说的...
  • 很多人在配置STM32中断时对固件库中的这个函数NVIC_PriorityGroupConfig()——配置优先级分组方式,会很不理解,尤其是看中文翻译版的,因为中文翻译版里把这里翻译成“先占优先级和从优先级”这样翻译其实是不对的...
  • 中断装置和中断处理程序统称为中断系统。中断系统是计算机的重要组成部分。实时控制、故障自动处理、计算机与外围设备间的数据传送往往采用中断系统。中断系统的应用大大提高了计算机效率。中文名中断外文名...
  • 文章目录第八章 中断系统8.1 中断的基本概念8.1.1 中断概念的引入及描述中断...中断优先与中断分级2.禁止中断与中断屏蔽3.中断嵌套4.中断系统应具备的基本功能8.3 80x86的中断指令INT n指令的执行过程8.4 中断控制器8
  • STM32-中断优先级管理NVIC 1.NVIC中断优先级分组 NVIC的全称是Nested vectoredinterrupt controller,即嵌套向量中断控制器。STM32F中文参考手册中搜索向量表可以找到相应的中断说明。 CM4/CM7 内核支持256个中断,...
  • 1.解释 计算机执行某一程序时,发生了紧急事件或者有特殊请求,CPU暂停某程序的执行,转而去处理上述事件,处理完毕后再重新执行原来被打断的程序。...(这两个中断源标志与中断方式由特殊功能寄存器TCON的低四位控制)
  • 8259A中断控制器

    2021-08-01 04:51:46
    8259A芯片是一个中断管理芯片,中断的来源除了来自于硬件自身的NMI中断和来自于软件的INT n指令造成的软件中断之外,还有来自于外部硬件设备的中断,这些中断是可屏蔽的。这些中断也都通过可编程中断控制器PIC...
  • (to CPU) INTA INT 从8259A IR7 IR6 … IR0 IR7 IR6 … IR0 INTA INT CAS0 CAS1 CAS2 CAS0 CAS1 CAS2 主8259A INTA (from CPU) INTR … … 例如: 若主、从8259A工作于固定优先权方式,从片的优先级IR0?...
  • STM32NVIC中断优先级

    2021-01-31 21:41:36
    STM32NVIC中断优先级 CM3内核共支持256个中断,其中包含了16个内核中断,240...在MDK中,与NVIC相关的寄存器,MDK其定义了如下的结构体: typedef struct { IO uint32_t ISER[8]; uint32_t RESERVED0[24]; IO uin
  • main.c /* *工程模板(寄存器版本) */ #include "stm32f10x.h" /** * 主函数 */ int main(void) ... // 开启GPIOB 端口时钟 ... // 配置PB0通用推挽输出,速度10M GPIOB_CRL |= (1<<4*0); // P.
  • 外部中断NMI中断.ppt

    千次阅读 2020-12-28 21:29:32
    外部中断NMI中断.ppt* 1、先看其引脚结构再看功能1。 可编程的含义:通过对芯片编程,使芯片实现不同的功能。 中断比较多的情况下,使用中断控制器来管理中断。 用来管理系统的硬件中断。 * 1、数据总线驱动器 和CPU...
  • 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。(1)中断源:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,856
精华内容 23,142
关键字:

中断的优先顺序为