AutosarMCAL开发——基于EB Irq驱动

1.Irq原理

IRQ(Interrupt Request),即中断请求。在嵌入式系统和计算机体系结构中,IRQ是CPU和外部设备或内部事件之间的一种通信方式。当外部设备或内部事件需要CPU的注意时,它们会发送一个中断请求信号给CPU。CPU在接收到这个信号后,会暂停当前正在执行的程序,转而执行一个特定的中断服务例程(ISR)来处理这个中断请求。处理完毕后,CPU会返回到被中断的程序继续执行。

在AUTOSAR(汽车开放系统架构)中,IRQ(中断请求)是嵌入式系统中的一个重要概念,它允许系统对外部或内部事件做出即时响应。在AUTOSAR的上下文中,IRQ与中断服务例程(ISR)紧密相关,用于处理这些中断事件。以下是对AUTOSAR中IRQ的详细解释:

    1. 中断的基本概念
      中断是嵌入式系统中的一个重要机制,它允许CPU暂停当前正在执行的程序,转而执行一段特定的代码(即中断服务例程ISR),以处理某个事件(如外部设备的中断请求、定时器溢出等)。处理完中断后,CPU将返回之前被中断的程序继续执行。
    1. AUTOSAR中的中断处理
      在AUTOSAR架构中,中断处理是通过中断服务例程(ISR)来实现的。AUTOSAR将中断分为两类:

      第1类中断:不与操作系统(如RTA-OS)交互,通常具有最高的优先级,并且其处理程序完全由用户编写。这类中断的处理不依赖于 操作系统的支持,因此可以更快地响应。
      第2类中断:与操作系统交互,其处理程序通过操作系统提供的接口进行注册和管理。当中断发生时,操作系统会先执行一些内部代码,然后调用用户提供的处理程序。这类中断的处理更加灵活,可以利用操作系统的资源管理机制来避免冲突和死锁。

    1. 中断服务例程(ISR)
      在AUTOSAR中,ISR是处理中断的特定函数,它必须遵循一定的规范来编写。ISR的编写通常涉及以下几个步骤:

      定义ISR:在C语言中,ISR通常是一个带有特定属性的函数,如__interrupt或__irq(具体取决于编译器和硬件平台)。
      编写处理逻辑:在ISR中编写处理中断事件的代码,如读取设备状态、更新数据等。
      恢复现场:在处理完中断后,需要恢复CPU的寄存器状态和被中断的程序上下文,以便继续执行之前的程序。

硬件支持:Tc3xx系列IR(Interrupt Router)中断路由器架构如下
在这里插入图片描述

2.EB配置以及接口应用

EB配置步骤

一类中断配置步骤
1.配置中断类型
2.配置中断向量表
3.配置服务商

1.配置中断类型
在这里插入图片描述
2.配置中断向量表
在这里插入图片描述
3.配置服务商
在这里插入图片描述

接口应用

eg:配置adc一类中断 中断由CPU处理 配置中断服务函数
1.IrqAdc_Init()//Adc Irq初始化
2. SRC_VADC_G0_SR0.B.SRE = 1 //使能adc中断
3. ISR() //中断服务例程
4. Irq_ClearAllInterruptFlags();//清除中断标志位
以下为中断服务例程代码(需手写 将会调用MCAL包中的中断回调函数 若在EB中配置了notification则使用通知函数实现中断处理即可)

#if IRQ_ADC0_SR0_TOS != IRQ_TOS_DMA
#if((IRQ_ADC0_SR0_PRIO > 0) || (IRQ_ADC0_SR0_CAT == IRQ_CAT2))
#if((IRQ_ADC0_SR0_PRIO > 0) && (IRQ_ADC0_SR0_CAT == IRQ_CAT1))
IFX_INTERRUPT(ADC0SR0_ISR, 0, IRQ_ADC0_SR0_PRIO)
#elif IRQ_ADC0_SR0_CAT == IRQ_CAT2
ISR(ADC0SR0_ISR)
#endif
{
  /* Enable Global Interrupts */
  ENABLE();
  /* Call Adc Interrupt function*/
  Adc_RS0EventInterruptHandler(0U);
}
#endif
#endif

以上代码的作用在于根据不同的中断类型进行不同的编译处理,IFX_INTERRUPT在Irq.h中定义,ISR函数则在os相关文件中定义

其中Mcu_17_Gtm_TomChannelIsr 位于MCAL包 …\Mcu\src\Mcu_17_TimerIp.c文件中,该文件中包含GPT、CCU、ATOM、TIM、TOM、STM等模块;
其他模块ISR在各自模块里mcal包里,形如tInterruptHandler

3.总结

本文为博主个人学习总结记录,如有不正,欢迎指正

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值