Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
关于 QNX 7.1 上 S32G274A PFE 的 PTP/IEEE 1588 支持和配置指南的请求 专家您好! 我们计划在我们定制的 S32G274A 板的 PFE 以太网接口上实现 IEEE 1588/PTP 时间同步。 我们目前的软件配置如下: - SoC:NXP S32G274A - 电路板:基于 S32G274A 的客户电路板 操作系统:QNX 7.1 - PFE驱动程序:PFE-DRV_S32G_A53_QNX 1.9.0,io-pkt版本 - PFE固件:PFE-FW_S32G 1.12.0 - 正在测试的 PFE 接口:PFE EMAC0 和 PFE EMAC2 - 由于 PFE EMAC1 的外部 AQR113C PHY 的固件尚未编程,因此当前测试中未包含 PFE EMAC1。 我们检查了 PFE 驱动程序源代码,发现它包含 IEEE 1588 支持,并实现了以下 QNX 驱动程序特定的 PTP 命令: - PTP_GET_TIME - PTP_SET_TIME - PTP_GET_TX_TIMESTAMP - PTP_GET_RX_TIMESTAMP - PTP_SET_COMPENSATION - PTP_GET_COMPENSATION 当前默认版本配置禁用了此功能: PFE_CFG_IEEE1588_SUPPORT=0 PFE_CFG_IEEE1588_I_CLK_HZ=0 PFE_CFG_IEEE1588_EMAC0_O_CLK_HZ=0 PFE_CFG_IEEE1588_EMAC1_O_CLK_HZ=0 PFE_CFG_IEEE1588_EMAC2_O_CLK_HZ=0 我们的启动代码已经通过 SCMI 启用了 PFE_TS 时钟,但我们还没有在 PFE 驱动程序中配置 IEEE 1588 输入和输出时钟频率。 请问您能否就以下问题提供指导? 1.在 QNX 7.1 上使用 PFE-DRV 1.9.0 和 PFE-FW 1.12.0 时,S32G274A 上的 PFE EMAC0/EMAC1/EMAC2 是否正式支持 IEEE 1588 硬件 TX 和 RX 时间戳? 2. S32G274A 的预期 SCMI PFE_TS 时钟频率是多少? 3. 以下构建参数建议取哪些值? PFE_CFG_IEEE1588_I_CLK_HZ PFE_CFG_IEEE1588_EMAC0_O_CLK_HZ PFE_CFG_IEEE1588_EMAC1_O_CLK_HZ PFE_CFG_IEEE1588_EMAC2_O_CLK_HZ 4. 这三个 PFE EMAC 是否共享同一个 PTP 硬件时钟,还是每个 EMAC 都有一个独立的 PTP 系统时间计数器? 5. 此驱动程序支持哪些 PTP 传输模式? - 二层点对点传输协议 (PTP),以太网类型 0x88F7 - UDP/IPv4 - UDP/IPv6 一步式时间戳 - 两步时间戳 端到端延迟机制 - 点对点延迟机制 6.启用 PTP 是否需要任何额外的 PFE 固件配置、固件功能、FCI 配置或启动初始化? 7. NXP 或 QNX 是否有推荐的用户空间 PTP 守护程序或适用于此 PFE 驱动程序的示例应用程序?当前驱动程序通过 netdrvr/ptp.h 公开 PTP 功能。并且是 SIOCGDRVSPEC/SIOCSDRVSPEC,而不是 Linux 风格的 /dev/ptpX PHC 设备。 8. 是否存在与以下方面相关的已知勘误、限制或所需的初始化顺序: - PFE 时间戳时钟初始化; - 通过 HIF 进行 TX/RX 时间戳交付; - 时间戳补偿; - 在多个 PFE EMAC 上同时进行 PTP 操作? 如果可以的话,能否提供 QNX 系统下 S32G274A PFE 芯片上符合 IEEE 1588 标准的参考配置、示例应用或验证程序? 感谢您的支持。 BR, 怀特旺 Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 您好,专家 感谢您提供如此详细的信息。我们已经验证了 PFE0 和 PFE2 上的 PTP 时间和补偿接口在 PFE-DRV 1.9.0 和 PFE-FW 1.12.0 下能够正常工作。 在关闭此 NXP PFE 支持案例之前,能否请您澄清以下三个与 S32G274A 相关的具体问题? 1. 我们目前对启用的 EMAC 使用 PFE_CFG_IEEE1588_I_CLK_HZ = 200 MHz 和 50 MHz 输出时钟。这种配置是否得到官方支持和推荐? 2. 每个 PFE EMAC 是否有独立的 IEEE 1588 定时器,还是可以将一个 EMAC 配置为与另一个 EMAC 共享时间基准? 3.所需的 400 MHz XBAR 时钟配置在哪里?可以使用哪个寄存器或运行时指示来验证它? Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 嗨,韦特旺 感谢您与我们联系。希望以下信息对您有所帮助! 1.IEEE 1588 时间戳功能(AAVB-2500)首次在 BETA_0.9.0 中引入。请注意,原始记录为 [PFE_QNX_DRIVER] 添加 IEEE1588 时间戳支持。(请参阅 PFE-FW_S32G_1.12.0_ReleaseNotes.pdf。)您的软件版本符合兼容性要求。 Joey_z_1-1788772191193.pngJoey_z_1-1788772191193.pngJoey_z_1-1788772191193.png Joey_z_0-1788772167682.pngJoey_z_0-1788772167682.pngJoey_z_0-1788772167682.png 2. PFE_TS 的时钟由 GMAC_TS_CLK 提供,范围为 5-200 MHz。最小值需要根据设定的模式来确定。 Joey_z_2-1788772339124.pngJoey_z_2-1788772339124.pngJoey_z_2-1788772339124.png Joey_z_3-1788772351660.pngJoey_z_3-1788772351660.pngJoey_z_3-1788772351660.png 3. 需要根据 GMAC0_TS_CLK 的值进行设置。请参考以下内容。 Joey_z_4-1788772395380.pngJoey_z_4-1788772395380.pngJoey_z_4-1788772395380.png 4. 是的,您可以参考下图。 Joey_z_5-1788772417926.pngJoey_z_5-1788772417926.pngJoey_z_5-1788772417926.png 5. 从代码和文档信息来看,PTP 在技术上统一标识传输层,支持(UDP/IPv4、UDP/IPv6、第 2 层 PTP),支持两步和 E2E/P2P。 6. 请注意以下事项:为确保时间戳功能可靠运行,XBAR 时钟频率需设置为 400 MHz,具体请参阅 S32G 参考手册。PFE_CFG_IEEE1588_EMACn_O_CLK_HZ 的值必须小于 PFE_CFG_IEEE1588_I_CLK_HZ。在执行加载过程之前,必须确认以下事项:所有相关的时钟、电源/复位以及 PFE 引脚均已按照 S32G 参考手册进行配置,并且固件二进制文件 s32g_pfe_class.fw 已部署到目标板。 7. 我们很抱歉,恩智浦半导体没有为QNX PFE驱动程序提供现成的PTP守护程序或示例应用程序。 8. 请参阅附件中的以下内容: PFE-DRV_S32G_QNX_1.9.0_发行说明.pdf/4已知问题 PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf/5.2局限性 PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf/5用法 我们目前不提供专用的应用示例。建议参考以下文档中的相关信息。(PFE-DRV_S32G_A53_QNX_1.9.0\doc) BR 乔伊 Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 嗨,维特旺 感谢您的回复。 1.根据 S32G RM,建议输入时钟为 100MHz。PFE_CFG_IEEE1588_EMACn_O_CLK_HZ 值必须小于 PFE_CFG_IEEE1588_I_CLK_HZ。 Joey_z_0-1788848856306.pngJoey_z_0-1788848856306.png 2.PFE EMAC 支持两种时间戳模式,内部时间戳模式和外部时间戳模式。详细信息请参阅 PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf 的第 6.4.1 章“配置和启用 IEEE1588 定时器”。 3. XBAR时钟将在 ATF 中进行配置;您可以使用 uboot 中的“clk dump”命令来检查它。 希望这些信息对您有所帮助。 BR 乔伊
View full article
i.MX8M Plus:同时运行 VIP8000 时出现间歇性帧向下偏移和绿色顶带闪烁 1. 系统和环境 参数配置 SoC NXP i.MX 8M Plus 四核处理器 芯片版本 A1 / B0 核心 6.12.20-lts-next-g604d4ef7a1e4 BSP NXP linux-imx / LTS-Next Vivante / Galcore 司机 6.4.11.p3.1049711 Galcore 位置 drivers/mxc/gpu-viv/galcore(内置) 2D引擎 Vivante GC520L (imxvideoconvert_g2d / libg2d.so) 纳米物理大学 VeriSilicon/Vivante VIP8000 NPU性能 2.3 顶级 视频编码器 Hantro VC8000E (v4l2h264enc) 内存 约 5.7 GB LPDDR4 CMA 总计 约960 MB 2. 问题描述 我们观察到,当VIP8000 NPU 推理与使用 GC520L G2D 引擎的硬件缩放/颜色转换同时运行时,会出现间歇性视频损坏问题。 受影响的 H.264 流不会完全变成绿色。相反,个别帧偶尔会出现以下情况: 当前图像似乎向下移动了少量像素/扫描线。 画面顶部出现一条水平的绿色条带。 下一帧立即恢复到正确位置。 结果是画面间歇性向下跳帧/绿色顶部边缘闪烁。 该问题在并发加速器工作负载期间可以重现,但当单独测试 NPU 或 G2D 工作负载时则无法可靠地重现。 3. 主要观察结果 3.1 仅 G2D 工作负载稳定 我们可以同时运行最多三个 G2D 视频分支: 主屏幕:1080p 字幕:360p MJPEG:480p 已禁用NPU。 视频长时间保持稳定,未观察到绿帧或帧偏移。 3.2 仅使用 NPU 的工作负载稳定 当 G2D 处理不活跃时,VIP8000 NPU 的重型推理以大约15–30 FPS 的速度持续运行,没有观察到推理错误或视频损坏。 3.3 用 CPU 处理代替 G2D 处理可以消除该问题。 当硬件 G2D 处理被以下方式取代时: videoscale ! videoconvert 即使 NPU 持续满负荷运行,系统仍保持稳定。 不再出现绿带/帧偏移问题。 3.4 并发 NPU + G2D 会触发该问题 当 NPU 处于活动状态且 G2D 同时用于视频/AI 处理时,就会出现数据损坏。 引入额外的 G2D 工作负载时,频率会增加。 这表明该问题与并发加速器活动有关,而不是与单个 NPU 或 G2D 工作负载本身有关。 4. 测试矩阵 我们进行了以下测试以找出故障原因。 测试 NPU AI 处理视频 G2D 结果 1 关 无 主 + 子 + MJPEG(3 个 G2D 分支) 通过——无闪烁 2 关 SHM附件 主字幕 + MJPEG 通过——无闪烁 3 ON 状态 G2D 功能 主要 G2D 故障——观察到间歇性绿带/帧偏移 4 ON 状态 CPU(视频缩放!视频转换) 主要 G2D 通过——主流清洁 5 ON 状态 CPU 主+子 G2D 失败——当引入额外的 G2D 工作负载时出现此问题。 6 ON 状态 CPU 所有视频分支均已转换为 CPU 缩放 通过——所有溪流均保持清洁 注意:我们目前正在准备一个较小的独立组网 \\(SA\\) 复现程序,以确定触发该问题所需的最小并发 G2D 客户端数量。 5. 当前调查 根据以上结果,我们想了解这种行为是否可能与以下某个领域有关。 A. Galcore / 加速器并发 在我们的设备树中,GPU/NPU 组件是同一个 GPU/ML 子系统的一部分: mix_gpu_ml@40000000 { compatible = "fsl,imx8mp-gpu", "fsl,imx8-gpu-ss"; cores = <&gpu_3d &ml_vipsi &gpu_2d>; reg-names = "phys_baseaddr", "contiguous_mem"; memory-region = <&gpu_reserved>; }; 中断也由 galcore 处理: 34: 520 0 0 0 GICv3 35 Level galcore:0 35: 13583 0 0 0 GICv3 45 Level galcore:3d-1 36: 1737916 0 0 0 GICv3 57 Level galcore:2d 我们想了解: galcore 是否在 GC520L、GC7000 和 VIP8000 之间共享同步原语或锁? G2D 和 NPU 命令队列是否完全独立? 当 VIP8000 推理处于活动状态时,多个 G2D 客户端/进程提交工作是否存在任何已知限制? 在并发工作负载下,命令提交、上下文管理、中断处理或资源锁定是否会引入延迟? B. 片上网络/DDR带宽或服务质量 GC520L G2D 和 VIP8000 NPU 都是主动总线主控器,可访问外部 LPDDR4 内存。 我们想确定高负载NPU推理是否可能: 大幅增加NoC/DDR流量。 增加 G2D 的内存访问延迟。 导致 G2D 交易延迟。 找出 G2D 与下游消费者之间的时序/同步问题。 受NoC/DDR QoS优先级的影响。 NXP能否就i.MX8MP上可用于调查此类工作负载的推荐NoC/AXI/DDR性能监控和QoS功能提供指导? C. G2D 缓冲区同步/栅栏/步长问题 这种视觉瑕疵特别有趣,因为整个画面并没有损坏。 受影响的帧大致如下所示: +----------------------------------+ | GREEN HORIZONTAL BAND | +----------------------------------+ | | | | | IMAGE SHIFTED DOWN | | | | | +----------------------------------+ 这让我们不禁怀疑,这个问题是否可能涉及以下方面: G2D目标缓冲区同步。 DMA-BUF 所有权/重复使用。 围栏信号/完工。 临时 G2D 目标偏移/步长状态。 G2D内存写入延迟。 在 G2D 操作完全完成之前,下游 VPU 访问就已经发生。 具体来说,延迟的 G2D 完成或同步事件是否会导致 v4l2h264enc / VC8000E 在所有 G2D 写入完成之前消耗目标 DMA-BUF? NXP G2D/V4L2 流水线中是否存在已记录的同步机制,以保证在 VPU 消耗目标 DMA-BUF 之前 G2D 完成? D. 内存 / CMA 我们在重现问题时监控了内存使用情况: Total RAM : ~5.7 GB CmaTotal : ~960 MB CmaFree : ~677 MB 因此,在故障期间,CMA 并未接近耗尽。 但是,我们想了解是否还有其他与内存相关的因素会影响并发的 NPU/G2D/VPU 工作负载,例如: DMA-BUF 同步。 缓存一致性。 内存功能域映射。 物理缓冲区对齐。 缓冲区重复使用。 IOMMU/MMU映射。 保留内存交互。 6.其他诊断实验 我们目前正在准备一个最小的独立组网 (SA) 复现程序,以消除应用程序层面的复杂性。 计划中的复制器将包含: Thread 1 → VIP8000 NPU inference Thread 2 → GC520L G2D processing Thread 3 → Additional GC520L G2D processing 我们还计划测试以下配置: NPU OFF + G2D NPU ON + G2D NPU ON + 2 × G2D NPU ON + G2D → buffer inspection NPU ON + G2D → VPU encoder 这应该有助于确定损坏是发生在 G2D 输出缓冲区本身,还是仅在缓冲区被 VPU 消耗之后才发生。 7. 向恩智浦提出的问题 我们希望恩智浦能就以下方面提供指导。 1. 已知的硬件/软件限制 是否同时进行以下操作: VIP8000 NPU + GC520L G2D + VC8000E VPU i.MX8M Plus 完全支持,包括多个同时运行的 G2D 客户端? 对于这种组合,是否存在已知的硬件限制、勘误或软件限制? 2. Galcore VIP8000 和 GC520L 同时运行时是否存在已知的 galcore 问题? 具体而言,是否存在以下方面的已知问题: 共享锁 命令队列, 上下文切换, 中断处理 同步, 或者资源管理? 3. DMA缓冲区/同步 在下游 V4L2/VPU 组件消耗目标 DMA-BUF 之前,使用什么机制来保证 G2D 完成? 在并发加速器工作负载下,imxvideoconvert_g2d / libg2d 是否存在已知的围栏或缓冲区所有权问题? 4. 片上网络/服务质量 NXP 推荐使用哪些调试寄存器、调试文件系统节点、性能计数器或工具进行测量? GC520L AXI 流量, VIP8000 AXI 流量, VPU流量, DDR带宽, NoC 争议, 以及服务质量/仲裁行为? 5. 驱动程序版本 我们目前使用的是: Kernel: 6.12.20-lts-next-g604d4ef7a1e4 Galcore: 6.4.11.p3.1049711 这种组合是否是 i.MX8MP 的验证/推荐配置? 是否有更新的 galcore / G2D 驱动程序或补丁集可以解决并发 NPU/G2D 工作负载的问题? 6. 硅勘误表 请问我们A1/B0版本的i.MX8M Plus芯片勘误表中是否存在以下问题? G2D, VIP8000 VPU, AXI/NoC仲裁, DDR, 缓存一致性 或者同时进行加速器操作? 7. 推荐配置 对于需要以下条件的应用程序: VIP8000 NPU inference + multiple G2D scaling/color-conversion pipelines + VC8000E H.264 encoding NXP推荐哪种配置? 是否有具体规定: 驱动程序参数 QoS设置, 内存/缓冲池配置, 同步机制 或 GStreamer 流水线实践 应该遵循什么? 8. 我们可以提供的信息 如有需要,我们可以提供以下服务: 完整的 GStreamer 流水线。 设备树配置。 内核配置。 重现过程中的 dmesg 输出。 /proc/中断。 G2D/NPU 工作负载详情。 v4l2-ctl 信息。 最小 NPU + G2D 复现器。 包含损坏帧的视频样本。 驱动程序版本和内部版本信息。 我们非常感谢您提供任何关于推荐的调试程序或附加跟踪/寄存器的指导,以帮助确定根本原因是否与G2D/NPU 同步、DMA-BUF/fence 处理、NoC/DDR 竞争、galcore 或芯片限制有关。 谢谢! 毗湿奴 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
View full article
PCF85263AT/AJ -- 画面に表示される分数が任意の値を示しています コード移行作業の一環として、BSFフラグが設定されてしまうという問題に直面しています。BSFフラグが設定されていることにより、分レジスタのEMONビットも設定されます。 その結果、画面に表示される「分」の値は任意の値を示しています。さらに、年の値が正しく保存されず、RTCの日付と時刻を設定した後でも、2000年と表示され続けます。 下記の条件でテストを試みましたが、問題は依然として解決していません。 フラグレジスタ(0x43)を0x00に設定し、すぐに読み取ったところ、0x00が表示されました。しかし、3秒後にレジスタを再度読み取ったところ、値は再び0x08(または0x00)に設定されていた。 Re: PCF85263AT/AJ -- Minutes value displayed on the screen is showing an arbitrary value こんにちは、Ris_eekさん 良い一日! BSFフラグが単にクリアできないというだけではない。代わりにRTCは新しいバッテリー切り替えイベントを検出し、再びBSFを設定しています。データシートによると、バッテリー切り替えロジックが電源遷移イベントを検出したときにBSFが設定されます 約3秒後に再アサートされるという事実は、VDDの電源が繰り返しバッテリー切り替え閾値を下回り、繰り返しVDD>VBAT>VDDの切り替えを引き起こしていることを意味します。各遷移はBSFをリセットします。 RafaR_0-1788887610951.pngRafaR_0-1788887610951.png この絶え間ない電圧変動により、RTC(リアルタイムクロック)が常にリセットされるため、常に2000年と表示されるのです。電源信号に問題がないか確認することをお勧めします。 この情報がお役に立てば幸いです。他に何かご不明な点がありましたら、お気軽にお問い合わせください。 良い一日をお過ごしください。幸運を祈ります。
View full article
HSE: MUインストール後の最初の2回のリセット後にエラーコード0x67030001が発生しました 私はFirmware Reference Manual version 2.7の3.2.3.1節に記載されている通り、FULL_MEMモードでMUインターフェース経由でインストールする手順に従っています。 インストールは説明どおりに正常に動作しますが、機能リセット(手順7)を実行すると、HSEエラーコード0x67030001が表示されます。これは2回目のリセット後も続くが、3回目のリセット後には確実に解消される。 いくつか質問があります。 最上位ビットの値(0x6703)は意味を持つのでしょうか? HSEドライバーが起動時にエラー状態に入り、正確に2回リセットすると回復する原因は何でしょうか? そもそも、このエラーが発生した最も可能性の高い原因は何でしょうか? Re: HSE: Error code 0x67030001 after first two resets following MU install こんにちは、 @Emma_G-gbgさん HSE_Bファームウェア リファレンス・マニュアルに記載されているように、GSRレジスタは致命的および警告イベントを16ビットの最下位ビットでログ付けします。 ビット0~7は致命的なエラーを示します。 ビット8~15は警告(致命的ではない障害)を示します。 上位16ビットはNXPの内部エラー用に予約されています。 お使いのデバイスでビット0が設定されている場合、致命的なエラーが発生し、HSEがシャットダウンしたことを示しています。この状態では、シャットダウンモードから復旧して終了するには、デバイスのリセットが必要です。 FSRレジスタとHSE_CONFIG_GPR3(0x4039C028)の値を教えていただけますか?また、リセットを実行した後、GPR3のHSE_STATUS_INIT_OKフラグが設定されるまで待ちましたか? さらに、 スレッドのS32K3でMU経由でHSEファームウェアをインストールする際の回復問題で、MU経由でHSEファームウェアをインストールするデモも共有されました。参考資料として役立つかもしれません。 BR、VaneB Re: HSE: Error code 0x67030001 after first two resets following MU install 最初の2回のリセット後、値は以下のとおりでした。 HSE_CONFIG_GPR3: 0x10000081 DCMRWP1: 0xA5000400 GSR: 0x67030001 FSR: 0x00400000 そして3回目のリセット後の値は次の通りでした。 HSE_CONFIG_GPR3: 0x000000C1 DCMRWP1: 0xA5000400 GSR: 0x00000000 FSR: 0x09600000   Re: HSE: Error code 0x67030001 after first two resets following MU install こんにちは、 @Emma_G-gbgさん リセット1と2:FSR = 0x00400000。ビット24(HSE_STATUS_INIT_OK)が設定されていないということは、HSEの初期化がまだ完了していないことを示しています。GSR値0x67030001は、ビット0(HSE_ERR_GENERAL)が設定されていることを示しており、これによりHSEサブシステムのシャットダウンがトリガーされました。 リセット 3: FSR = 0x09600000。ビット24(HSE_STATUS_INIT_OK)が設定され、HSEの初期化が正常に完了したことを示します。GSR値0x00000000は、HSEエラー/警告が報告されなかったことを示しています。 この挙動の原因としては、アプリケーションがHSE初期化が完全に完了する前にクロック初期化、XRDC設定、またはフラッシュ操作を行っている可能性があります。 Re: HSE: Error code 0x67030001 after first two resets following MU install こんにちは、 @Emma_G-gbgさん XRDCについては、HSE_BファームウェアリファレンスマニュアルRev. 2.7のセクション14.6.3の注を参照してください。 クロックの初期化については、同文書のセクション2.4.2.3.3に記載されています。 Re: HSE: Error code 0x67030001 after first two resets following MU install ありがとうございます。現在、フラッシュ同期について調べています。 クロックやXRDC initがHSEの立ち上げに影響を与えるとは知りませんでしたが、これはどこで説明されていますか?
View full article
没有规则可以设定目标 我尝试在 imx8mp 处理器上构建 Yocto 镜像。文件位于指定位置,我已经验证过,并且在 imx8mp_evk_defconfig 文件中也提到了这一点。 | make[3]: *** 没有规则可以创建目标“arch/arm64/boot/dts/freescale/imx8mp-evk-delta.dtb”。停止。 Re: No rule to make target 请参考以下步骤重新构建Linux内核。 1.请在 sources/meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf 文件中,将“freescale/imx8mp-evk-delta.dtb”添加到变量 KERNEL_DEVICETREE:append:use-nxp-bsp 中。 2. 请获取 Linux 内核源代码。 $ bitbake virtual/kernel -c cleansstate $ bitbake virtual/kernel -c patch 3. 请前往 Linux 内核源代码文件夹 tmp/work/imx8mp_lpddr4_evk-poky-linux/linux-imx/6.6.52+git/git,添加 dts 文件 arch/arm64/boot/dts/freescale/imx8mp-evk-delta.dts 4. 重建 Linux 内核。 $ bitbake virtual/kernel Re: No rule to make target 但它仍然在 bitbake 虚拟/内核之后。 Re: No rule to make target 适用于 Linux 内核: 请在 sources/meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf 文件中的 KERNEL_DEVICETREE:append:use-nxp-bsp 变量中添加“freescale/imx8mp-evk-delta.dtb”。 然后运行“bitbake virtual/kernel”。 对于 u-boot: 请参考以下步骤在 u-boot 中添加和使用新的 dts 文件。 $ bitbake u-boot-imx -c cleansstate $ bitbake u-boot-imx -c patch 进入 u-boot 源代码文件夹 tmp/work/imx8mp_lpddr4_evk-poky-linux/u-boot-imx/2024.04/git,请将 dts 文件 imx8mp-evk-delta.dts 添加到 arch/arm/dts/ 文件夹中。 请按如下方式修改configurations/imx8mp_evk_defconfig。 CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk" 修改为: CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk-delta" 然后重新构建 u-boot: $ bitbake u-boot-imx
View full article
LIN-stack download - where? Where do I have to download the LIN stack for a S32K116 microcontroller? Various posts point to the NXP Flexnet (?) page under 'S32K1 Reference Software - Automotive SW - LIN-Stacks', however the only file I get is "LINSTACK-K1 'List Of Known Defects' weekly report". The S32DS Extensions and updates page doesn't list any LIN software either. What am I missing? Re: LIN-stack download - where? Hi @daniel_meier, Instead of 'S32K1 Reference Software - Automotive SW - LIN-Stacks', can you try 'Automotive SW - S32K1 Reference Software > Automotive SW - S32K1_S32M24X - LIN Stacks'?  You should be able to access it from this link: Automotive SW - S32K1_S32M24X - LIN Stacks. If the issue persists, please try using Automotive Software Package Manager instead. Best regards, Julián
View full article
LIN协议栈下载 - 在哪里? 我应该在哪里下载S32K116微控制器的LIN协议栈? 各种帖子都指向“S32K1 参考软件 - 汽车软件 - LIN 堆栈”下的 NXP Flexnet (?) 页面,但我得到的唯一文件是“LINSTACK-K1‘已知缺陷列表’周报”。 S32DS 扩展和更新页面也没有列出任何 LIN 软件。 我漏掉了什么? Re: LIN-stack download - where? 嗨@daniel_meier , 请尝试使用“汽车软件 - S32K1 参考软件 > 汽车软件 - S32K1_S32M24X - LIN 堆栈”代替“S32K1 参考软件 - 汽车软件 - LIN 堆栈”? 您应该能够通过此链接访问它:汽车软件 - S32K1_S32M24X - LIN 堆栈。 如果问题仍然存在,请尝试改用汽车软件程序包管理器。 此致, 朱利安
View full article
No rule to make target I was trying to build an yocto image on an imx8mp processor.The file was in the spectified locations,i have verified and also mentioned it in the imx8mp_evk_defconfig file as well. | make[3]: *** No rule to make target 'arch/arm64/boot/dts/freescale/imx8mp-evk-delta.dtb'. Stop. Re: No rule to make target Please refer to the following procedure to rebuild Linux Kernel. 1. Please add "freescale/imx8mp-evk-delta.dtb \" in variable KERNEL_DEVICETREE:append:use-nxp-bsp in file sources/meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf 2. Please fetch Linux Kernel source code. $ bitbake virtual/kernel -c cleansstate $ bitbake virtual/kernel -c patch 3. Please go to Linux Kernel source code folder tmp/work/imx8mp_lpddr4_evk-poky-linux/linux-imx/6.6.52+git/git to add dts file arch/arm64/boot/dts/freescale/imx8mp-evk-delta.dts 4. Rebuild Linux Kernel. $ bitbake virtual/kernel Re: No rule to make target still it comes after bitbake virtual/kernel Re: No rule to make target For Linux Kernel: Please add "freescale/imx8mp-evk-delta.dtb \" in variable KERNEL_DEVICETREE:append:use-nxp-bsp in file sources/meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf Then run "bitbake virtual/kernel". For u-boot: Please refer to the following procedure to add and use new dts file in u-boot. $ bitbake u-boot-imx -c cleansstate $ bitbake u-boot-imx -c patch Go to u-boot source code folder tmp/work/imx8mp_lpddr4_evk-poky-linux/u-boot-imx/2024.04/git, please add dts file imx8mp-evk-delta.dts in folder arch/arm/dts/. Please modify configs/imx8mp_evk_defconfig as the following. CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk" Modify to: CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk-delta" Then rebuild u-boot: $ bitbake u-boot-imx
View full article
HSE:MU 安装后前两次重置后出现错误代码 0x67030001 我已按照固件参考手册 2.7 版 3.2.3.1 节中所述的通过 MU 接口在 FULL_MEM 模式下进行安装的安装程序进行操作。 安装过程完全按照说明进行,但是当我执行功能 RESET(步骤 7)时,出现 HSE 错误代码 0x67030001。第二次重置后问题仍然存在,但第三次重置后就会稳定消失。 我有几个问题: 最高位(0x6703)的特定值是否有意义? 什么原因会导致 HSE 驱动程序在启动时进入错误状态,但在两次 RESET 后恢复? 导致该错误的最可能原因是什么? Re: HSE: Error code 0x67030001 after first two resets following MU install 嗨@Emma_G-gbg 如 HSE_B 固件参考手册中所述,GSR 寄存器在其最低 16 位中记录致命事件和警告事件: 第 0-7 位表示致命错误。 第 8-15 位表示警告(非致命故障)。 最高 16 个有效位用于 NXP 内部错误。 由于您的设备上第 0 位已设置,这表明发生了致命错误,导致 HSE 关闭。在此状态下,需要重置设备才能恢复并退出关机模式。 请问能否提供 FSR 寄存器和 HSE_CONFIG_GPR3 (0x4039C028) 的值?另外,在执行重置后,您是否等到 GPR3 中的 HSE_STATUS_INIT_OK 标志被设置? 此外,在“通过 MU 安装 HSE 固件时出现 S32K3 恢复问题”主题中,分享了一个通过 MU 安装 HSE 固件的演示。它或许可以作为有用的参考资料。 BR,VaneB Re: HSE: Error code 0x67030001 after first two resets following MU install 嗨@Emma_G-gbg 重置 1 和 2:FSR = 0x00400000。第 24 位(HSE_STATUS_INIT_OK)未设置,这表明 HSE 尚未完成初始化。GSR 值 0x67030001 表示位 0 (HSE_ERR_GENERAL) 已设置,这触发了 HSE 子系统关闭。 RESET 3:FSR = 0x09600000。位 24 (HSE_STATUS_INIT_OK) 已设置,表明 HSE 已成功完成初始化。GSR 值 0x00000000 表示未报告任何 HSE 错误/警告。 造成这种行为的一个可能原因是应用程序在 HSE 初始化完全完成之前执行时钟初始化、XRDC 配置或 Flash 操作。 Re: HSE: Error code 0x67030001 after first two resets following MU install 前两次重置后的值如下: HSE_CONFIG_GPR3: 0x10000081 DCMRWP1: 0xA5000400 GSR: 0x67030001 FSR: 0x00400000 第三次 RESET 后的值为: HSE_CONFIG_GPR3: 0x000000C1 DCMRWP1: 0xA5000400 GSR: 0x00000000 FSR: 0x09600000   Re: HSE: Error code 0x67030001 after first two resets following MU install 谢谢,我正在研究闪存同步问题。 我之前并不知道时钟或 XRDC 初始化会影响 HSE 启动,请问哪里有相关说明? Re: HSE: Error code 0x67030001 after first two resets following MU install 嗨@Emma_G-gbg 关于 XRDC,请参阅 HSE_B 固件参考手册第 2.7 版第 14.6.3 节中的注释。 有关时钟初始化的相关信息,请参阅同一文档的第 2.4.2.3.3 节。
View full article
For hardware simulation need system verilog or vams or spice model of PCA9698DGG,512(GPIO expander) Need system verilog or vams or spice model of the IO expander part number- PCA9698DGG,512. Please provide urgently as it is required for a critical work. Datasheet link- PCA9698 40-bit Fm+ I2C-bus advanced I/O port with RESET, OE and INT
View full article
PCF85263AT/AJ -- Minutes value displayed on the screen is showing an arbitrary value As part of the code migration task, we are facing an issue where the BSF flag is being set. Due to the BSF flag being set, the EMON bit in the Minutes register is also getting set. As a result, the Minutes value displayed on the screen is showing an arbitrary value. Additionally, the Year value is not being saved correctly and continuously shows 2000 even after setting the RTC date and time. I tried to test the condition mentioned below, but the problem still persists.  I set the flag register (0x43) to 0x00 and read it immediately; it showed 0x00. However, when I read the register again after 3 seconds, the value was set again to 0x08 (or 0x00).   Re: PCF85263AT/AJ -- Minutes value displayed on the screen is showing an arbitrary value Hello Ris_eek Good day! The BSF flag is not simply failing to clear. Instead, the RTC is detecting a new battery switch-over event and setting BSF again. According to the datasheet, BSF is set whenever the battery switch-over logic detects a power transition event The fact that it re-asserts after ~3 seconds means the VDD supply is repeatedly dropping below the battery switch-over threshold causing repeated VDD>VBAT>VDD transitions. Each transition re-sets the BSF. RafaR_0-1788887610951.pngRafaR_0-1788887610951.png This constant voltage fluctuation causes the RTC to constantly reset, which is why it only shows the year 2000. I recommend checking if there's a problem with the power supply signal. I hope this information has helped you, please let me know if you need help with anything else. Have a great day and best of luck.
View full article
Installing RTD for S32K312 I am trying to set up a dev environment for the S32K312, on S32 Design Studio v 3.6.6 as follows: 1. Downloaded SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip 2. Opened 'S32Extensions and Updates' on S32 Design Studio 3.6.6 running on Windows 11 and installed S32K3 real time drivers as shown: durga_choudhury_0-1788877584959.pngdurga_choudhury_0-1788877584959.png  3. Restarted the IDE when prompted (I have tried rebooting the PC also) With this, I cannot see support for the K3 family. The 'New Project' dialog does not show this as an option: durga_choudhury_1-1788877756997.pngdurga_choudhury_1-1788877756997.png If I try to install the 'S32K3XX' drivers, as shown below: durga_choudhury_2-1788877862245.pngdurga_choudhury_2-1788877862245.png I get an error as shown below: durga_choudhury_3-1788877910412.pngdurga_choudhury_3-1788877910412.png Now repeating this whole process on S32DS v 3.6.2 is slightly better: now I have an option for the K312 listed in the 'New Project' dialog, but there are no SDK for it listed: durga_choudhury_4-1788878190320.pngdurga_choudhury_4-1788878190320.png What am I doing wrong? Re: Installing RTD for S32K312 Hi @VaneB  Unfortunately I don't have an equivalent on S32DS 3.6.6, and I have tried downgrading the RTD version to 6.0.0 (from 7.0.1). Is there a specific version that will work on 3.6.6? Re: Installing RTD for S32K312 Hi @durga_choudhury  The screenshot is from my S32DS 3.6.10 installation; however, you should see a similar setup in your IDE. VaneB_0-1788893776567.pngVaneB_0-1788893776567.png Also, based on the screenshot you shared, I can see that you were able to install RTD 7.0.1. Since RTD 7.0.1 depends on the S32K3 Development Package, it is likely that the package has already been installed. Re: Installing RTD for S32K312 Hi @VaneB  Please provide some elaboration on your comment. I see that I have a 'development package' for the S32K1xx' installed (which is also a MCU family I use): durga_choudhury_0-1788891225434.pngdurga_choudhury_0-1788891225434.png But I see nothing similar for the K3. So how do I install it? To re-iterate, what I have done so far is: 1. Downloaded SW32K3_S32M27x_RTD_R23-11_7.0.1_D2603_DesignStudio_updatesite.zip  2. Added it as an update site on S32 DS v 3.6.6 3. Installed the following: durga_choudhury_1-1788891394005.pngdurga_choudhury_1-1788891394005.png Re: Installing RTD for S32K312 Hi @durga_choudhury  From your S32DS 3.6.6 installation, it appears that the S32K3 Development Package is not installed. Regarding S32DS 3.6.2, please note that RTD 7.0.1 was developed and validated using S32DS 3.6.4. Therefore, we recommend using S32DS 3.6.4 or a newer release to ensure compatibility and avoid potential issues. Something additional to verify is the toolchain. When creating your project, make sure that NXP GCC 10.2.0 is installed and selected as the project toolchain. BR, VaneB
View full article
PCF85263AT/AJ——屏幕上显示的分钟数为任意值。 在代码迁移任务中,我们遇到了 BSF 标志被设置的问题。由于 BSF 标志被设置,分钟寄存器中的 EMON 位也被设置。 因此,屏幕上显示的分钟数是一个任意值。此外,年份值无法正确保存,即使在设置了 RTC 日期和时间之后,年份值仍然持续显示 2000。 我尝试测试了下面提到的条件,但问题仍然存在。 我将标志寄存器(0x43)设置为 0x00 并立即读取它;它显示 0x00。然而,3秒后我再次读取寄存器时,其值又被设置为0x08(或0x00)。 Re: PCF85263AT/AJ -- Minutes value displayed on the screen is showing an arbitrary value 你好 Ris_eek 再会! BSF 标志并非只是无法清除。相反,RTC 检测到新的电池切换事件,并再次设置 BSF。根据数据手册,当电池切换逻辑检测到电源转换事件时,BSF 将被设置。 它在大约 3 秒后重新确立的事实意味着 VDD 电源反复降至电池切换阈值以下,导致反复出现 VDD>VBAT>VDD 转换。每次转换都会重置 BSF。 RafaR_0-1788887610951.pngRafaR_0-1788887610951.png 这种持续的电压波动导致 RTC 不断 RESET,这就是为什么它只显示 2000 年的原因。我建议检查一下电源信号是否存在问题。 希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。 祝你今天过得愉快,一切顺利。
View full article
IMXRT1176 アプリケーションがクラッシュ、後でIMXRTが起動しない こんにちは、 カスタムボードIMXRT1176を使っていますが、アプリケーションとセカンダリブートローダーの開発中にアプリケーションがクラッシュし、その後、アプリケーションのフラッシュができません。シリアルダウンローダーモードに入ってからFLEXSPI NORフラッシュを消去してみましたが、それでも表示されます 「Flash ドライバ V.2の起動失敗 - rc Ef(55): 動的フラッシュドライバ起動がフラッシュパラメータを提供できません。終了(0x0、0x0、0x0)ステータス0x40 - ドライバーがinit失敗を報告 - EXTSPIJドライバーrc 20107(0x4E8B)チップ初期化失敗 - Ef(55): 動的フラッシュドライバー起動がフラッシュパラメータを提供できません。フラッシュドライバーの初期化に失敗MIMXRT1170_SFDP_QSPI.cfx##」 NXPのブートユーティリティをUSB経由でMCUに接続して、このログを試しました。 「--------MCUデバイスROM情報-------- ユニークID[31:00] = 0x8295ad77 ユニークID[63:32] = 0x242cc80e 現行バージョン = K3.0.1 対象バージョン = T3.0.0 ライフサイクル状態 = HABオープン --------MCUフラッシュローダー情報------- 現行バージョン = K2.8.0 ターゲットバージョン = T1.0.1 --------MCUデバイスeFusemap-------- (0x940)SYSBT_CFG0=0x0 (0x950)SYSBT_CFG1=0x0 (0x960)SYSBT_CFG2=0x8 BT_FUSE_SEL = 1'b0 BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx ----------FlexRAMメモリ----------- IOMUXC_GPR->GPR16 = -------- --------MCUデバイスROM情報-------- ユニークID[31:00] = 0x8295ad77 ユニークID[63:32] = 0x242cc80e 現行バージョン = K3.0.1 対象バージョン = T3.0.0 ライフサイクル状態 = HABオープン --------MCUフラッシュローダー情報------- 現行バージョン = K2.8.0 ターゲットバージョン = T1.0.1 --------MCUデバイスeFusemap-------- (0x940)SYSBT_CFG0=0x0 (0x950)SYSBT_CFG1=0x0 (0x960)SYSBT_CFG2=0x8 BT_FUSE_SEL = 1'b0 BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx ----------FlexRAMメモリ----------- IOMUXC_GPR->GPR16 = -------- --------MCUデバイスROM情報-------- ユニークID[31:00] = 0x8295ad77 ユニークID[63:32] = 0x242cc80e 現行バージョン = K3.0.1 対象バージョン = T3.0.0 ライフサイクル状態 = HABオープン --------MCUフラッシュローダー情報------- 現行バージョン = K2.8.0 ターゲットバージョン = T1.0.1 --------MCUデバイスeFusemap-------- (0x940)SYSBT_CFG0=0x0 (0x950)SYSBT_CFG1=0x0 (0x960)SYSBT_CFG2=0x8 BT_FUSE_SEL = 1'b0 BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx ----------FlexRAMメモリ----------- IOMUXC_GPR->GPR16 = -------- --------MCUデバイスROM情報-------- ユニークID[31:00] = 0x8295ad77 ユニークID[63:32] = 0x242cc80e 現行バージョン = K3.0.1 対象バージョン = T3.0.0 ライフサイクル状態 = HABオープン --------MCUフラッシュローダー情報------- 現行バージョン = K2.8.0 ターゲットバージョン = T1.0.1 --------MCUデバイスeFusemap-------- (0x940)SYSBT_CFG0=0x0 (0x950)SYSBT_CFG1=0x0 (0x960)SYSBT_CFG2=0x8 BT_FUSE_SEL = 1'b0 BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx ----------FlexRAMメモリ----------- IOMUXC_GPR->GPR16 = --------」 「MCUがフラッシュローダーに入ったが外部メモリの設定に失敗しました。基板をリセットし、適切な起動デバイスを設定して再度お試しください」と表示されます。 私のNORフラッシュメモリはW25Q32JV Quad SPIです。 この件に関して、どうかご協力をお願いいたします。 ありがとうございました。 ナゲンドラ Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot こんにちは、 @Gavin_Jia さん。 ご回答ありがとうございます。 1.RAMからサンプルを実行したところ、IDが0になりました。 2. フラッシュはFlexSPI Aに接続されています FlexSPI1信号RT1176ボール/パッド名 FLEXSPI1_A_SCLK GPIO_SD_B2_07 FLEXSPI1_A_DATA0 GPIO_SD_B2_08 FLEXSPI1_A_DATA1 GPIO_SD_B2_09 FLEXSPI1_A_DATA2 GPIO_SD_B2_10 FLEXSPI1_A_DATA3 GPIO_SD_B2_11 FLEXSPI1_A_SS0_B GPIO_SD_B1_06 このボードは以前、私たちのアプリケーションで動作しており、Flexspiの例を使ってフラッシュを消去・プログラムすることで、アプリケーションのセカンダリーブートローダーを実装しましたが、その間にアプリケーションがフリーズし、それ以降はフラッシュできなくなりました。 Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot こんにちは、 @Nagendra_Kumar さん。 ログを見ると、MCU、ROM、フラッシュローダーはすべて正常(HABオープン、シリアルダウンローダー接続)を示しています。故障はFlexSPI–to–W25Q32JVの初期化で、ツールはSFDPパラメータすら読み取れないので、これは基板や設定の問題で、フラッシングツールの問題ではありません。新しいフラッシュでも失敗する場合は、以下の順序で確認してください。 まず、内部RAMから flexspi_nor_polling_transfer_cm7 サンプルを実行し、W25Q32JVのJEDEC IDを読み取ります。IDが読み取れない場合は、ハードウェアやピンの問題が確認できます。まだフラッシュツールに注目しないでください。 フラッシュがどのFlexSPIインスタンス/ピングループに表示されているかを確認してください。デフォルトの.cfxまた、MCUBootUtilityはFlexSPI1ポートA(EVK配線)を前提としています。もしあなたのものがFlexSPI2またはFlexSPI1のセカンダリ上にある場合は、option0のピングループフィールドを変更し、FLEXSPI_PIN_GROUP_SELヒューズ(アドレス0x9A0[10])を焼却します。MCUBootUtilityでマッチするインスタンスを明示的に選択します。 Secure Provisioning Tool(SPT)を検討してみてください。これはW25Qファミリ向けの組み込みFCBテンプレートと、セットアップを検証するためのブートメモリ構成機能を備えています。 また、このボードは以前にW25Q32JVから正常にプログラムされ、起動されたことがありますか? よろしくお願いします、 ギャビン Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot こんにちは、 言い忘れていましたが、NORフラッシュメモリも新しい部品に交換しました。しかし、エラーは依然として残っている。
View full article
硬件仿真需要PCA9698DGG,512(GPIO扩展器)的SystemVerilog、VAMS或SPICE模型。 需要 I/O 扩展器部件号 PCA9698DGG,512 的系统 Verilog、VAMS 或 Spice 模型。请尽快提供,这是关键工作所需。 数据手册链接- PCA9698 40 位 FM+ I2C 总线高级 I/O 端口,带 RESET、OE 和 INT 功能
View full article
S32K312:SWT0 功能 RESET 升级、破坏性 RESET 状态和 SRAM 保持 您好,NXP团队, 我正在使用 S32 Design Studio 和 AUTOSAR RTD 7.0.1 / AUTOSAR 4.9 开发 S32K312 Cortex-M7。 我目前正在测试 MC_RGM 复位行为,特别是 SWT0 功能复位、功能复位升级、破坏性复位、SRAM 保持、SBAF/恢复行为以及电源 IP 复位 API。 1. SWT0 功能重置升级 我使用 SWT0 超时来生成功能性重置。 我的 MC_RGM 配置如下: MC_RGM_FRET_FRET((uint32)15U), MC_RGM_DRET_DRET((uint32)0U) 我观察到功能 RESET 计数器不断增加: SWT0 功能复位 #1 -> FREC = 1 SWT0 功能复位 #2 -> FREC = 2 ... SWT0 功能复位 #14 -> FREC = 14 下一次 SWT0 重置后,FREC 被清除/重置,但我没有观察到预期的结果: DES[MC_RGM_FRE] = 1 我的问题是: SWT0_RST 是否参与 S32K312 上的 MC_RGM 功能复位升级计数器 (FREC)? 当 FREC 达到 FRET = 15 时,是否应该生成 MC_RGM_FRE 并设置 DES[MC_RGM_FRE]? 升级后,FES、DES、FREC、FRET、Power_Ip_GetResetReason() 的确切值应该是什么? SWT0参与FRET升级是否需要任何额外的配置? SBAF/恢复处理是否会干扰FRET增强? 是否存在与 SWT0/FRET 升级相关的已知勘误或已知的 S32K312 行为? 当我连续运行该应用程序时,在第 15 次功能性 RESET 后,应用程序/调试器停止运行,而不是让我观察到预期的破坏性 RESET。我想知道这是否与复位序列、SBAF 恢复或调试器有关。 2.我希望每次 SWT0 功能重置都具有破坏性。 为了测试目的,我还想实现以下目标: SWT0 超时 ↓ 功能复位 ↓ 立即进行破坏性重置 而不是等待 15 次功能性 RESET。 能否通过配置来实现: 共振频率 = 1U; 具体来说: FRET = 1 是否会导致第一次符合条件的 SWT0 功能 RESET 升级为破坏性 RESET? 是否需要进行任何额外的 MC_RGM 配置? SWT0 是否一定符合此次升级的资格要求? SBAF/恢复行为会影响这一点吗? RTD 7.0.1 配置是否直接支持此功能? 3.每次功能 RESET 后,SRAM 数据都会被清除。 根据我对 S32K3xx 参考手册的理解,SRAM/系统存储器在功能复位后应该能够保留。 我创建了一个SRAM测试变量: #define SRAM_TEST_ADDR ((volatile uint32_t *)0x204007d4U) 并用它来验证功能 RESET 后的数据保留情况。 但是,我观察到在功能复位后,SRAM 数据被清除/重写为零。 我的问题是: SRAM 在功能复位期间是否由硬件保留,但之后被软件覆盖? S32K312 中哪些 SRAM 区域能够保证在功能 RESET 后保留其内容? 将变量放入 SRAM 中,使其内容在功能 RESET 后得以保留的推荐方法是什么? 我应该使用专用的 .noinit 吗?或者保留SRAM部分? 保持数据是否需要特定的 MC_RGM/SRAM 配置? 对于 RTD 7.0.1 版本,在功能 RESET 后保留应用程序数据的推荐方法是什么? 4. 直接软件破坏性 RESET 我还在测试使用 Power IP 进行直接软件破坏性重置: Power_Ip_Init(&Power_Ip_HwIPsConfigPB); gVar= Power_Ip_GetResetReason(); for (count = 0; count < 10125000; count++); Power_Ip_PerformReset(&Power_Ip_HwIPsConfigPB); 我当前的 MC_RGM 配置包含: static const Power_Ip_MC_RGM_ConfigType Power_Ip_MC_RGM_ConfigPB = { (MCU_DEST_RESET), ... MC_RGM_FRET_FRET((uint32)15U), MC_RGM_DRET_DRET((uint32)0U) }; 破坏性重置发生,但调试器反复失去通信并重新建立通信。 我看到类似这样的信息: 信息:DAP IDCODE = 0x6BA02477 信息:DAP 已成功启动。DP CTRL/STAT = 0xF0000000 重复多次,随后是: 已收到中断命令。停止执行。 我想了解: 在破坏性 RESET 过程中,DAP 是否会反复重新连接? 在破坏性重置序列中,Cortex-M7 究竟发生了什么? 破坏性 RESET 后,CPU 何时才能再次可用? 调试单个软件破坏性重置的推荐方法是什么? 5. Power_Ip_PerformReset() 之前的断点行为 我无法可靠地在以下位置立即触发断点: Power_Ip_PerformReset(&Power_Ip_HwIPsConfigPB); 我在 API 调用前添加了一个延迟,希望调试器有足够的时间获取访问权限。 有时只有在我手动暂停目标程序并恢复执行后,才能到达断点。 我想了解: 为什么即使 RESET API 之前有延迟,调试器仍然会错过断点? 这是否与目标设备反复重置以及调试器通过 DAP 重新连接有关? 是否有推荐的方法可以在破坏性 RESET 之前或之后立即捕获 CPU 状态? RTD DISABLE_DEBUGGER_TRAP 选项与此行为有关吗? 6.电源 IP 初始化和 Power_Ip_SetMode() 我的RTD产品提供: void Power_Ip_Init( const Power_Ip_HwIPsConfigType *HwIPsConfigPtr); void Power_Ip_SetMode(const Power_Ip_ModeConfigType *ModeConfigPtr); void Power_Ip_PerformReset( const Power_Ip_HwIPsConfigType *HwIPsConfigPtr ); Power_Ip_ResetType Power_Ip_GetResetReason(void); Power_Ip_RawResetType Power_Ip_GetResetRawValue(void); 我目前使用: Power_Ip_Init(&Power_Ip_HwIPsConfigPB); 和: gVar = Power_Ip_GetResetReason(); 我的模式配置为 POWER_IP_RUN_MODE。 我想澄清以下问题: 在使用 Power IP 重置 API 之前,Power_Ip_Init(&Power_Ip_HwIPsConfigPB) 是否是正确的初始化方法? 软件功能/破坏性RESET测试是否需要 Power_Ip_SetMode() 函数? 由于我选择的模式是 POWER_IP_RUN_MODE,那么对于此 RESET 测试,是否可以省略 Power_Ip_SetMode()? 如何使用 RTD 7.0.1 配置单独的软件功能RESET和软件破坏性RESET配置? 环境 MCU:S32K312 核心:Cortex-M7 S32DS:S32 设计工作室 AUTOSAR:4.9 RTD:7.0.1 RESET 源:SWT0 格子:15 DRET:0 我可以提供完整的测试应用程序 Power_Ip_PBcfg.c,链接器配置、MC_RGM 寄存器捕获和调试器日志(如有需要)。 谢谢! Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention 你好@Sharif417 , 1. SWT0 功能 RESET 升级 SWT0_RST 参与 S32K312 的 FREC,当 FREC 达到 15 时,DES[MC_RGM_FRE] 将被设置,您可以通过调用 Power_Ip_GetResetReason() 并返回“MCU_MC_RGM_FRE_RESET”来读取该值。 所有未被降级(通过 MCRGM.FERD)的功能复位源均符合递增 FREC 的条件。 请注意,Power_Ip_Init() 会清除 MC_RGM.DES(在保存其值之后),因此请尝试在初始化电源模块之前获取寄存器值,或者直接读取复位原因。 如果阈值大于 8,则恢复模式可能会对此产生影响,因为恢复模式默认设置为“8”。sBAF 也可能干扰DRET,而不是 FRET 。您可以看到,如果阈值为“0”,则会变为 0xF: Julin_AragnM_0-1788816978772.pngJulin_AragnM_0-1788816978772.pngJulin_AragnM_0-1788816978772.pngJulin_AragnM_0-1788816978772.png 当我连续运行应用程序时,在第 15 次功能性 RESET 后,应用程序/调试器会停止运行,而不是让我观察到预期的破坏性 RESET。我想知道这是否与 RESET 顺序、SBAF 恢复或调试器有关。 与其尝试保持调试器连接,不如尝试在第 15 次功能 RESET 后再连接,或者尝试通过 UART 或类似方式打印 RESET 原因? 2. 我希望每次 SWT0 功能重置都具有破坏性。 是的,FRET=1 足以使每次功能性 RESET都发出破坏性 RESET。 无需额外添加 MC_RGM。 sBAF/恢复模式不应对此产生影响。 是的,您可以直接在 POWER 模块-> “模块配置” -> “MCU 复位配置” -> “功能复位升级阈值”中进行配置。 3. 每次功能RESET后,SRAM 数据都会被清除。 正确,功能复位后 SRAM 数据会被保留。 根据衍生型号的不同,S32K3 可提供 16KB、32KB 或高达 64KB 的待机 RAM。 您可以找到一些关于如何通过待机 RAM 放置和使用变量的示例: [RTD600 MCAL & IP] S32K3 低功耗管理 AN 和演示 S32K3 低功耗管理 AN 和演示 例如 S32K312 待机模式和待机 RAM 和 PAD 保持 DS3.5 RTD300 待机内存被清除/重写的原因是默认的 startup_cm7.s 文件。S32DS 提供的复位功能会初始化所有 SRAM,无论复位原因(POR、破坏性复位、功能性复位)如何。您必须对其进行修改,以便在发出功能 RESET 时,SRAM 初始化跳过已分配的备用 RAM。请参考以下社区帖子: S32K311 待机内存保留。 4. 直接软件破坏性RESET 是的,当 MCU 被发出功能性/破坏性复位指令时,调试子系统和时钟都会被重新初始化,这意味着调试器必须再次重新协商 DAP 访问权限。 破坏性复位会导致芯片的大部分部件(除少数模块外)复位。功能复位会导致所有通信外设和内核复位。通信协议的有效性无法保证,重置后假定它们会被重新初始化。 与其尝试保持连接,不如使用调试器的“附加到目标”选项: Julin_AragnM_1-1788817136992.pngJulin_AragnM_1-1788817136992.pngJulin_AragnM_1-1788817136992.pngJulin_AragnM_1-1788817136992.png 5. Power_Ip_PerformReset() 之前的断点行为 很可能你只是错过了重新连接的窗口期。你可以不用 for() 循环,而是使用 while(flag),其中flag是一个变量,你需要在重新连接调试器后,通过“表达式”选项卡手动更改它。 6. 电源 IP 初始化和 Power_Ip_SetMode() 是的,在使用电源 API 之前必须调用 Power_Ip_Init()。 我建议这样做。您可以通过 Power_Ip_PerformReset() 执行 RESET,但是您只能在 McuResetConfig 容器中配置破坏性 RESET 或功能性 RESET。您可以声明两种电源模式:一种用于功能性复位,一种用于破坏性复位。然后只需调用 Power_Ip_SetMode(Functional_Reset) 或 Power_Ip_SetMode(Destructive_Reset)。 可以省略,但是,为了确保每个模块都已正确设置和配置,您应该调用 Power_Ip_SetMode(RUN_MODE)。如果你的项目不需要这一步,你可以省略它。 请参阅 A6.2。 我做了一个简单的测试,在设置 FRET=1 并通过 Power_Ip_SetMode() API 执行功能性复位后,可以看到报告了 FRE_RESET: Julin_AragnM_2-1788817284857.pngJulin_AragnM_2-1788817284857.pngJulin_AragnM_2-1788817284857.pngJulin_AragnM_2-1788817284857.png 此致, 朱利安 Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention 你好@Sharif417 , 1. SWT0 功能 RESET 升级 1. 为什么在第 15 次 SWT0 功能 RESET 后,我没有观察到 DES[MC_RGM_FRE] = 1? 正如我之前提到的,Power_Ip_Init() API 会清除 DES 寄存器,这意味着你应该通过Power_Ip_GetResetReason() 来读取复位原因。 2. 当 FREC 达到 FRET = 15 时,MCU 是否必须进入破坏性 RESET?如果发生破坏性重置,为什么我的测试分区中的 SRAM 内容会被保留? 是的。只要 FREC 达到 FRET 中配置的阈值,MCU 就应该发出破坏性 RESET。要么没有发生破坏性重置,要么变量放置错误。 3. 我是否遗漏了其他 MC_RGM/SBAF 配置? 不。对于功能复位升级,只需设置 FRET 即可。 2. 功能RESET和破坏性RESET后的 SRAM 数据保持 1. 请问这种 SRAM 行为在 S32K312 上是否正常?我的 SRAM 测试区域是否可能位于即使在破坏性 RESET 后仍能保留的存储区域中? 不应该出现这种情况。发生破坏性 RESET 事件后,SRAM 中的所有内容都将丢失。 能否详细说明一下您是如何测试直接软件破坏性重置的? 从你的项目中来看,如果你使用的是 Power_Ip_PerformReset() API,它配置为功能性复位,而不是破坏性复位。 Julin_AragnM_0-1788891886849.pngJulin_AragnM_0-1788891886849.pngJulin_AragnM_0-1788891886849.png 实际上,我通过保存这些值并通过 UART 共享它们来测试这一点,其中 FRDM-A-S32K312 通过 SW2 发出功能复位,FRET 设置为 15,在 15 次 SW 功能复位后,我可以看到 MCU_MC_RGM_FRE_RESET 被生成。这是在RTD 6.0.0版本中出现的问题,请查看以下日志: [RESET] Reason : MCU_F_EXR_RESET (RGM_FES F_FR0) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 2 [RESET] Reason : MCU_SW_DEST_RESET (RGM_DES F_DR29) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 2 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 3 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 4 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 5 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 6 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 7 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 8 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 9 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 10 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 11 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 12 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 13 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 14 [RESET] Reason : MCU_MC_RGM_FRE_RESET (RGM_DES F_DR6) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 在 RTD 7.0.1 中,我观察到了您提到的同样现象(从 FRE 未发出破坏性复位信号,到调试器断开连接): [RESET] Reason : MCU_SW_DEST_RESET (RGM_DES F_DR29) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_DEST_RESET (RGM_DES F_DR29) [RESET] FRE Counter: 0 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 1 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 2 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 3 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 4 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 5 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 6 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 7 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 8 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 9 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 10 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 11 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 12 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 13 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 14 [RESET] Reason : MCU_SW_FUNC_RESET (RGM_FES F_FR29) [RESET] FRE Counter: 0 这让我相信 RTD 6.0.0 和 RTD 7.0.1 的功率驱动器之间存在一些差异,从而导致了这些症状。我目前还无法确定这是配置问题还是程序错误,请给我一些时间进行分析,如有必要,我会联系内部团队。 此致, 朱利安 Re: S32K312: SWT0 Functional Reset Escalation, Destructive Reset Status and SRAM Retention 你好,朱利安, 谢谢你的解释。 我已在我的 S32K312 上重复了测试,并想澄清两点观察结果。我附上了完整的项目文件夹,以便您查看配置并重现该问题。 1. SWT0 功能 RESET 升级 我已配置: FRET = 15U;DRET = 0U; 使用SWT0 和 125 毫秒超时来生成功能性 RESET。 我可以观察到每次功能重置后FREC都会增加: SWT0 reset #1 -> FREC = 1 SWT0 reset #2 -> FREC = 2 ... SWT0 reset #14 -> FREC = 14 然而,当下一次 SWT0 功能 RESET 发生且FRET = 15阈值达到时,我无法观察到预期的破坏性 RESET 状态: DES[MC_RGM_FRE] = 1 此外,在第 15 次功能 RESET 后,MCU 继续运行,我没有观察到预期的破坏性 RESET 行为。我的 SRAM 测试分区中存储的 SRAM 数据也完好无损。 我已使用以下命令禁用恢复行为: IP_DCM_GPR->DCMRWP1 |= (3 << 22); 请您审阅一下我附上的项目文件并提出一些疑问: 为什么在第 15 次 SWT0 功能 RESET 后,我没有观察到DES[MC_RGM_FRE] = 1 ? 当FREC达到FRET = 15 时,MCU 是否必须进入破坏性 RESET?如果发生破坏性重置,为什么我的测试分区中的 SRAM 内容会被保留? 我是否遗漏了其他 MC_RGM/SBAF 配置? 2. 功能RESET和破坏性RESET后的 SRAM 数据保持 我创建了一个专用的 SRAM 分区/区域,并将测试数据存储在该区域中。 我已经确认,在多次SWT0 功能 RESET后,SRAM 值得以保留,这是预期的结果。 然而,即使在第 15 次功能 RESET 之后(我预期 FRET 升级会产生破坏性 RESET),SRAM 值仍然保持不变。 我还测试了直接软件破坏性重置,重置后 SRAM 值仍然保留。 因此,我的观察结果是: SWT0 functional reset ↓ SRAM value retained 15th functional reset / expected FRET escalation ↓ SRAM value still retained Direct software destructive reset ↓ SRAM value also retained 请问这种 SRAM 行为在 S32K312 上是否正常?我的 SRAM 测试区域是否可能位于即使经过破坏性 RESET 也会保留的存储区域中? 我附上了完整的 S32K312 项目文件夹,包括链接器配置、RTD 配置、MC_RGM 配置、SWT0 配置和测试应用程序,以便您可以查看实际的存储器放置和复位配置。 感谢您的支持。
View full article
i.MX8M Plus:VIP8000同時使用時に断続的なフレームシフトの低下と緑色のトップバンドのちらつきが発生する 1. システムと環境 パラメータ設定 SoC NXP i.MX 8M Plus Quad シリコン・レビジョン A1 / B0 カーネル 6.12.20-lts-next-g604d4ef7a1e4 BSP NXP linux-imx / LTS-Next ビバンテ/ガルコア・ドライバー 6.4.11.p3.1049711 ガルコアの場所 ドライバ/mxc/gpu-viv/galcore (内蔵) 2Dエンジン Vivante GC520L(imxvideoconvert_g2d / libg2d.so) NPU VeriSilicon/Vivante VIP8000 NPUパフォーマンス 2.3トップ ビデオエンコーダー Hantro VC8000E (v4l2h264enc) RAM ~5.7 GB LPDDR4 CMAトータル 約960MB 2. 問題の説明 VIP8000 NPUの推論とGC520L G2Dエンジンを使用したハードウェアスケーリング/カラー変換が同時に実行されると、断続的にビデオが破損する問題が発生することが確認されています。 影響を受けるH.264ストリームは、完全に緑色にはなりません。その代わりに、個々のフレームが時折次のような挙動を示すことがあります。 アクティブイメージが、わずかなピクセル数/走査線だけ下方向にずれているように見える。 画面上部に水平方向の緑色の帯が表示されます。 次のフレームはすぐに正しい位置に戻ります。 その結果、断続的にフレームが下方向にジャンプしたり、画面上端が緑色にちらついたりする現象が発生します。 この問題は同時アクセラレータのワークロード中は再現可能ですが、NPUやG2Dワークロードを独立してテストした場合は信頼性が高く再現できません。 3.主な観察事項 3.1 G2Dのみのワークロードは安定している 最大3つの同時運行可能なG2Dビデオブランチを実行できます: メイン:1080p 字幕: 360p MJPEG: 480p NPUを無効にした状態で。 映像は長時間にわたり安定しており、緑色のフレームやフレームシフトは観察されません。 3.2 NPUのみのワークロードは安定している 約 15〜30 FPS での重度VIP8000 NPU推論は、G2Dプロセッシングが非稼働中でも推論エラーや映像破損なしに連続的に動作します。 3.3 G2DをCPUプロセッシングに置き換えることで問題は解消されます ハードウェアG2Dプロセッシングが以下に置き換えられる場合: videoscale ! videoconvert NPUがフルワークロードで稼働し続けている間も、システムは安定した状態を維持する。 緑色の帯状の表示やフレームシフトの問題は、もはや発生しなくなりました。 3.4 NPUとG2Dの同時実行が問題を引き起こす NPUがアクティブで、G2Dが同時に映像やAIプロセッシングに使われていると、破損が発生します。 G2Dワークロードが追加されると、その頻度は増加する。 これは、 問題が個々のNPUやG2Dのワークロードだけでなく、同時進行中のアクセラレーター活動に関連していることを示唆しています。 4. テストマトリックス 故障原因を特定するために、以下の試験を実施しました。 Test NPU AIプロセッシングビデオG2D結果 1 オフ なし メイン + サブ + MJPEG (3つのG2Dブランチ) 合格— ちらつきなし 2 オフ SHMが添付されています メイン + サブ + MJPEG 合格— ちらつきなし 3 オン G2D対応 メインG2D 失敗— 断続的なグリーンバンド/フレームシフトが観測されました 4 オン CPU (ビデオスケール!ビデオ変換) メインG2D 合格— 主流のクリーン 5 オン CPU メイン + サブ G2D 失敗— 追加の G2D ワークロードが導入されると問題が発生します 6 オン CPU すべてのビデオブランチがCPUスケーリングに変換されました 合格— すべての河川はきれいな状態です 注:現在、この問題を引き起こすために必要な同時接続G2Dクライアントの最小数を正確に特定するための、より小規模なスタンドアロン再現ツールを準備中です。 5.現在の調査 上記の結果に基づき、この行動が以下の領域のいずれかに関連している可能性があるかどうかを理解したいと考えています。 A. Galcore / アクセラレータ同時実行 デバイスツリーでは、GPU/NPUコンポーネントは同じGPU/MLサブシステムの一部です: mix_gpu_ml@40000000 { compatible = "fsl,imx8mp-gpu", "fsl,imx8-gpu-ss"; cores = <&gpu_3d &ml_vipsi &gpu_2d>; reg-names = "phys_baseaddr", "contiguous_mem"; memory-region = <&gpu_reserved>; }; 割り込みもgalcoreによって処理されます。 34: 520 0 0 0 GICv3 35 Level galcore:0 35: 13583 0 0 0 GICv3 45 Level galcore:3d-1 36: 1737916 0 0 0 GICv3 57 Level galcore:2d 私たちは以下の点を理解したいと考えています。 galcoreは、GC520L、GC7000、VIP8000間で同期プリミティブまたはロックを共有していますか? G2DとNPUのコマンドキューは完全に独立しているのでしょうか? VIP8000推論がアクティブな状態で、複数のG2Dクライアント/プロセスが作業を送信する場合、既知の制限事項はありますか? コマンドの提出、コンテキストマネジメント、割り込み処理、リソースロックは、同時ワークロード下で遅延を引き起こす可能性があるのでしょうか? B. NoC / DDR帯域幅またはQoS GC520L G2DとVIP8000 NPUはどちらも外部LPDDR4メモリにアクセスするアクティブバス・マスタです。 重いNPU推論が以下を可能にするかどうかを判明したい。 NoC/DDRトラフィックを大幅に増加させる。 G2Dのメモリアクセス**レイテンシ**を増やしてください。 G2Dトランザクションの遅延を引き起こす。 G2Dと下流の消費者間のタイミング/同期の問題を明らかにする。 NoC/DDRのQoS優先順位の影響を受ける。 NXPは、この種のワークロードを調査するためにi.MX8MP上で推奨される NoC/AXI/DDRのパフォーマンス監視およびQoS機能 について指針を提供できるでしょうか? C. G2Dバッファ同期/フェンス/ストライドの問題 この視覚的なアーティファクトは、フレーム全体が破損しているわけではないという点で特に興味深い。 影響を受けるフレームは、おおよそ以下のようになります。 +----------------------------------+ | GREEN HORIZONTAL BAND | +----------------------------------+ | | | | | IMAGE SHIFTED DOWN | | | | | +----------------------------------+ これにより、この問題には以下のようなものが含まれる可能性があるのではないかと疑問が生じます。 G2D宛先バッファの同期。 DMA-BUFの所有権/再利用。 フェンスの信号発信/完成。 一時的なG2D目的地オフセット/ストライド状態。 G2Dメモリ書き込みの遅延。 G2D操作が完全に完了する前に下流VPUアクセスが行われています。 特に、遅延したG2Dの完了や同期イベントが、v4l2h264enc / VC8000EがすべてのG2D書き込みが完了する前に目的地DMA-BUFを消費する可能性はありますか? NXPのG2D/V4L2パイプラインには、宛先DMA-BUFがVPUによって消費される前にG2D処理が完了することを保証する、文書化された同期メカニズムはありますか? D. メモリ / CMA 問題の再現中にメモリ使用量を監視しました。 Total RAM : ~5.7 GB CmaTotal : ~960 MB CmaFree : ~677 MB したがって、CMAは故障発生時にも枯渇状態には至っていない。 しかし、同時進行のNPU/G2D/VPUワークロードに影響を与える可能性のある他のメモリ関連の考慮事項があるかどうかを知りたいです。例えば: DMA-BUF同期。 キャッシュの一貫性。 メモリ領域のマッピング。 物理バッファのアライメント。 バッファの再利用。 IOMMU/MMUマッピング。 予約メモリとのやり取り。 6.追加の診断実験 現在、アプリケーションレベルの複雑さを取り除くための最小限のスタンドアロンリプロダクションを準備中です。 計画されている複製装置には以下が含まれる: Thread 1 → VIP8000 NPU inference Thread 2 → GC520L G2D processing Thread 3 → Additional GC520L G2D processing また、以下の構成についてもテストを行う予定です。 NPU OFF + G2D NPU ON + G2D NPU ON + 2 × G2D NPU ON + G2D → buffer inspection NPU ON + G2D → VPU encoder これにより、破損がG2D出力バッファ自体で発生しているのか、それともバッファがVPUによって消費された後にのみ発生しているのかを判断するのに役立つはずです。 7. NXPへの質問 NXP社には以下の点についてご助言いただければ幸いです。 1. 既知のハードウェア/ソフトウェアの制限 以下の同時実行は可能ですか? VIP8000 NPU + GC520L G2D + VC8000E VPU i.MX8M Plusでは、複数の同時G2Dクライアントを含むすべての機能が完全にサポートされていますか? この組み合わせに関連する既知のハードウェア制限、訂正表、ソフトウェア上の制限はありますか? 2. ガルコア VIP8000とGC520Lの同時動作に関して、既知のガルコアの問題はありますか? 特に、以下のような既知の問題はありますか? 共有ロック、 コマンドキュー、 コンテキスト切り替え、 割り込み処理、 同期、 それともリソースマネジメントですか? 3. DMA-BUF / 同期 宛先DMA-BUFが下流のV4L2/VPUコンポーネントによって消費される前に、G2Dの完了を保証するためにどのようなメカニズムが使用されますか? imxvideoconvert_g2d/libg2dの同時アクセラレータワークロード下で、フェンスやバッファの所有権問題が既知のものはありますか? 4. NoC / QoS NXPは、測定にどのようなデバッグレジスタ、debugfsノード、パフォーマンスカウンタ、またはツールを推奨していますか? GC520L AXIトラフィック、 VIP8000 AXIトラフィック、 VPUトラフィック、 DDR帯域幅、 NoC競合、 QoS/仲裁動作はどうでしょうか? 5. ドライバーバージョン 現在使用しているもの: Kernel: 6.12.20-lts-next-g604d4ef7a1e4 Galcore: 6.4.11.p3.1049711 この組み合わせは、i.MX8MPの検証済み/推奨構成ですか? NPU/G2Dの同時ワークロードに対応する新しいgalcore / G2Dのドライバーやパッチセットはありますか? 6. シリコン関連の訂正 当サイトA1/B0リビジョンに適用されるi.MX8M Plusシリコンエラッタに、以下に関連する問題が含まれているかどうか確認していただけますか。 G2D、 VIP8000、 VPU、 AXI/NoC 仲裁、 DDR、 キャッシュコヒーレンシ、 それとも同時アクセラレータの動作ですか? 7. 推奨構成 アプリケーションを必要とする場合: VIP8000 NPU inference + multiple G2D scaling/color-conversion pipelines + VC8000E H.264 encoding NXPはどのような構成を推奨していますか? 具体的なものはありますか? ドライバーパラメータ、 QoS設定、 メモリ/バッファプール構成、 同期メカニズム、 またはGStreamerパイプラインの実践 それは従うべきことでしょうか? 8. 提供できる情報 必要に応じて以下の情報を提供できます: GStreamerパイプラインを完全に構築します。 デバイスツリーの設定。 カーネル設定。 再現時のdmesg出力。 /proc/interrupts。 G2D/NPUワークロードの詳細。 v4l2-ctl の情報。 最小限のNPU + G2D再現プログラム。 破損したフレームを含むビデオサンプル。 ドライバのバージョンとビルド情報。 推奨されるデバッグ手順、または根本原因がG2D/NPU同期、DMA-BUF/フェンス処理、NoC/DDR競合、galcore、またはシリコン制限に関連しているかどうかを判断するのに役立つ追加のトレース/レジスタに関するガイダンスがあれば幸いです。 よろしくお願いします。 ヴィシュヌS i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
View full article
ターゲットを作るためのルールはありません IMX8MPプロセッサでYocto画像を作成しようとしていました。ファイルはスペクト化された場所にあり、確認済みで、imx8mp_evk_defconfigファイルにも記載しました。 | make[3]: *** ターゲット 'arch/arm64/boot/dts/freescale/imx8mp-evk-delta.dtb' を作成するルールがありません。停止。 Re: No rule to make target Linuxカーネルを再構築するための手順をご参照ください。 1. ファイルソース/meta-freescale/conf/machine/imx8mp-lpddr4-evk.vc.confの変数KERNEL_DEVICETREEに「freescale/imx8mp-lvk-delta.dtb \」を追加してください 2. Linuxカーネルのソースコードを取得してください。 $ bitbake virtual/kernel -c cleansstate $ bitbake virtual/kernel -c patch 3. Linuxカーネルのソースコードフォルダ tmp/work/imx8mp_lpddr4_evk-poky-linux/linux-imx/6.6.52+git/git にアクセスして、dtsファイルarch/arm64/boot/dts/freescale/imx8mp-evk-delta.dts を追加してください 4. Linuxカーネルの再構築。 $ bitbake virtual/kernel Re: No rule to make target それでもbitbake virtual/kernelの後に来る Re: No rule to make target Linuxカーネルの場合: 変数KERNEL_DEVICETREE:append:use-nxp-bsp ファイルソース/meta-freescale/conf/machine/imx8mp-lpddr4-evk.confに「freescale/imx8mp-lpddr4-evk.conf」を変数に追加してください 次に「bitbake virtual/kernel」を実行します。 U-Bootの場合: u-bootに新しいdtsファイルを追加して使用するには、以下の手順を参照してください。 $ bitbake u-boot-imx -c cleansstate $ bitbake u-boot-imx -c patch you-boot source code フォルダ tmp/work/imx8mp_lpddr4_evk-poky-linux/u-boot-imx/2024.04/git にアクセスしてください。フォルダ Arch/Arm/DTS/ に DTS ファイル imx8mp-evk-delta.dts を追加してください。 configs/imx8mp_evk_defconfig を以下のように変更してください。 CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk" 変更後: CONFIG_DEFAULT_DEVICE_TREE="imx8mp-evk-delta" 次に、u-bootを再構築します。 $ bitbake u-boot-imx
View full article
88W8887 RF準拠試験 親愛なる、 私たちは88W8887チップセットをベースにしたWi-Fi/Bluetoothモジュールを使用しています。製品準拠のために、連続パケットの送信や受信モードなどのRFテストを行う必要があります。別のモジュール88W8997については、以下のアプリケーションノードAN14114をたどっています。しかし、アプリケーションノートには88W8887がサポートされているとは記載されていません。 アプリケーションノートにはmwifiexドライバを使用しています。コードを見る限り、88W8887はドライバーがサポートしているはずです。残念ながら、ドライバにはファームウェアファイルsd8887_wlan_a2.binが必要ですが、私たちは見つけることができませんでした。 88W8887でRFテストを行う推奨方法(ANに記載されているものと似ています)は何ですか?NXPはまだこのユースケースをサポートしていますか? 敬具 ヨシ
View full article
NXP i.MX93 和 i.MX8MPLUS EVK 运行时功耗 我正在使用NXP i.MX93和i.MX8MPLUS EVK,想要监控运行时功耗,如何获取这些数据? 议程是监测人工智能模型推理过程中的功率使用情况。如何监测功率指标? 如何仅使用软件(无需任何外部硬件)来监测功率指标? Re: POWER consumption at runtime on NXP i.MX93 & i.MX8MPLUS EVK 感谢您提供如此详细的信息以及对 ANI3054 的参考。这很有帮助。 i.MX93 EVK 是否也有类似的功率测量设置,还是推荐使用不同的方法? Re: POWER consumption at runtime on NXP i.MX93 & i.MX8MPLUS EVK 请参阅文档 AN13054 i.MX 8M Plus 功耗测量 为了测量功耗,PWR CPU 板上设计有插入合适阻值的电流检测电阻。 每个关键电源轨的 PMIC 和 CPU 之间。功率数据是通过对平均电压下降进行采样获得的。 使用功率监控芯片 PAC1934 的检测电阻。每个电源的电压下降除以其检测电阻 在 BCU PC 软件工具中计算电流值。
View full article