M0最高优先级的中断设计

本文介绍了M0处理器中最高优先级的两种中断:Reset和NMI。Reset中断通常置于最高优先级,但在某些场景下可能有局限性。NMI是非屏蔽中断,无法被禁用,常用于工业控制和汽车系统的安全性保障,如电源异常或看门狗功能。Hard fault则是处理执行期间的故障条件,如未知指令、总线错误或非法操作。
摘要由CSDN通过智能技术生成

1  Reset                   -3            (Highest) Reset

绝大部分处理器设计时,将复位中断放在最高优先级。

一般来说这样设计是合理的,个人认为在某些应用场景这样处理仍有局限性。



2  NMI                      -2             Nonmaskable interrupt

The NMI is similar to IRQ, but it cannot be disabled and has the highest priority apart from the
reset. It is very useful for safety critical systems like industrial control or automotive.
Depending on the design of the microcontroller, the NMI could be used for power failure
handling, or it can be connected to a watchdog unit to restart a system if the system stopped
responding. Because the NMI cannot be disabled by control registers, the responsiveness is
guaranteed.

官方描述NMI是为了在工控和车控产品领域,专为提高安全性的设计。

也就是说安全第一:把安全性放在最高优先级处理,除了复位以外,不准许任何其他中断能够打断安全处理程序。

通常设计处理是:电源异常处理,连接看门狗去复位系统

 



3  Hard fault            -1        

FreeRTOS中任务的优先级通过配置文件FreeRTOSConfig.h中的configMAX_PRIORITIES宏定义进行设置。用户可以将可用的优先级范围从0到configMAX_PRIORITIES - 1进行配置。建议将configMAX_PRIORITIES的最大值设置为不超过32。空闲任务的优先级为0,而任务的优先级数值越小,优先级越低。 通常情况下,任务的优先级可以根据以下几个方案进行分配: 1. 中断任务:这些任务是通过中断服务程序触发的,应该设置为所有任务中优先级最高的。 2. 高优先级后台任务:例如按键检测、触摸检测、USB消息处理、串口消息处理等,这类任务可以归为高优先级后台任务。 3. 低优先级的时间片调度任务:例如emWin的界面显示、LED数码管的显示等不需要实时执行的任务,可以归为低优先级的时间片调度任务。 4. 空闲任务:空闲任务是系统任务。 需要注意的是,中断优先级永远高于任何任务的优先级,即任务在执行的过程中,中断来了就开始执行中断服务程序。因此,中断优先级的数值越小,优先级越高;任务优先级数值越小,优先级越低。 关于为什么设置最大优先级为32个的疑惑,实际上,虽然一般十几个优先级就足够使用了,但是最大优先级的设置还是有一些限制条件的。具体限制条件可能与系统硬件或软件的实现有关,但是没有提供具体的信息。 在FreeRTOS中,任务的调度器会根据优先级来选择就绪任务进行执行。调度器会从优先级最高的任务开始查找就绪任务,如果找到了就会跳出循环,将找到的任务分配给TCB任务控制块去执行。然后,将找到的优先级传递给uxTopReadyPriority变量。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [FreeRTOS任务优先级](https://blog.csdn.net/m0_55744970/article/details/125951720)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [FreeRTOS的学习(二)——任务优先级问题](https://blog.csdn.net/qq_39397153/article/details/123666584)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值