工具/软件:Linux
您好!
我想首先报告 ICSS-EMAC-LLD-TEST 应用程序的一些问题、但我仍然对我从 AM335x-PRU-uio.dtsi 克隆的 DTS 有一些疑问。
我正在使用 thud 分支上的 meta-ti 存储库进行 Yocto-sumo 设置。
我尝试在我的定制板上启动 ICSS-EMAC-LLD-测试并运行。 起初、应用程序因分段故障而始终崩溃。 我使用 Valgrind 进行了检查、发现 ICSS-EMAC-LLD 驱动程序本身(src="/ICSS_emacDrv.c))和测试程序中的另一个问题(test/src/test_common_utils.c)。 已使用一些未初始化的存储器单元(随机内容)。 我会提供适合"git am"的补丁、但我不知道如何将这些补丁附加到这个论坛帖子中。 应用这些补丁后、我的自构建 ICSS_emacMainTest_AM335x.out 不再崩溃。
但是、我在理解为定制板创建的 DTS 文件时仍然遇到问题。 我使用 uio-module-drv 从用户空间访问 PRU。 我从 Yocto meta-ti 层的 AM335x-PRU-uio.dtsi 派生了自定义 DTS、如下所示: 
我不理解的文件部分(下面引用)是 AM335x 器件 OCMC RAM 的基址和大小分配:
uio_pruss_MEM2:uio_pruss_MEM2{ compatible ="ti、uio-module-drv"; mem=<0x4a328000 0xd4>、 0x4a330000 0x174>、 0x4a332400 0x90>、 0x40302000 0x0e000>; mem-names ="UART"、"ECAP"、"MDIO"、"ocmc"; 状态="确定"; };
这将为高于实际硬件地址的0x2000字节 OCMC 分配一个基地址、并将大小从实际0x10000削减到0xE000。 我怀疑这是一个错误。 特别是当我查看 ICSS-EMAC 驱动程序包的 firmware/ICSS_dualemac/config/icss_emacFwConfig.h 中的以下行时、该行的大小超出0xe000:
#define ICSS_EMAC_FW_P0_COL_buffer_offset (0xEE00U)/* 1536字节冲突缓冲区、用于端口0发送队列*/
ICSS_emacFwConfig.c 中的 ICSS_emacFwDynamicCfg 结构在 ICSS-EMAC-LLD-TEST 应用程序中未更改。 因此、我认为 OCMC 的内存配置行应提供0x40300000的基址、大小为0x10000。 我已成功使用此配置。
请告知我应该使用哪个版本以及原因。
此致、
Stefan Mätje ö m