[BUG]TDA4 main域 CAN 无法进中断

目录

关键词

嵌入式、C语言、autosar、TDA4

平台说明

项目 Value
OS autosar OS
autosar厂商 vector
芯片厂商 TI
编程语言 C,C++
编译器 HighTec (GCC)

一、背景

在将mcu域的部分can 移植到main域的时候发现无法进入can中断。

二、根本原因

2.1 Com模块

TDA4中使用到了中断路由,如果中断路由没有关闭到mcu域的路径,即使main域收到can,也不会在main域中产生中断。

c 复制代码
#define BRS_ENABLE_CHANNEL_CAN_1
#define BRS_ENABLE_CHANNEL_CAN_2
#define BRS_ENABLE_CHANNEL_CAN_3
#define BRS_ENABLE_CHANNEL_CAN_4
#define BRS_ENABLE_CHANNEL_CAN_5
#define BRS_ENABLE_CHANNEL_CAN_6

#if defined BRS_ENABLE_CHANNEL_CAN_4
  /* MAIN MCAN 6 routing */
  rmIrqReq.valid_params = TISCI_MSG_VALUE_RM_DST_ID_VALID;
  rmIrqReq.valid_params |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
  rmIrqReq.src_id = TISCI_DEV_MCAN6;
  rmIrqReq.global_event = 0U;
  /* Src Index 0 - mcanss_ext_ts_rollover_lvl_int,
     Src Index 1 - mcanss_mcan_lvl_int Line 0,
     Src Index 2 - mcanss_mcan_lvl_int Line 1 */
  rmIrqReq.src_index = 1U;
  rmIrqReq.dst_id = TISCI_DEV_MCU_R5FSS0_CORE0;
  rmIrqReq.dst_host_irq = CSLR_MCU_R5FSS0_CORE0_INTR_MAIN2MCU_LVL_INTRTR0_OUTL_0 + 2;
  rmIrqReq.ia_id = 0U;
  rmIrqReq.vint = 0U;
  rmIrqReq.vint_status_bit_index = 0U;
  rmIrqReq.secondary_host = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;
  retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SCICLIENT_SERVICE_WAIT_FOREVER);
  if ((uint32)0 != retVal)
  {
    while (1)
      ;
  }
#endif /*BRS_ENABLE_CHANNEL_CAN_4*/

三、措施

关闭移植到main域的can路由后问题解决。

相关推荐
这个软件需要设计一下1 天前
ninedata安装磁盘不足问题解决
运维·bug
热爱生活的五柒1 天前
cc-switch安装方法、介绍及遇到的bug
bug·cc-switch
Greenland_121 天前
Android 混淆与混淆后bug日志问题定位
android·bug
应用市场1 天前
踩坑记录:有符号整数位运算的那些隐蔽Bug——符号扩展、算术右移与补码
java·开发语言·bug
一灰灰blog2 天前
Jar包会自己消失?Excel会“记忆“数据?我遇到了两个灵异bug
java·spring boot·bug·excel
王家视频教程图书馆3 天前
修复服务端500相应,修复客户端上传文件.tmp 服务端接受不到文件bug
bug
qq_401700413 天前
Qt开发过程中遇到哪些经典的bug
qt·bug
0白露5 天前
关闭搜狗输入法右下角广告,可以适用于大多数应用系统通知的广告
windows·bug
一只自律的鸡6 天前
【Linux驱动】bug处理 ens33找不到IP
linux·运维·bug
Lichenpar7 天前
Springboot采用FastJson2作为MessageConverter时,配置的全局日期类型序列化转换BUG
java·开发语言·bug