RH850系列32位MCU三种中断功能,你知道么?

judy的头像
judy 发布于:周四, 05/10/2018 - 16:48 ,关键词:

瑞萨电子RH850系列32位MCU符合ISO26262的要求,满足汽车安全等级ASILB -ASILD等级的控制芯片,在全球汽车电子市场上得到广泛应用,获得著名汽车厂商的认可。

本文向工程师简单介绍RH850系列MCU的中断部分,以帮助工程师更好的使用RH850系列MCU进行开发。

RH850的中断从功能上分为三种,FE级不可屏蔽中断,FE级可屏蔽中断,以及EI级可屏蔽中断。其中FE级代表芯片功能性的中断,以辅助工程师了解MCU内部出错的来源。EI级可屏蔽中断中断是我们定义的各个功能模块所产生的中断。

三者的优先级顺序为:FE级不可屏蔽中断 > FE级可屏蔽中断 > EI级可屏蔽中断。

FE级不可屏蔽中断:在芯片R7F7010323中表现为两个WDT中断,任何情况不可屏蔽。

FE级可屏蔽中断:包括位错误,RAM错误,以及低压检查等中断,可设置PSW.NP=1来屏蔽该种类型中断。

EI级可屏蔽中断:即是我们定义的功能性中断如CAN接收中断,定时器中断等。

其中EI级可屏蔽中断即是我们最常接触的中断,在RH850中最高可分为16个优先等级。每个EI级中断,以功能模块命名,如定时器TAUD0的通道2中断命名为INTTAUD0I2。中断配置相关的寄存器为ICTAUD0I2。

系统中默认以优先级形式进入中断入口,中断入口函数定义可参照如下程序:

#pragma interrupt priority7_interrupt( enable=false , priority=EIINT_PRIORITY7 , callt=false , fpu=false )
void priority7_interrupt( uint32_t regEIIC_value )
{
test = regEIIC_value;
    switch ( regEIIC_value )
    {
       	case 0x0000100AUL: /* INTADCA0I0 *
               */
        break;
}

此外系统中也定义了宏定义来方便我们处理中断操作:
DI():关闭EI级中断
EI():允许EI级中断

也可以调用以下内置函数set_il_rh来配置中断优先级和屏蔽使能功能:

1、函数__set_il_rh(int interrupt-priority-level, void* address of interrupt control register);设置对应地址中断的中断优先级,
interrupt-priority-level 范围0~15。

2、以上的函数 interrupt-priority-level值如下表格时,对应的功能如下:

RH850系列32位MCU三种中断功能,你知道么?

图1:中断屏蔽功能选项

来源:世强元件电商

围观 1233