[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路由后问题解决。

相关推荐
中文英文-我选中文8 小时前
FreeRTOS 玄学Bug:调换任务创建顺序,程序时而正常、时而死机(栈溢出内存踩踏深度复盘)
bug
Keven_1114 小时前
BUG:UVA116
算法·bug·图论
鬼手点金15 小时前
opencode-隐私优先配置
服务器·前端·javascript·bug·openclaw
itmigrate2 天前
异步请求竞态,藏在页面渲染里的隐形bug
bug
今夕资源网3 天前
OmniVoice 今夕整合包 本地语音TTS断网可用 修复了一些BUG 优化生成速度 极速秒生成
bug·语音克隆·omnivoice·断网可用·本地语音tts·语音tts
烧烧的酒0.o7 天前
Codex桌面版更新后不能使用最新模型问题-排查修复总结
chatgpt·bug
sg_knight9 天前
ZCode Bug 定位实战:把报错丢给 ZCode,它是怎么修的
llm·bug·agent·ai编程·glm·智谱·zcode
轩轶子10 天前
Python CLI Todo:一次数据结构错误引发的 Bug
数据结构·python·bug
鬼手点金10 天前
Claude Code示范案例-修复 Bug 工作流
java·服务器·前端·javascript·bug·openclaw
^Rocky18 天前
IT 疑难杂症诊疗室:复杂技术问题解决实录
运维·bug