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.

[参考译文] AM2434:如何在 XIP 中放置 EtherCAT 固件常量阵列

Guru**** 2414260 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1309175/am2434-how-to-place-ethercat-firmware-const-array-in-xip

器件型号:AM2434

在 PRU EtherCAT 开发中、我们采用 SDK 示例程序"ethercat_slave_Beckhoff_ssc_demo"的方法。

我们将 EtherCAT 固件代码从 R5FSS 加载到 PRU-ICSSG。

(EtherCAT 固件路径:${MCU_PLUS_SDK_PATH}/source/industrial_comms/ethercat_slave/icss_fwhal/firmware/g_v1.3)

但是、使用这种方法时、ecat_frame_handler_bin.h 和 ecat_host_interface_bin.h 似乎占用了 MSRAM。

由于内存空间方面的考虑、我们希望将常量数组放置在 XIP 中。

例如:

由于 EtherCAT 固件代码已打包为.ILB、因此尝试执行此操作失败。

有没有方法可以将常量数组放置在 XIP 中?

此致

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

    您好!

    因此、固件不会从库中的 ethercat_slave_Beckhoff_ssc_demo 加载、而是从 C:\ti\ind_comms_sdk_am243x_09_00_00_03\source\industrial_comms\ethercat_slave\icss_fwhal\tiescbsp.c 加载

    volatile uint32_t *pru_frame_proc = (uint32_t *)FrameProc;
    volatile uint32_t *pru_host_proc = (uint32_t *)HostProc;
    volatile uint32_t pru_frame_proc_len = sizeof(FrameProc);
    volatile uint32_t pru_host_proc_len = sizeof(HostProc);

    bsp_init()
    {
    /* PRU firmwares are loaded as header files in application */
    PRUICSS_writeMemory(pruIcssHandle, PRUICSS_IRAM_PRU(0) , 0,
    (uint32_t *) pru_frame_proc,
    pru_frame_proc_len);
    
    PRUICSS_writeMemory(pruIcssHandle, PRUICSS_IRAM_PRU(1) , 0,
    (uint32_t *) pru_host_proc,
    pru_host_proc_len);
    }

    相反、您也可以从闪存读取和写入相应的 PRUICSS_IRAM_PRU (x)

    此致、

    亚伦

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

    大家好、Aaron

    然而,您也可以从闪存读取并写入相应的 PRUICSS_IRAM_PRU (x)

    如何从闪存读取并写入相应的 PRUICSS_IRAM_PRU (x)?
    此致

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

    尊敬的 Chen:

    很抱歉响应延迟。 我们将对此进行深入探讨、并在下周中旬之前与您联系。

    此致、

    亚伦

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

    大家好、Aaron

    有任何相关信息吗?

    此致

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

    我将在周一之前回复您

    此致、

    亚伦

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

    尊敬的 Chen:

    有关 API、请参阅此特定页面: https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/09_01_00_41/exports/docs/api_guide_am243x/group__BOARD__FLASH__MODULE.html#ga688fd20ef668ce16b8fd86fbb85a69c1

    使用上述 API 从提供的偏移量读取固件后、应执行 PRU 存储器写入 相应固件的 PRUICSS_IRAM_PRU。

    此致、

    亚伦