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.

[参考译文] DRA829V:如何使用 CCS 在 a72已运行 QNX 的情况下调试 r5f 上的代码?

Guru**** 2540720 points
Other Parts Discussed in Thread: BQ32002

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1078024/dra829v-how-to-use-ccs-to-debug-code-on-r5f-with-a72-already-running-qnx

部件号:DRA829V
《线程:测试》( BQ32002)中讨论的其他部件

a72上已有一个 QNX 操作系统在运行。 按照正常的 CCS 调试过程,我需要加载 js 文件。 此文件将把一些文件加载到 a72上,这会干扰 QNX 的运行。 因此,我想知道如何使用 CCS 调试 r5f,而不会干扰 A72。

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

    您好,

    我会将此主题提请设备专家注意。 他们将能够进一步指导您。

    谢谢

    Ki

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

    您好,

    无论运行的是哪种 A72 HOS,CCS 都能够连接到 R5并进行调试,而不会影响 A72。   

    需要了解 js 文件的内容和正在执行的步骤,以便提供有关 A72受到影响的原因的任何反馈。

    此致,

    KB

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

    我已尝试遵循本手册的以下章节:7.4。 在 A72 (Linux/QNX)上运行 HLOS 时进行调试。 CCS 准备就绪时,我无法连接到要调试的 MCU2_0。 我只能连接到 MCU1_0。

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

    您好,

    仍然不清楚是否遵循了总体设置/说明,但会做出一些假设

    假设:

    • 主板正在通过 SD 启动或其他一些启动模式启动,所需的所有内核都在运行,而不连接 CCS。
    • 然后,我们希望使用 CCS 附加到特定的核心,而不会对其他核心或系统产生任何影响。

    如果上述项目符号为 true,则参考 PSDK 8.1文档,第8.4节,   8. J721E 的 CCS 设置—处理器 SDK QNX J721E (TI.com)

    CCS 连接到目标并启动配置后,您应该能够右键单击要连接的任何内核。

    请注意,上一节8.3中的步骤 8. J721E 的 CCS 设置—处理器 SDK QNX J721E (TI.com )不得运行。  请检查 CCS 设置以确保正确

    请告知这是否有帮助,或假设不正确。

    此致,

    KB

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

    大家好,KB

    我的主板通过 EMMC 启动。 在测试 CCS 之前,A72已成功运行。 我负责 A72软件开发的同事已经确认了这一点。 我已按照第8.4节设置 CCS。 我没有提到第8.3节,也没有使用 gel 文件或发布脚本。 CCS 就绪时,我只能连接 A72 core0或 MCU R5F core0。 无法连接其它内核。

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

    感谢您的详细信息,

    此线程以“使用 CCS 调试 r5f,但不会干扰 A72”开头,此线程现在是否正常工作?

    关于连接到其他内核,MMCUR5F 启动日志是否表明已成功加载了内核(如主 R5f)?

    此致,

    KB

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

    不,它还不起作用。 我只能按照第8.3节开始调试 MCU2_0。 这会导致加载 gel 和 js 文件时 A72上正在运行的操作系统中断。

    对于第二个问题,加载目标配置文件后,CCS 上不会显示日志。 我将按照第8.4节中的说明直接连接 MCU2_0,然后 CCS 将报告无法连接。

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

    您好,

    为什么要加载 GEL 和 JS 文件?  

    鉴于您的主板正在从 eMMC 启动,CCS 应该能够连接到运行系统上的 A72或 R5内核,而无需 GEL 和 JS。

    此致,

    KB

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

    事实上,从 eMMC 引导 A72后,如果没有加载 gel 或 js 文件,我就无法连接到 MCU2_0。 这就是为什么我在 E2E 上寻求帮助的原因。

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

    您好,

    好的,因此调试中的问题是:

    • 从 eMMC 引导时,无法使用 CCS 连接到 MCU2_0。

    是否可以提供任何/所有可用的引导日志?  在可能的情况下,MCU2_0内核具有:

    1)未加载/启动

    2)遇到错误情况

    关于(1),希望引导日志将有一个错误日志,或提示为什么没有启动 MCU2_0

    关于(2),

    • 是否在不同的引导模式下验证了相同的 MCU2_0映像
    • 具有一个简化的 MCU2_0映像,已知该映像可以从不同的引导模式加载,并从 eMMC 引导模式加载。

    系统中是否正在使用 SBL 或 SPL 启动?

    谢谢,

    KB

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

    以下是完整的引导日志。 我没有发现任何可能影响 MCU2_0的东西。

    U-Boot SPL 2020.01-00002-g4805fecf28 -脏污(2021年9月20日- 09:30:13 +0530)
    SYSFW ABI:3.1 (固件版本0x0015 '21.1.1- v2021.01a (了不起的 LLA)
    正在尝试从 MMC1引导
    正在从 MMC 加载环境... ***警告- CRC 错误,使用默认环境

    不支持来自设备17的 init_env!
    正在启动 ARM64内核上的 ATF ...

    注意:BL31:v2.4 (发行版):07.03.00.005—脏污
    注意:BL31:建造:11:11:12,2021年8月19日

    U-Boot SPL 2020.01-00002-g4805fecf28脏污(2021年9月20日- 09:31:08 +0530)
    SYSFW ABI:3.1 (固件版本0x0015 '21.1.1- v2021.01a (了不起的 LLA)
    正在尝试从 MMC1引导


    U-Boot 2020.01-00002-g4805fecf28-脏 污(2021年9月20日- 09:31:08 +0530)

    SoC:J721E SR1.0
    型号:德州仪器(TI) K3 J721E SoC
    DRAM:1 GiB
    闪存:0字节
    MMC:sdhci@4f80000:0,sdhci@4fb0000:1.
    正在从 MMC 加载环境... 好的
    输入:串行@2800000
    输出:串行@2800000
    错误:串行@2800000
    NET:K3 CPSW:Nuss_ver:0x6BA00101 cpsw_ver:0x6BA80100 ALE_ver:0x00293904端口:1 MDIO_freq:1000000
    eth0:以太网@46000000
    按任意键停止自动引导:2 1 0
    切换到分区#0,确定
    mmc0 (部件0)是当前设备
    在设备0上找到 SD/MMC
    599字节读取时间为1毫秒(585 KiB/s)
    已从 uEnv.txt 加载 env
    正在从 mmc0导入环境...
    正在运行 uvencmd ...
    核心1已在使用中。 rproc 命令不起作用
    核心2已在使用中。 rproc 命令不起作用
    1988416字节,以44 ms 为单位读取(43.1 MIB/s)
    使用数据加载远程处理器2@addr=0x800001988416字节:成功!
    11483328字节读取时间为245 ms (44.7 MIB/s)
    ##正在启动应用程序,网址为0x80080000...
    MMU:16位 ASID 44位 PA TCR_EL1=b5183519
    检测到 ARM GIC-500 r1p1,arch v3.0
    向量8192 -> 8447的 GIC_v3_lpI_add_entry,确定
    向量8448 -> 65535的 GIC_v3_lpI_add_entry,确定
    无 SPI 内部信息。 为32 -> 991向量添加默认条目,确定
    LPI 配置表#1 @ 00008000f000,标注地址:ffffff8040251000
    CPU0:MPIDR = 8000000
    CPU0:MIDR=411fd080 Cortex-A72 r1p0
    CPU0:CWG=4 ERG=4 Dminline=4 Iminline=4 PIPT
    CPU0:CLIDR=a200023 LoUU=1 LOC=2 Louis =1
    CPU0:L1 Icache 48K linesz=64 set/way =256/3
    CPU0:L1 Dcache 32K linesz=64 set/way =256/2
    CPU0:L2 Unified 1024K linesz=64 Set/Way=1024/16
    启用其0
    其队列为0000000080020000,插槽数为256
    为 ICID 0发出 MAPC/SYNC/INVALL 命令
    将 CWRITER 更新为0x00000060
    正在等待所有命令的处理... 尝试了1次
    为 CPU0在 GICR_CTLR @ 0000000001900000中启用 LPIS
    正在加载 IFS...decompressing...done
    CPU1:MPIDR=8000000001
    CPU1:MIDR=411fd080 Cortex-A72 r1p0
    CPU1:CWG=4 ERG=4 Dminline=4 Iminline=4 PIPT
    CPU1:CLIDR=a200023 LoUU=1 LOC=2 Louis =1
    CPU1:L1 Icache 48K linesz=64 set/way =256/3
    CPU1:L1 Dcache 32K linesz=64 set/way =256/2
    CPU1:L2 Unified 1024K 线路 z=64 Set/Way=1024/16
    其0已启用
    其队列为0000000080020000,插槽数为256
    为 ICID 1发出 MAPC/SYNC/INVALL 命令
    将 CWRITER 更新为0x000000c0
    正在等待所有命令的处理... 尝试了1次
    为 CPU1在 GICR_CTLR @ 0000000001920000中启用 LPI

    系统页面,网址为 phys:0000000080023000 user:ffff8040275000 kern:ffff8040272000
    在 vffffffff8060096e10上启动下一个程序
    所有 ClockCycles 偏移均在容差范围内
    欢迎使用 Nexus OnCore TI J721E 主板上的 QNX Neutrino 7.1.0!
    正在启动随机服务...
    正在启动 TI 服务...
    启动 TI IPC resmgr
    启动串行驱动程序
    正在启动串行驱动程序(/dev/Ser3)... RS485端口9
    从 RTC 设置操作系统时钟
    omap_i2c_wait_status:PID_13连接超时(260),设备->状态0,状态 reg 1000
    RTC:bq32002_i2c_read()失败
    正在启动 MMC/SD 存储卡驱动程序... eMMC
    path=0 - am65x
    target=0 LUN=0 direct-Access(0)- SDMMC:008GB0版本:0.4
    正在启动闪存驱动程序...
    (设备 T1::f3s_flash_probe:277)无法正确识别任何闪存设备
    GPIO0_9,模块/0 inst/9气缸组/0 mix_val/256
    将0x600018设置为0x200
    GPIO 现在应该很高
    GPIOPID 0x00600000 = 0x44832905
    GPIO PCR 0x00600004 = 0x00000001
    GPIO BINTEN 0x00600008 = 0x00000000
    GPIO _DIR01 0x00600010 = 0xafc3f0ff
    GPIO 输出 DATA01 0x00600014 = 0x00000200
    GPIO 设置 DATA01 0x00600018 = 0x00000200
    GPIO _CLR_DATA01 0x0060001c = 0x00000200
    GPIO 输入_DATA01 0x00600020 = 0x00000041
    GPIO 设置 RIS_TRIG01 0x00600024 = 0x00000000
    GPIO _CLR_RIS_TRIG01 0x00600028 = 0x00000000
    GPIO 设置 FAL_TRIG01 0x0060002c = 0x00000000
    GPIO _CLR_FAL_TRIG01 0x00600030 = 0x00000000
    GPIO _ INTSTAT01 0x00600034 = 0x00000000

    GPIO0_10,模块/0 inst/10 bank /0 mix_val/256
    将0x600018设置为0x600
    GPIO 现在应该很高
    GPIOPID 0x00600000 = 0x44832905
    GPIO PCR 0x00600004 = 0x00000001
    GPIO BINTEN 0x00600008 = 0x00000000
    GPIO _DIR01 0x00600010 = 0xafc3f0ff
    GPIO 输出 DATA01 0x00600014 = 0x00000600
    GPIO 设置 DATA01 0x00600018 = 0x00000600
    GPIO _CLR_DATA01 0x0060001c = 0x00000600
    GPIO 输入_DATA01 0x00600020 = 0x00000041
    GPIO 设置 RIS_TRIG01 0x00600024 = 0x00000000
    GPIO _CLR_RIS_TRIG01 0x00600028 = 0x00000000
    GPIO 设置 FAL_TRIG01 0x0060002c = 0x00000000
    GPIO _CLR_FAL_TRIG01 0x00600030 = 0x00000000
    GPIO _ INTSTAT01 0x00600034 = 0x00000000

    GPIO0_18,模块/0指令/18气缸组/1 mix_val/257
    将0x600018设置为0x40600
    GPIO 现在应该很高
    GPIOPID 0x00600000 = 0x44832905
    GPIO PCR 0x00600004 = 0x00000001
    GPIO BINTEN 0x00600008 = 0x00000000
    GPIO _DIR01 0x00600010 = 0xafc3f0ff
    GPIO 输出 DATA01 0x00600014 = 0x00040600
    GPIO 设置 DATA01 0x00600018 = 0x00040600
    GPIO _CLR_DATA01 0x0060001c = 0x00040600
    GPIO 输入_DATA01 0x00600020 = 0x00000041
    GPIO 设置 RIS_TRIG01 0x00600024 = 0x00000000
    GPIO _CLR_RIS_TRIG01 0x00600028 = 0x00000000
    GPIO 设置 FAL_TRIG01 0x0060002c = 0x00000000
    GPIO _CLR_FAL_TRIG01 0x00600030 = 0x00000000
    GPIO _ INTSTAT01 0x00600034 = 0x00000000

    GPIO0_20,模块/0 inst/20气缸组/1 mix_val/257
    将0x600018设置为0x140600
    GPIO 现在应该很高
    GPIOPID 0x00600000 = 0x44832905
    GPIO PCR 0x00600004 = 0x00000001
    GPIO BINTEN 0x00600008 = 0x00000000
    GPIO _DIR01 0x00600010 = 0xafc3f0ff
    GPIO 输出 DATA01 0x00600014 = 0x00140600
    GPIO 设置 DATA01 0x00600018 = 0x00140600
    GPIO _CLR_DATA01 0x0060001c = 0x00140600
    GPIO 输入_DATA01 0x00600020 = 0x00000041
    GPIO 设置 RIS_TRIG01 0x00600024 = 0x00000000
    GPIO _CLR_RIS_TRIG01 0x00600028 = 0x00000000
    GPIO 设置 FAL_TRIG01 0x0060002c = 0x00000000
    GPIO _CLR_FAL_TRIG01 0x00600030 = 0x00000000
    GPIO _ INTSTAT01 0x00600034 = 0x00000000

    正在启动 PCI 服务器...
    正在设置环境变量...
    安装 eMMC ..
    在2秒内按回车键中止启动

    未按下键
    正常启动
    正在启动固件

    *网络配置开始
    腐烂的魔掌
    正在启动网络驱动程序...
    启动 TCP/IP mc0,地址为192.168.101.52,网络掩码为255.255.255.0
    启动 TCP/IP am0,地址为192.168.102.52,网络掩码为255.255.255.0
    通过 iface 配置 TMR 路由224.0.7.33 (192.168.101.52)
    添加主机224.0.7.33:网关192.168.101.52
    配置通过 iface 的224.0.7.34的 TMR 路由(192.168.102.52)
    添加主机224.0.7.34:网关192.168.102.52
    为224.0.7.1到 iface (192.168.1.8)配置 TMR 路由
    路由:写入路由套接字:无法访问网络
    添加主机224.0.7.1:网关192.168.1.8:无法访问网络
    配置通过 iface (192.168.1.8)的224.0.7.35的 TMR 路由
    路由:写入路由套接字:无法访问网络
    添加主机224.0.7.35:网关192.168.1.8:无法访问网络
    为232.0.1.1至 iface (192.168.1.8)配置 TMR 路由
    路由:写入路由套接字:无法访问网络
    添加主机232.0.1.1:网关192.168.1.8:无法访问网络
    为224.0.7.2至 iface (192.168.2.8)配置 TMR 路由
    路由:写入路由套接字:无法访问网络
    添加主机224.0.7.2:网关192.168.2.8:无法访问网络
    为224.0.7.36到 iface (192.168.2.8)配置 TMR 路由
    路由:写入路由套接字:无法访问网络
    添加主机224.0.7.36:网关192.168.2.8:无法访问网络
    为224.0.7.3至 iface (192.168.3.8)配置 TMR 路由
    路由:写入路由套接字:无法访问网络
    添加主机224.0.7.3:网关192.168.3/8:无法访问网络
    配置通过 iface (192.168.3.8)的224.0.7.37的 TMR 路由
    路由:写入路由套接字:无法访问网络
    添加主机224.0.7.37:网关192.168.3/8:无法访问网络
    *网络配置完成
    SDP:掩码从0更改为33
    UDH0 IP=0xC0A86534
    SDP -侦听 SDI 服务器端口就绪。
    1月1日00:00:10 ntpd[364570]:ntpd 4.2.8p15@1.3728 - o Mon Auging 17 17 17:31:24 UTC 2020 (1):启动
    1月1日00:00:10 ntpd[364570]:命令行:ntpd -af/log/ntp.l敲-c /usr/app/active/ntp.conf -gn -p17
    1月1日00:00:10 ntpd [364570]:-------------
    1月1日00:00:10 ntpd[364570]:NTP-4由 Network Time Foundation 维护,
    1月1日00:00:10 ntpd [364570]:Inc.(NTF),非盈利501 (c)(3)公共利益
    1月1日00:00:10 ntpd [364570]:Corporation。 NTP-4的支持和培训是
    1月1日00:00:10 ntpd[364570]:可在 https://www.nwtime.org/support 上找到
    1月1日00:00:10 ntpd [364570]:-------------
    已阅读 MarkVIe Nexus 节点表...
    1月1日00:00:10 ntpd [364570]:proto:精度= 1000.000 usec (-10)
    1月1日00:00:10 ntpd[364570]:proto:Fuzz 低于0.088 usec
    1月1日00:00:11 ntpd[364570]:基底酸盐设置为202020-08-05
    1月1日00:00:11 ntpd [364570]:GPS 基座设置为202020-08-09 (第2118周)
    1月1日00:00:11 ntpd[364570]:侦听并丢弃0 v6通配符[::]:123
    1月1日00:00:11 ntpd[364570]:收听并挂断1个 v4wildcard 0.0.0.0:123
    1月1日00:00:11 ntpd[364570]:在2 lo0 127.0.0.1:123上正常收听
    1月1日00:00:11 ntpd[364570]:在3个 lo0 [:1]:123上正常收听
    1月1日00:00:11 ntpd[364570]:在4 lo0 [fe80:1%1]:123上正常收听
    1月1日00:00:11 ntpd[364570]:在5 am0上正常收听[fe80:e615:f6ff:fe53:2112%17]:123
    1月1日00:00:11 ntpd[364570]:在6 am0 192.168.102.52:123上正常收听
    1月1日00:00:11 ntpd[364570]:以7 mc0 [fe80:3ec2:e1ff:fe001:7001%18]:123正常收听
    1月1日00:00:11 ntpd[364570]:在8 mc0 192.168.101.52:123上正常收听
    1月1日00:00:11 ntpd[364570]:侦听 FD 25上的路由套接字以获取接口更新
    欢迎使用 OptimumC Control 软件1.0
    VDPU:掩码从0更改为33
    控制器中有5个网络接口!
    =================================================================
    DevNameofEn[0]=mc0 DevNameofEn[1]= MC1
    DevNameofEn[2]=WM6 DevNameofEn[3]=WM6
    DevNameofEn[4]=am0
    =================================================================
    调用 GetModuleFileName 失败!
    mc0掩码:0xFFFFFF00
    am0掩码:0xFFFFFF00
    EGD 收到 initresolver 385051,1
    EGD CONNECT 到 APP(385051)输入数据通道(1)返回1073741838
    J7oncor# InitWatchDog InitWatchDog InitWatchDog
    ========================= TimerInterruptThread_New=========================
    I=0 MyTraceNet[I].SysSock=9
    I=4 MyTraceNet[I].SysSock=9
    袜子=9
    UDH EGD 生产配置
    --UDH EGD 生产配置--,数字=0

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

    感谢您提供日志,

    如果您在 Uboot 提示符下停止引导流,您是否能够使用 CCS 连接到 MCU2_0?

    关于“可能影响 MCU2_0的任何内容”,一种可能的考虑是 MCU2_0预期运行的内存与 A72 HLOS 和应用程序使用的内存之间存在内存冲突。

    要检查的一些事项:

    1) MCU2_0图像需要为其保留什么内存。  这可以在 R5映像(.lds)的链接器文件中看到 ,或者如果正在使用 Vision 应用程序,可以在${PSDK_RTOS_PATH}/VISION _APPS/APPS/ BASIC _DEMS/APP_TIrtos/tirtos_QNX/SYSTEM_MEMORY_MAP.html 中看到。

    2)什么是可用内存范围的 QNX 视图?  使用“pidin syspage=asinfo”和/或查看生成文件,(请参阅  9.3.如何处理远程核心内存映射更新—处理器 SDK QNX J721E (TI.com))

    3)为 PCI 服务器保留了哪些内存。  为 PCIe 保留的此物理地址范围不得与 MCU2_0冲突。

    此致,

    KB