This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/66AK2H12:2个器件之间的交叉触发

Guru**** 2540720 points
Other Parts Discussed in Thread: 66AK2H12

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/609884/ccs-66ak2h12-cross-trigger-between-2-devices

器件型号:66AK2H12

工具/软件:Code Composer Studio

你(们)好 我对两个器件之间的交叉触发有一些疑问。

我希望当器件的内核在断点中停止时、其他器件的所有内核(或至少一个内核)都通过交叉触发暂停。

我进行了以下测试。

(1)我为2个器件使用了2个仿真器(Blackhawk USB560v2 System Trace)。

 我已将两个66AK2H12器件的 EMU0/1引脚相互连接。 (除了这2个引脚之外的其他 EMU 引脚未连接。)

(2)在 CCS 目标配置中、我配置了2个仿真器。

在 CCS Debug 窗口中、我创建了一个包含 core0/device0和 core0/device1的 GROUP。

我在 Group 的弹出菜单中选中了"Enable Global Breakpoints"选项。

(虽然我知道在使用单独的仿真器时全局断点不可用。)

(3)我为 Device0/Core0设置断点,并运行 Device1/Core0和 Device0/Core0。

Device0/Core0在断点中停止、但 Device1/Core0当时未被暂停。 并且两个 EMU0/1引脚的信号都没有改变(均为高电平)。

1.上述测试顺序是否正确? 或者、我之前是否需要为交叉触发做任何事情?

2. guide (SPRUHM4.pdf)指出、要将 Trigger0/1线路用作外部触发器、需要 DRM (或 DPM)设置。  

  我尝试检查调试资源管理器寄存器、但找不到66AK2H12寄存器的地址。

  在66AK2H12.pdf 中、我找到了一个存储器映射区域(debug_ss 配置;0x0300 0000)。 这是调试资源管理器寄存器的基地址吗?  

  我无法在 CCS 存储器浏览器中更改该地址区域的值。

 3.如何检查目标的配置(设置)是否正确以在 器件之间进行交叉触发?

谢谢你。

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jiyoon、

    我已将此内容转发给 c66x 核心专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    这是一个 wiki: processors.wiki.ti.com/.../Multi-Core_Debug_with_CCS。 如果有以下帮助、您能否检查以下步骤:

    基于 C66x 的器件:需要将 DRM 配置为输出适当的信号、以便在同一 JTAG 扫描路径上的不同器件之间启用全局断点(例如、在同一 JTAG 扫描路径上有2个单独的 C6670器件)。 这可以通过此 GEL 文件来实现。

    GEL 文件用于带有的 C6670
    #define L3_DBGSS_STM_BADDR (unsigned int)(0x20000000)// debugSS 的 STM-data 的基地址

    66AK2H12器件也是如此。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、感谢您的回复。

    我补充一些关于这方面的问题。  

    根据您所说的 GEL 文件、在 C6670中、Debug_SS 配置基址为0x0240 0000、DRM 基址为0x0242 0000。

    66AK2H12的 DRM 基址是什么? 我可以从什么文档中找到有关该内容的信息?

    2.我在 文档"Emulation and Trace Headers Technical Reference Manual"(SPRU655i.pdf) p35中阅读了以下句子。

    "每个设备都在其自己的扫描链中。 不支持同步执行、交叉触发器和全局断点。

    在此配置中、在器件之间连接 EMU0和 EMU1将允许交叉触发器运行

    但是、如果路由较长、则可能会导致引脚无法用于跟踪。"

    因此、我认为交叉触发只需要 EMU0/1连接。

    我想要的只是当内核在断点中停止时、其他器件的内核会被暂停。

    为此、是否应启用全局断点? 还是仅需要交叉触发?

    全局断点和交叉触发之间有何区别或关系?

    谢谢你。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是否有人对此问题给出了答案?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好、编码。
    我找不到66AK2H12的 DRM (调试资源管理器)配置指南。
    请给我一些相关指南。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    请对您的答复延迟表示歉意。  

    尽管我不是您所使用的特定器件的专家、但我发现了以下信息:

    [引用 user="Jiyoon OH]1. 根据您说过的 GEL 文件、在 C6670中、Debug_SS 配置基址为0x0240 0000、DRM 基址为0x0242 0000。

    66AK2H12的 DRM 基址是什么? 我可以从什么文档中找到有关该内容的信息?

    我找不到调试子系统寄存器的特定地址、但在 Kepler 的跟踪配置 XML 文件中(Hawking 和 Kepler 在这方面非常相似)、我找到了属性 DEV_char_DRMB ASE_ADDR。 此文件位于:

    ccsv7/ccs_base/emulation/analysis/xmldb/trace_config/devices/device_kepler.xml

    [引用 USER="Jiyoon OH"]因此我认为交叉触发只需要 EMU0/1连接。

    是的、您回答正确。 EMU0/1用于器件间交叉触发。 66AK2H12数据表的第11.26.1节对此进行了介绍 、并在调试和跟踪用户指南(SPRUHM4)的图3-1中进行了暗示。

    为此,是否应启用全局断点? 还是仅需要交叉触发?

    全局断点是您(用户)配置为运行/停止所需的器件/内核的断点。 全局断点将使用交叉触发硬件来实现该目的。  通过 lding 链接的文档显示了如何向用户显示此内容。  

    希望这对您有所帮助、

    拉斐尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你。 去苏扎
    但是、我无法解决该问题。

    我从您说过的 GEL 文件中找到了 DRM 基址。 它是0x80017000。
    但是、根据66AK2H12数据表、地址区域(0x8000000~0xFFFFFFFF)用于 DDR3。

    如何在 DRM 寄存器中写入一些值?

    器件之间交叉触发需要什么配置? 我能否获得一些示例代码或 GEL 文件?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否有人使用 EMU0/1连接在两个器件之间进行交叉触发?