请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: 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
Stefan