CoreSight 是什么?

  • 官方定义:

    ARM CoreSight™ 是 芯片级调试和追踪技术套件,用于嵌入式系统和 SoC 的 实时调试、性能分析、故障诊断

  • 通俗解释:

    如果把芯片比作 飞机,
    CoreSight 就是 黑匣子(Flight Recorder)——
    芯片崩溃时,它记录 最后 100 条指令、寄存器状态、总线事务,
    让工程师能 精准定位故障原因(如 "WDT 超时导致安全状态机崩溃")。

为什么CoreSight是 Safety Island 的关键工具?

传统调试方式CoreSight 方式
用示波器测引脚(只能看时序)直接抓取芯片内部状态(指令流、数据流)
需要物理探针(破坏性)非侵入式调试(无需物理接触)
仅能看当前状态记录历史轨迹(崩溃前 10ms 的完整执行路径)

SI 中 CoreSight 的核心作用

故障诊断(ISO 26262 强制要求)
  • 当 SPU 崩溃时,CoreSight 保存:
    • 最后 100 条指令(通过 ERT 路由到 Trace Buffer)
    • 寄存器快照(崩溃时的 PC、SP、R0-R12)
    • 总线事务(NoC 上的读写请求)
  • 输出路径:通过 SPU 的 UART 输出(用 minicom 看到的 "CoreSight trace" 日志)
安全认证证据
  • ISO 26262 要求:证明故障可追溯性(Fault Traceability)
  • CoreSight 生成的 Trace Log 是认证核心证据
    1[CORESIGHT] Trace: 
    2  PC=0x80001234, R0=0x00000001, 
    3  NoC: Read @0x20000000 (SAFETY_NOC)
    4  WDT: Timeout at 12:34:56.789
  • 没有 CoreSight,无法通过 ASIL-D 认证(车企会拒收芯片)。
实时监控(无侵入式)
  • ERT(Embedded Trace Router):
    • 路由所有调试数据流(如 SPU 指令、RAM 访问)
    • 通过 带宽限制(仅 10% 总线带宽)避免影响实时性
  • TPIU(Trace Port Interface Unit):
    • 将调试数据 串行化 输出到 UART(minicom 看到的原始日志)
为什么叫 "CoreSight"?(技术冷知识)
  • Core:指 CPU 核心(SPU 的 Cortex-R52)
  • Sight:指 "看见"(See what's happening inside the core)
  • 命名逻辑:

    "让工程师 看见 CPU 核心内部 的执行状态"

实战:minicom 中看到的 CoreSight 日志

当 SPU 崩溃时,可能看到:

1[SPU] CoreSight: Trace captured!
2[SPU] PC=0x8000A123, LR=0x8000B456
3[SPU] R0=0x00000001, R1=0x00000002
4[SPU] WDT: Timeout (0x0A)
5[SPU] NoC: Read @0x20000000 (SAFETY_NOC)

解读:

  • PC=0x8000A123:崩溃时程序计数器指向的地址
  • WDT: Timeout (0x0A):看门狗超时(错误代码 0x0A)
  • NoC: Read @0x20000000:崩溃前访问了 NoC 地址 0x20000000
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐