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.

[参考译文] AM2634:UNIFLASH 存储器读取全部为零

Guru**** 2551570 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1340655/am2634-uniflash-memory-read-is-all-zeros

器件型号:AM2634
主题中讨论的其他器件:UNIFLASH

您好!

我制作了一个多核 appimage 文件。

使用 SBL 将应用程序映像刷写到外部闪存报告成功:

实际上、在 QSPI 引导模式下、内核0在上电复位后似乎运行(闪烁 LED)。 不过、其他内核不会运行、因此、首先要检查的是加载了程序代码的 RAM 的内容。

由于我知道 Core 0正在运行、因此我想验证 UniFlash 是否从存储器中读取了合理的内容。 正如您在 MAP 文件中看到的、大部分"内核0"代码从0x7010 0000加载:

因此我单击 UniFlash 中的存储器 、然后请求从 0x7010 0000读取存储器。 但是、所有存储器仅为0x0。

由于内核0正在运行、因此 在 SBL 运行并从外部闪存加载程序后、此存储器不能为零。

请注意、UniFlash 确实会从0x0读取正确的矢量表、因此原则上 UniFlash 能够读取存储器。

为什么 UniFlash 从 Core 0程序.text 运行地址读取所有零?

谢谢你。

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

    我刚刚发现了原因。 当我单击"Read Target Device"时、我注意到发生了一组 GEL 文件执行。 这基本上会重置处理器并从 RAM 擦除程序:

    如果我编辑 C:\ti\uniflash_8.5.0\desktopdb\content\TICloudAgent\win\ccs_base\emulation\gel\AM263x\AM263x.gel、这样:

    #define Enable_OnTarget_Connect 0

    执行相同的"Read Target Device"会得到预期的结果:

    在我看来、内存特性应该是非侵入性的。 使用内存功能时、请防止执行任何重置操作(或提供防止操作的选项)。 它只需要连接和读取存储器。  换句话说、相当于如上所示编辑 GEL 文件。

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

    尊敬的 Kier:

    我们将注意到这一点、并感谢您与我分享这一点。

    此致、
    Aakash