RH850实践:中断入门

admin 2024年6月3日08:59:53评论147 views字数 1541阅读5分8秒阅读模式

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

汽车领域使用的芯片中,中断系统已然是标配。掌握中断系统是一个工程师的基本技能。了解一个事物,最好的方式就是实践。本文,基于RH850 F1KM,聊一聊"中断"。中断系统主要包含三个部分:中断触发源、中断控制及中断处理,示意如下:

RH850实践:中断入门

讲到中断,本质是在讨论CPU的行为,即:中断针对CPU。在没有中断系统之前,CPU按照命令时序,顺序执行。为了能让CPU处理更紧急的任务(eg:刹车任务),设计了中断,即:让正在运行的CPU停下当前任务,去处理更高优先级的任务,示意如下:

RH850实践:中断入门

01

中断基地址及中断函数入口地址

在一个具有中断系统的芯片中,每个CPU会有一个中断向量表基地址寄存器(eg:INTBP, Base address of the interrupt handler address table)。

那么,中断向量表地址寄存器存储的地址是多少呢?答:用户自定义,即:中断向量表寄存器存储的地址,可根据芯片资源自行设定,eg:0x00000200,这个地址将成为中断向量表的基地址。注意,该地址一般需要放在PFlash内存区。知道了中断向量表入口位置,即可通过每个中断的偏移(Offset)查找到对应中断函数入口地址。

(一)CPU如何找到中断函数入口地址

如上提到:CPU会对应一个中断向量表基地址寄存器(eg:INTBP),而INTBP存放着中断向量表的基地址,同时,中断向量表存放着每个中断函数的入口地址,示意如下:

RH850实践:中断入门

中断向量表基地址可以在链接文件中设定,也可以在头文件(eg:*.h)等位置设定。

02

中断函数注册

中断函数的处理,需要注册中断函数,即:将目标中断函数放入指定位置。具体操作:

(一)编写中断函数

中断函数需要用#pragma进行声明,示意如下:

#pragma INTERRUPT inticup2pe_DataFlashRq_handler(vect=359)void inticup2pe_DataFlashRq_handler(void){    /* do something*/}

使用#pragma声明,也可以用如下方式:

#pragma ghs interruptvoid inticup2pe_DataFlashRq_handler(void){    /* do something*/}

(二)在启动文件(*.850)中注册中断函数

  ......  .offset (IRQ_TABLE_START+0x059C)  #if (INTICUP_DATAFLASHPRQT_ENABLE > 0x00000000)    .extern _inticup2pe_DataFlashRq_handler    .word _inticup2pe_DataFlashRq_handler  #else    .word __unused_isr  #endif  ......

注意:链接文件注册中断函数时,函数前需要添加下划线"_"。

03

中断触发方式及中断控制

在RH850中,中断触发方式可以是Level(eg:"1"),也可以是Edge触发(eg:上升沿、下降沿或者双边沿)。在芯片的datasheet中,每个中断源的触发方式会给出具体约束,每个中断源在中断向量表中的偏移地址、中断Channel也会给出具体约束,示意如下:

RH850实践:中断入门

对于每个中断,中断优先级、中断触发方式等需要通过中断控制寄存器(Interrupt Control Registers)配置。

(一)中断使能

中断的使能包含两个部分:

1、中断触发源使能,即:使能对应中断源的触发能力

2、中断控制的使能,即:中断控制单元使能,使其可以接收中断源的请求,并把仲裁后的结果传递给CPU。

示意如下:

RH850实践:中断入门

 end 

RH850实践:中断入门

 专业社群 

RH850实践:中断入门

 精品活动推荐 

RH850实践:中断入门
RH850实践:中断入门
RH850实践:中断入门

原文始发于微信公众号(谈思实验室):RH850实践:中断入门

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年6月3日08:59:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   RH850实践:中断入门https://cn-sec.com/archives/2807522.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息