Hi,
我们正在使用 S32G274,并在 A53 内核上运行 Linux,在 CM7 内核 0 上运行 FreeRTOS 的应用程序。M7 的代码在启动时使用 U-Boot 加载。这一切都没有任何问题,我们的应用程序使用 IPCF 在 Linux 和 M7 应用程序之间交换数据。
我们从 NXP 看到的所有示例都显示在加载 M7 固件并开始执行之前在 U-Boot 中执行命令“dcache off”,但我们没有看到随后执行“dcache on”的任何示例。
是否支持在此之后(启动 Linux 之前)再次打开数据缓存?我们热衷于减少系统的启动时间,并且使用 dcache 进行测试后,性能得到了显著提升。
谢谢!
李
你好@Lee_Mitchell ,
内部团队提到,一旦 M7 固件加载完成,您就可以使用“dcache on”。
我之前提到的限制仅适用于旧版本的驱动程序。
我实际上找到了安装在我的系统上的IPCF 4.9.0 D2310的用户手册,它包含在S32DS内下载的IPCF包中,位置如下:
C:\NXP\S32DS.3.5\S32DS\软件\PlatformSDK_S32XX_4_0_0\IPCF\doc
在该版本的手册中,您在 V 4.6.0 手册中突出显示的注释不存在。
你好@Lee_Mitchell ,
用户手册仅在 IPCF 4.6.0 中提供你需要下载 .exe文件来自 软件产品 部分的 NXP 跨平台通信框架 (IPCF) 页面。
选择“获取 S32G2 的 IPCF” ,然后转到软件选项卡并选择IPCF 4.6.0版本
检查 IPCF 并单击GENERATE BUNDLE INSTALLER ,运行此安装程序以获取相应的文件,然后执行 .exe安装文件夹中的文件,您将获得用户手册。
在您的特定情况下,在 U-Boot 上运行命令“dcache on”,我们正在与内部团队一起审查它,这个响应时间会更长一些,所以我们感谢您的耐心,当提供相关信息时我会回来。
Hi Carlos,
谢谢您的回复。回答你的问题:
1)我们正在使用由 MicroSys 模块提供的带有 S32G 设备的定制板。
2) 我们使用的是此处的 IPCF 4.9.0: https://github.com/nxp-auto-linux/ipc-shm/tree/release/SW32G_IPCF_4.9.0_D2310
3) 我们正在使用 BSP 36.0(由 MicroSys 提供的软件包)
4)我们正在使用 MicroSys 提供的 U-Boot 版本,我相信它基于 BSP 36.0
关于 IPCF 用户手册,您能否提供最新版本的链接?在 nxp.com 上搜索没有任何结果。
在 M7 方面,我可以在函数 ipc_shm_unmanaged_tx() 中看到以下内容:
/* flush and invalidate dcache */
ipc_hw_flush_cache_local(instance);
ipc_hw_flush_cache_remote(instance);D_CACHE_ENABLE 在编译时定义
因此我相信缓存在 tx 之前就已失效,至少在 M7 方面是这样。
实际上,在 M7 应用程序启动后添加 dcache 进行测试似乎运行正常,并且性能明显更好,我们只是担心我们错过了一些可能会在以后给我们带来麻烦的东西!
你好@Lee_Mitchell ,
IPCF 4.6.0的用户手册内容如下:
[第 36 页,IPCF 共享内存驱动程序用户手册,版本 1.17,05/2022]
你能帮我回答接下来的问题吗?
1.您使用的是S32G-VNP-RDB2还是定制板?
2. 您使用的是哪个版本的IPCF ?
3.您使用的是哪个版本的BSP ?
4. 您对U-Boot和ATF使用相同的版本吗?(如果您手动进行编译)
问候。