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:AM2634在使用 Uniflash 时出现异常行为

Guru**** 2563160 points
Other Parts Discussed in Thread: AM2634, UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1282220/am2634-strange-behavior-of-am2634-when-using-uniflash

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

我正在使用 AM2634开发四核应用

第一个内核(0-1)应用是电机控制。
第二个内核(0-2)是 USERD、用于监视。
第三个内核(1-1)用于运动轨迹。
第四个内核(1-2)用于通信。

现在、我们仅使用第一个和第二个内核进行测试。 但我们发现了 AM2634的奇怪行为。
在初始开发过程中没有出现问题。 然而、随着代码数量的逐渐增加、异常操作频繁发生。
如果我使用"JTAG"加载和运行程序、它会正常运行。 但是、在使用 UART Uniflash 运行应用程序时、AM2634表现异常。

第一个问题是内核不工作。 有时第一个内核不工作、有时第二个内核不工作。 此时、当我更改任何代码时、内核会再次运行。 代码更改包括删除或添加任何行、甚至将变量的值从100更改为200。 目前尚不清楚哪些内核无法正常工作。

第二个问题是外设有时无法正常工作。 例如、SPI 通信不起作用或不发生 PWM ISR。 在这种情况下、如果像第一种情况那样更改代码、可能有效。

在上述所有情况中、当使用"JTAG"时、它在不改变代码的情况下正常运行。

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

    尊敬的 

    是否有应用程序的映射文件? 你能检查是否所有的部分都是 palign (8)吗? RPRC 图像对图像应具有每个扇区 palign (8)进行了限制。 检查 MCU+ SDK 链接器是否相同。

    如果需要、则可以选择对相同的项目使用 JTAG Uniflash。 以下是同一器件的常见问题解答- https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1227707/faq-mcu-plus-sdk-am263x-faq-how-to-flash-the-application-via-jtag-or-sbl-jtag-uniflash

    您还可以在相同的步骤中验证应用程序是否刷写正确。

    如果您有任何更新,请告诉我!

    此致、
    Aakash

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

    尊敬的 Aakash Kedia:

    感谢您的回答。

    项目的 linker.cmd 与所有段一同设置为 palign (8)。

    我将上传文件。 我希望这将是一个参考。

    我还需要检查什么吗?

    files : 映射和链接器文件

    此致、

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

     

    您是否尝试通过 JTAG 进行刷写?

    此致、
    Aakash

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

    尊敬的 Aakash Kedia:

    我使用了 JTAG (XDS2xx USB 调试)进行闪存。 和...

    我还使用了 UART。

    在两种情况下、结果是相同的。

    此致、

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

    车载锡

    当使用 JTAG 时,您的内核复位释放顺序是什么?

    在 SBL-QSPI 示例中、内核按以下顺序发布- R51-0、R51-1、R50-1和 R50-0。 此序列是否可以通过 JTAG 工作?

    此致、
    Aakash

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

    尊敬的 Aakash Kedia:

    我正在使用在 R5 0-0和 R5 0-1中运行的测试版本项目。

    使用 JTAG 时、我通常以 R5 0-1->R5 0-0的顺序发布。
    我在测试版本项目中使用 IPC Notify。
    它并不认为内核的释放顺序很重要、这是因为它会等待所有内核运行。

    这是否正确?

    使用的 API 为 ipcnotify_syncall ();它在外设设置完成后使用。
    这在 R5 0-0和 R5 0-1中是相同的。

        Drivers_open();
        Board_driversOpen();
    
        /* Wait for all cores to start */
        IpcNotify_syncAll(SystemP_WAIT_FOREVER);

    此致、

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

     

    这听起来是对的。  我 无法推断出任何问题。

    您是否能够在解压后获取 负载 CPU 命令的执行? 转储看起来相似吗?

    此致、
    Aakash

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

    感谢您的回答!

    您能告诉我如何执行 RAM 转储吗?

    在 CCS 中使用 JTAG 进行调试时、我可以通过"存储浏览器"或"保存存储器"对其进行检查。
    但是、如何在 QSPI 引导访问存储器后通过 SBL-QSPI 在闪存中加载 Appimage?
    您能详细告诉我吗?

    要确认问题、请发送".out"和".appimage"文件。
    是否可以通过这些推断问题?
    请检查您的个人消息。

    此致、
    车载锡

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

     

    本质上、如果您在通过 JTAG 加载*。out 文件并在 SBL 中使用后 load_CPU 函数后在整个2MB 的 RAM 空间中打开"存储浏览器"和"保存存储器"、则 RAM 应该 完全相同。

    如果情况不是这样,我们正在努力加以解决?

    此致、
    Aakash

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

    尊敬的 Aakash Kedia:

    我是姜东 求和车在锡的同事。

    你告诉我们的是什么?

    在使用 JTAG 载入*。out 文件后、内核0_0和 Core0_1的内容被保存、并且

    在 SBL 中布置 LOAD_CPU 函数时、内核0_0和内核0_1的内容也被保存。

    内核0_0的内容会从7004_0000剪切为大小"0xe150"(根据多核文件格式找到)

    内核0_1的内容从700C_0000减少到大小"0x9BC8"

    接下来、我比较了它们、它们完全相同。


    这些是通过"保存存储器"获取的数据。

    e2e.ti.com/.../core_5F00_contect.zip

    我还有什么要做的吗?

    此致、
    辛耶普·戈

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

    尊敬的 Sinyeop:

    内核0_0的内容会从7004_0000剪切为大小"0xe150"(根据多核文件格式找到)

    内核0_1的内容从700C_0000减少到大小"0x9BC8"

    [/报价]

    您能详细说明一下吗? 它应该是完全相同的图像。 不是吗?

    此致、
    Aakash

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

    https://dev.ti.com/tirex/explore/node?node=A__AD2nw6Uu4txAz2eqZdShBg__com.ti.MCU_PLUS_SDK_AM263X__aBmeCqF__LATEST

    创建的多核映像(.appimage)根据多核文件格式进行拆分。

    当时、我们在每个 RPRC 文件的第2部分(Core0_0、Core0_1 rprcimage)中找到了正在查找的启动映像。

    使用 SBL 或 JTAG 在 RAM 中引导多核时、映像完全相同。

    上传到 SBL 的引导映像在链接器设置的7004_0000偏移量中找到、映像大小在映像标头中找到(大小:0xe150)。

    同样、Core0_1的图像位于链接器的700C_0000偏移集中、大小为0x9bc8。

    谢谢!

    此致、

    SYGO

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

    您好、SYGO:

    当使用 SBL 或 JTAG 在 RAM 中引导多核时,映像完全相同。

    如果图像完全相同,那么当您尝试通过 JTAG 与 SBL 运行它时会发生什么变化? 我仍然没有足够的信息来判断什么是失败的,为什么是同样的失败?

    此致、
    Aakash

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

    尊敬的 Askash Kedia:

    当前存在多个未确认的问题、其中一个是 P2引脚的 PWM 同步输出未输出。
    然而、当通过 JTAG 运行时、信号被正常输出。
    能否检查一下我们是否将 appimage 和 out 文件发送出去?

    此致、

    SYGO

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

    你好、Sygo

    如果您询问主题 Thread 中的多个问题、那么很难进行跟踪、这是您目前为止看到的。
    如果您可以通过附加结果/日志作为每个测试用例的复制途径来创建新的 TT、那会很好。

    您好, Aakash

    他们表示、即使 CCS 调试模式按预期工作、问题也是在 QSPI 引导模式下与他们的环境重现的。  

    您能否检查 QSPI 引导加载程序是否产生了与客户提出的不同行为。

    非常感谢。

    此致、  

    插孔

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

    尊敬的 Sygo 和 Jack:

    您能否检查 QSPI 引导加载程序的行为是否不同于客户提出的行为。

    一般情况。 它不应该。

    Sygo 您能分享这些事情吗-

    1.每个内核的输出文件
    2.创建最终应用程序图像

    我已经有了映射文件/链接器文件、到目前为止我没有看到任何相同的问题。

    此致、
    Aakash

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

    尊敬的 Aakash Kedia:

    我们将向您发送 zip 文件。
    DRIVE_0_0.out 是内核0_0的电机控制输出文件、debug_0_1.out 是内核0_1的监控输出文件。

    此致、

    SYGO

    e2e.ti.com/.../outnappimage.zip

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

    您好、SYGO:

    让我来看看图片、然后在一天内与您联系。 同时、我认为在 QSPI 与 JTAG 启动之间外设未开启的怪异行为可能是计时问题。 对于 QSPI、内核按以下顺序引导:

    R5FSS1_1 -> R5FSS1_0 -> R5FSS0_1->R5FSS0_0。

    其中、与 JTAG 一样、它将是您手动加载.out 的顺序。 另一个可能的方法是使用 GEL 文件来启用外设。 当您使用 JTAG 时、是否正在运行任何 GEL 文件?

    此致、
    阿南德·马哈德万·SS

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

    大家好,Anand Mahadevan SS

    我们还按此顺序加载 JTAG。

    R5FSS0_1->R5FSS0_0。

    当我们使用 JTAG 时、我们使用的 GEL 文件是这些。

    此致、

    SYGO

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

    尊敬的 Sygo:

    我需要查看是否有任何外设/PLL 功率输入在应用中未进行处理、但由于 GEL 输入而在 JTAG 模式下进行。 您能试一下以下两点吗:

    1.如果可能、请发送我的项目本身、或者为所有核心映像生成的 ti_power_clock_init.c 文件
    2.尝试使用 SBL 为空的引导。 在这种情况下、您仍需要手动加载映像、但 SoC 初始化将由 SBL 完成。

    此致、
    阿南德·马哈德万·SS

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

    尊敬的  Anand Mahadevan SS:

    是否有接收包含个人消息的项目的途径?

    我们不希望该项目对该线程开放。

    您可以查看这种情况吗?

    在将 Debug Mode 用作 JTAG 时、您可以检查它是否
     -GPIO K3闪烁
     -GPIO V17闪烁

     

    使用 QSPI 引导时、您可以按如下方式检查工作情况。
     -GPIO K3闪烁
     -GPIO V17故障
    QSPI BOOTIMAGE 使用 SDK 预编译

    e2e.ti.com/.../am2634_5F00_out_5F00_files_5F00_231201.zip

    这是一个实验文件。

    此致、

    SYGO

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

    尊敬的 Sygo:

    感谢您提供该文件。 让我检查一下、明天再回来。

    此致、
    阿南德·马哈德万·SS

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

    尊敬的 Sygo:

    对延迟回复深表歉意。 在尝试启动您发送的 appimage 时我无法看到任何问题。 我是通过 SBL QSPI 实现的。 您是否像我建议的那样尝试了 SBL null 方法?

    此致、
    阿南德·马哈德万·SS  

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

    尊敬的  Anand Mahadevan SS:

    非常感谢您检查这个问题。

    我们已经 初始化了开发环境并在过去几天里重建了项目。

    原因是我们只是在测试时才会出现奇怪的行为。

    在开发的过程中、 我觉得版本和工具源代码之类的开发环境设置不是很好。

    结果,有一个奇怪的行为变化。

    我们提到的 QSPI 引导期间发生的奇怪行为未得到确认。

    似乎必须继续重复性测试。

    因此、我们将在初始化的开发环境中进行测试和开发并进行监控。

    如果再次发生奇怪的行为、将再次进行检查。 如有必要、我会再次注册为新问题。

    再次感谢您 TI 的积极支持。

    此致、

    车载锡

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

    车载锡

    感谢您的答复、我认为我们可以关闭该问题。 正如您所提到的、如果行为再次发生、您可以打开新的线程。

    此致、
    阿南德·马哈德万·SS