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.

[参考译文] LP-AM243:EtherCAT PRU 固件根据需要占用两倍二进制大小

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1628128/lp-am243-ethercat-pru-firmware-occupies-twice-the-binary-size-as-necessary

器件型号: LP-AM243

您好、专家、

我正在使用 AM243x 工业通信 SDK 中的 EtherCAT 协议栈。

使用以下 API 函数加载 PRU 固件:

 
#include <industrial_comms/ethercat_slave/icss_fwhal/firmware/g_v1.3/ecat_frame_handler_bin.h>
#include <industrial_comms/ethercat_slave/icss_fwhal/firmware/g_v1.3/ecat_host_interface_bin.h>

EC_API_SLV_stackInsertPruFirmware((uint32_t*) ECAT_FrameProcAPP,
                                                     sizeof(ECAT_FrameProcAPP),
                                                     (uint32_t*) ECAT_HostProcAPP,
                                                     sizeof(ECAT_HostProcAPP));

每个固件占用~10KB 的存储器。

但是、使用“Memory Allocation“视图时、似乎有两组 EtherCAT PRU 固件编译到二进制文件中:

输入文件:PRU_EtherCAST.c.obj
-.rodata.Ecat_HostProc             (大小:10180 字节)
-.rodata.Ecat_FrameProc           (大小: 9160 字节)
输入文件: cpp.obj
-.rodata._ZL16ECAT_HostProcAPP    (大小:10480 字节)
-.rodata._ZL17ECAT_FrameProcAPP  (大小: 9160 字节)

是否加载了一些初始加载的“默认“固件?
是否确实需要这两组? 如果没有、则存在~20kB 的不必要占用...

希望我的解释足够清晰、您可以提供一些见解!
 
非常感谢、此致、
Stefan