尊敬的 TI:
我正在使用 AM572x 评估模块、虽然它通常工作、但我观察到内核存在3个与通信相关的问题。
一般背景:
我正在使用板中的 SD 磁盘、以便它自己"启动"。
然后、我将使用目标配置并启动目标配置
我正在使用频谱数字 XDS2xx USB 调试探针
连接后、我将连接到 CORTEXA15_0内核、然后连接 DSP C66x (DSP1)
问题1:
当我启动配置时、我会得到:
Cortex_M4_IPU1_C0:GEL 输出:->>>AM572x Cortex M4启动序列正在进行中... <<<--
Cortex_M4_IPU1_C0:GEL 输出:-->>AM572x Cortex M4启动序列完成! <<<--
Cortex_M4_IPU1_C1:GEL 输出:->>>AM572x Cortex M4启动序列正在进行中... <<<--
Cortex_M4_IPU1_C1:GEL 输出:->>>AM572x Cortex M4启动序列完成! <<<--
Cortex_M4_IPU2_C0:GEL 输出:->>>AM572x Cortex M4启动序列正在进行中... <<<--
Cortex_M4_IPU2_C0:GEL 输出:-->>AM572x Cortex M4启动序列完成! <<<--
Cortex_M4_IPU2_C1:GEL 输出:->>>AM572x Cortex M4启动序列正在进行中... <<<--
Cortex_M4_IPU2_C1:GEL 输出:-->>AM572x Cortex M4启动序列完成! <<<--
C66xx_DSP1:GEL 输出:->>>AM572x C66x DSP 启动序列正在进行中... <<<--
C66xx_DSP1:GEL 输出:->>>AM572x C66x DSP 启动序列完成! <<<--
C66xx_DSP2:GEL 输出:->>>AM572x C66x DSP 启动序列正在进行中... <<<--
C66xx_DSP2:GEL 输出:-->>AM572x C66x DSP 启动序列完成! <<<--
CortexA15_0:GEL 输出:-->>AM572x Cortex A15启动序列正在进行中... <<<--
CortexA15_0:GEL 输出:-->>AM572x Cortex A15启动序列完成! <<<--
CortexA15_1:GEL 输出:->>AM572x Cortex A15启动序列正在进行中... <<<--
CortexA15_1:GEL 输出:->>AM572x Cortex A15启动序列完成! <<<--
当我连接到 A15_0内核时、我得到:
IcePick_D:GEL 输出:IPU RTOS 从等待复位中释放。
IcePick_D:GEL 输出:IPU SIMCOP 从等待复位中释放。
IcePick_D:GEL 输出:IVAHD C66从等待复位中释放。
IcePick_D:GEL 输出:IVAHD ICONT1从等待复位中释放。
IcePick_D:GEL 输出:IVAHD ICONT2被从等待复位中释放。
CS_DAP_DebugSS:GEL 输出:->>将调试 DPLL 设置配置为1.9 GHZ <<---
CS_DAP_DebugSS:GEL 输出:DEBUGSS DPLL 已锁定、未执行任何操作
CS_DAP_DebugSS:GEL 输出:->>打开调试检测所需的 L3_INSTR 和 L3_3时钟<<< ----
CS_DAP_DebugSS:GEL 输出:-<<启用 L3仪表时钟>>>--
CS_DAP_DebugSS:GEL 输出:->>>映射计时器支持源到默认内核<<<< ----
CS_DAP_PC:GEL 输出:Cortex-A15 1不处于 WIR 模式、因此无需执行任何操作。
CortexA15_0:GEL 输出:-->>AM572x GP EVM <<---
CortexA15_0:GEL 输出:-->>AM572x 目标连接序列开始... <<<--
CortexA15_0:GEL:执行 OnTargetConnect()时出错:目标无法读取0x4A0025F4
AT (*(unsigned int *) 0x4A0025F4)&0xFFF)[AM572x_startup_common.gel:69]
在 AM57xx_EVM_Initialization (0)[gpevm_am572x.gel:54]
在 OnTargetConnect()
因此问题1是最后一个错误... 连接的同时执行 OnTarget 连接。 我使用存储器窗口、它可以读取该地址。
显示您在该位置存储了 CTRL_MODULE_CORE_CTRL_CORE_STD_FUSE_OPP_CORE_2值。
虽然它报告了此错误、但我目前没有发现任何问题... 而不是报告此错误。 但是、我目前根本没有使用 CortexA15内核。 但是、如果这是我其他问题的原因...
ISSUE2: (主要问题)有两个问题。
我在 C66x 器件上加载一个非常简单的测试程序:
#define rows 12.
#define cols 12.
int main (空)
{
int rows = rows;
int cols = cols;
// float A[rows*cols*2]={1、1、1、1、1、 1、1、1};
float A[rows*cols*2]={
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、
1、1、1、1、1、1、1、1、1、1、1、1};
float U[rows*2*rows];
float V[cols*2*cols];
float U1[cols*cols*2];
浮点对角线[cols*2];
float 超级 diag[cols*2];
DSPF_sp_SVD_cmplx (rows、cols、&A[0]、&U[0]、&V[0]、 &U1[0]、对角线[0]、&superdiag[0]);
返回0;
}
当我使用2x2矩阵运行上述内容时、一切正常... 我用24x24矩阵运行它、但由于某种原因、现在它给了我两个错误中的一个(每次运行时会发生变化)
错误1是 DSP 被复位、在这种情况下、它将控制权返回给我
错误2:
C66xx_DSP1:停止目标 CPU 时出现问题:(错误-1060 @ 0x0)器件未响应请求。 重置设备、然后重试此操作。 如果错误仍然存在、请确认配置、对电路板进行下电上电和/或尝试更可靠的 JTAG 设置(例如、较低的 TCLK)。 (仿真包6.0.628.3)
有时、它会给我这个错误、或者与无法与内核通信相关的各种其他错误。
我读过各种类似的问题、并被引导到一个列出了已知问题的网站。 当我遇到错误2时、如果我运行通信测试失败、并且从读取已知问题集中可以看到、窗口有时会与我的 XDS200失去通信、只需更改 USB 端口以重新初始化通信就可以解决问题。 当我看到错误2类型的问题时、我可以通过移动 USB 端口来重新建立通信。 当然、我必须重新启动配置并重新连接、但这会"清除卡纸"。
那么、这里的问题是、什么可能会导致 DSP 在错误1中复位? 它是否与 ARM15_0错误相关? 当我分心时、我注意到在连接到 ARM15_0和错误消息后... 我离开了我的计算机、当我回来时、有一条与 ARM 相关的超时/复位消息... 因此、我想知道、作为主器件的 ARM15_0是否由于某种原因而复位、从而可能导致 DSP 上的错误1? (不知道) 打开以输入 DSP 复位的原因。
由于我确实获得了一个24x24矩阵来运行、我认为这与代码无关、但出于某种原因、在运行24x24矩阵 SVD 所需的时间内、正在进行此复位... 这就是为什么当我只运行较小的2x2时、它工作正常... 12x12目前也不工作(即通信中断或 DSP 在完成之前复位)...
如果有任何见解,将不胜感激。
