rtaoscfg配置ISR
中断
ISR: Interrupt Service Routine中断服务程序,既可以生成事件,也可以激活任务
ISR由硬件中断请求直接触发
ISR具有比所有任务更高的优先级,并且会抢占任务
对Autosar API函数的调用在ISR内部受到限制
ISR应该小而快
ISR可以激活任务或触发事件
一个阻塞式ISR会阻塞整个Autosar系统

Autosar Os提供两类不同的ISR:一类中断和二类中断,任何中断的优先级都比任务高。
一类中断:内部只允许一些函数(例如ResumeAllInterrupts)。从抢占任务中使用任务堆栈。实现依赖于编译器。一类中断由硬件芯片直接控制进入用户中断处理程序及执行完成后返回,没有OS的上下文保存和恢复过程,因此没有中断延迟。
二类中断:Autosar Os自动生成一个ISR帧,它允许使用Os API调用的子集。使用自己的ISR堆栈。二类中断用户程序调用时有一定的中断延迟时间,中断进入及退出时各有一段延迟时间。
一类中断Category 1(CAT1)
快速响应中断
执行时间极短(通常微秒级),仅做最基础的硬件操作(如读取寄存器、清除标志);
禁止调用任何 OS 服务(如ActivateTask、GetResource),不能依赖 OS 调度;
优先级最高,不可被任务或 CAT2 中断抢占。
适用场景:对实时性要求极高的硬件响应(如电机过流保护、电源故障)。
二类中断Category 2(CAT2)
可调度中断
核心特点
可执行稍复杂的逻辑(如数据缓存、触发任务激活);
允许调用部分 OS 服务(如ActivateTask、ClearPendingInterrupt);
优先级低于 CAT1,但高于任务,可被 CAT1 中断抢占。
具体配置
只需要配置ISR一层的内容,里面细节都不用配置。
这里的中断包括外设CAN/LIN/WDG/ADC,和GTM里面的TOM/ATOM/TIM之类的模块,还有DMA之类的内部中断
Category中断类,除了看门狗这种需要非常高优先级的配成1类,不能被打断和忽略,其他的都配成2类。
Priority优先级,数字越大优先级越高。1-64
Address/Vector中断向量,要在规格书中断通道表里面找。ISR的名字要跟MCAL里面的中断名字一模一样。

