Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
Guider 1.10.1 が動作中にクラッシュします。 Windows 11搭載のパソコンなのですが、画像貼り付け処理中にアプリがランダムにクラッシュしてしまいます。すぐにクラッシュすることもあれば、少し時間がかかることもあり、特に規則性はありません。 回复: guider1.10.1闪退,在操作过程中会闪退 こんにちは@shier 情報ありがとうございます。 GUI Guider v1.10.1は古いバージョンであり、Windows 11では互換性や安定性に問題が生じる可能性があります。 最新のGUI Guider v2.0.1へのアップグレードと、新しいバージョンでも問題が再現可能かどうかを確認することをお勧めします。 GUI Guider v2.0.1でもクラッシュが続く場合は、ご連絡ください。クラッシュログやスクリーンショット、問題再現手順などをご提供いただければ、さらなる調査が可能となります。 BR ハリー
查看全文
Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hi Expert, We are planning to implement IEEE 1588/PTP time synchronization on the PFE Ethernet interfaces of our custom S32G274A board. Our current software configuration is: - SoC: NXP S32G274A - Board: Customer board based on S32G274A - Operating system: QNX 7.1 - PFE driver: PFE-DRV_S32G_A53_QNX 1.9.0, io-pkt version - PFE firmware: PFE-FW_S32G 1.12.0 - PFE interfaces under test: PFE EMAC0 and PFE EMAC2 - PFE EMAC1 is not included in the current test because the firmware of its external AQR113C PHY has not yet been programmed. We checked the PFE driver source code and found that it contains IEEE 1588 support and implements the following QNX driver-specific PTP commands: - PTP_GET_TIME - PTP_SET_TIME - PTP_GET_TX_TIMESTAMP - PTP_GET_RX_TIMESTAMP - PTP_SET_COMPENSATION - PTP_GET_COMPENSATION The current default build configuration disables this feature: 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 Our startup code already enables the PFE_TS clock through SCMI, but we have not yet configured the IEEE 1588 input and output clock frequencies in the PFE driver. Could you please provide guidance on the following questions? 1. Does PFE EMAC0/EMAC1/EMAC2 on S32G274A officially support IEEE 1588 hardware TX and RX timestamping with PFE-DRV 1.9.0 and PFE-FW 1.12.0 on QNX 7.1? 2. What is the expected SCMI PFE_TS clock frequency on S32G274A? 3. What values are recommended for the following build parameters? 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. Do all three PFE EMACs share the same PTP hardware clock, or does each EMAC have an independent PTP system-time counter? 5. Which PTP transport modes are supported by this driver? - Layer-2 PTP, EtherType 0x88F7 - UDP/IPv4 - UDP/IPv6 - One-step timestamping - Two-step timestamping - End-to-End delay mechanism - Peer-to-Peer delay mechanism 6. Does enabling PTP require any additional PFE firmware configuration, firmware feature, FCI configuration, or startup initialization? 7. Is there an NXP- or QNX-recommended user-space PTP daemon or sample application for this PFE driver? The current driver exposes PTP functions through netdrvr/ptp.h and SIOCGDRVSPEC/SIOCSDRVSPEC, rather than a Linux-style /dev/ptpX PHC device. 8. Are there any known errata, limitations, or required initialization sequences related to: - PFE timestamp clock initialization; - TX/RX timestamp delivery through HIF; - timestamp compensation; - simultaneous PTP operation on multiple PFE EMACs? If available, could you also provide a reference configuration, sample application, or validation procedure for IEEE 1588 on S32G274A PFE under QNX? Thank you for your support. BR, Waitewang Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hello Expert Thank you for the detailed information. We have verified that the PTP time and compensation interfaces work correctly on PFE0 and PFE2 with PFE-DRV 1.9.0 and PFE-FW 1.12.0. Before closing this NXP PFE support case, could you please clarify three S32G274A-specific points? 1. We are currently using PFE_CFG_IEEE1588_I_CLK_HZ = 200 MHz and 50 MHz output clocks for the enabled EMACs. Is this configuration officially supported and recommended? 2. Does each PFE EMAC have an independent IEEE 1588 timer, or can an EMAC be configured to share the time base from another EMAC? 3. Where is the required 400 MHz XBAR clock configured, and which register or runtime indication can be used to verify it? Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hi,waitewang Thank you for contacting us. The following information is hoped to be helpful to you! 1. The IEEE 1588 timestamping feature (AAVB-2500) was first introduced in BETA_0.9.0. Note that the original record is [PFE_QNX_DRIVER] Add IEEE1588 timestamping support. (Refer to PFE-FW_S32G_1.12.0_ReleaseNotes.pdf.) Your software version compatibility meets the requirements. 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. The clock of PFE_TS is provided by GMAC_TS_CLK, with a range of 5-200 MHz. The minimum value needs to be determined based on the set mode. 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. It needs to be set according to the value of GMAC0_TS_CLK. Refer to the following content. Joey_z_4-1788772395380.pngJoey_z_4-1788772395380.pngJoey_z_4-1788772395380.png 4. Yes, you can refer to the following figure. Joey_z_5-1788772417926.pngJoey_z_5-1788772417926.pngJoey_z_5-1788772417926.png 5. From the code and documentation infromation, technically PTP uniformly identifies the transport layer, supporting (UDP/IPv4, UDP/IPv6, Layer-2 PTP), support theTwo-step and E2E/P2P. 6.Please note the following:The XBAR clock set to 400 MHz for timestamping feature to work reliably, refer to S32G Reference Manual.The PFE_CFG_IEEE1588_EMACn_O_CLK_HZ value must be less than PFE_CFG_IEEE1588_I_CLK_HZ. Before driving the loading process, it is necessary to confirm the following: All relevant clocks, power/reset, and pins of PFE have been configured according to the S32G RM, and the firmware binary s32g_pfe_class.fw has been deployed to the target board. 7. We apologize that NXP does not provide a ready-made PTP daemon or sample application for the QNX PFE driver.  8. Please refer to the following contents in the attached documents: PFE-DRV_S32G_QNX_1.9.0_ReleaseNotes.pdf/4 Known Issues PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf/5.2 Limitations PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf/5 Usage We do not currently provide dedicated application examples. It is recommended to refer to the relevant information in the following documents.(PFE-DRV_S32G_A53_QNX_1.9.0\doc) BR Joey Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 Hi,waitewang Thank you for your reply. 1.For the input clock, the 100Mhz was suggested according to the S32G RM.The PFE_CFG_IEEE1588_EMACn_O_CLK_HZ value must be less than PFE_CFG_IEEE1588_I_CLK_HZ. Joey_z_0-1788848856306.pngJoey_z_0-1788848856306.png 2.PFE EMACs support two timestamping modes, Internal Timestamp Mode and the External Timestamp Mode. The detail information you can refer to the PFE-DRV_S32G_QNX_1.9.0_UserManual.pdf of chapter 6.4.1 Configuring and enabling the IEEE1588 timers. 3.The XBAR clock will be configured in the ATF; you can try to use the commend of "clk dump" in uboot to check it. Hope this information can help you. BR Joey
查看全文
コロラド州ラブランドの配管工が語る、よくある配管トラブルとその対処法 最終更新日:2026年9月9日(公式サイトはコメント欄に記載) Plumber Loveland Coとは、コロラド州ラブランドで利用できるプロの配管サービスを指し、住宅所有者や企業が一般的な配管に関するニーズに対応できるよう支援することを目的としています。蛇口の漏れや詰まった排水口から給湯器の問題、より複雑な配管修理まで、経験豊富な配管工は配管システムを正常に機能させるための実用的な解決策を提供します。これは、コロラド州ラブランドで信頼できる配管工を選ぶことが、迅速かつ確実なサービスが必要な場合に重要となる理由の一つです。 Plumber Loveland Coの主なアイデアはシンプルです。日常の修理、メンテナンス、設置、そして予期せぬ配管トラブルに対して、お客様に専門的な配管サポートを提供することです。資格のある地元の配管工は、問題の原因を特定し、適切な解決策を提案し、必要な作業を安全かつ効率的に完了させる手助けをしてくれます。小さな修理が必要な場合でも、大規模な配管工事が必要な場合でも、信頼できる配管の専門家に相談することで、物件を守り、ご自宅の配管システムを円滑に機能させることができます。
查看全文
LSDK 21.08 OP-TEE でブートが壊れる LS1043AEを使用したカスタム基板では、OP-TEEなしでもセキュアブートが問題なく動作します。OP-TEEをシステムに導入しようとしてコンソールに出力され、そこでハングアップします。 注意:2GB DDR4、32ビット、CL=11、ECCオフ お知らせ:BL2:v2.4(リリース):LSDK-21.08-1-ga08bfddba-dirty お知らせ:BL2:ビルド日時:2026年8月31日 22:39:20 通知:SECブロックの初期化と設定を行っています。 注意:Secは既に初期化および設定済みです。 通知: RSA の検証 通知: ハッシュを検証しています 通知: RSA の検証 通知: ハッシュを検証しています 通知: RSA の検証 通知: ハッシュを検証しています 通知: BL2: BL31を起動しています お知らせ:BL31:v2.4(リリース):LSDK-21.08-1-ga08bfddba-dirty お知らせ:BL31:製造日時:2026年8月31日 22:39:48 お知らせ:ls1043aerb BL31フェーズへようこそ Google/Geminiによると、GICには問題があると考えているとのことです。ATFとOP-TEEは64kページアラインを使用しているようですが、ubootのdtsファイルでは4kページアラインになっています。この問題ではないと思う、少なくとも今のところは。OP-TEEを全く初期化していないように見えるからです。 ご意見は? QorIQ LS1デバイス Re: LSDK 21.08 OP-TEE breaks boot どうやらU-Bootに問題があるようです。 OPTEEを有効にした状態で通常のU-boot(セキュアなし)を起動できるかどうか試していただけますか? Re: LSDK 21.08 OP-TEE breaks boot 試してみるのは構わないが、それは何のためのテストなのか?現在、u-bootにどのような問題があると考えていますか?Opteeなしで動作するので、何が問題なのか、何を注意すべきか気になります。 Re: LSDK 21.08 OP-TEE breaks boot まず最初に確認すべきこと: TF-Aをデバッグモードで再構築し、正確な停止箇所を確認してください。 実用的であればDEBUG=1 LOG_LEVEL=50を使うか、初期BL31プラットフォームコードにNOTICE()のパンくずを加えることもできます: プラットフォーム設置エントリー GIC初期化 TZC/TZASC/TZPC 設定 セキュアペイロードディスパッチャー/OP-TEEセットアップ BL32エントリーポイント準備 NXPのサポートでは、同様のLS1043Aハングに対するガイダンスとして、ATF/U-Bootのデバッグプリントを追加するか、CodeWarrior/JTAGを使って実行が詰まっている箇所を点検することが挙げられます。 FIPに実際にBL32が含まれていること、そしてBL31がOP-TEEサポートで構築されているかを確認してください。 TF-A の OP-TEE の場合、ビルドには SPD=opteed と BL32= を含める必要があります。セキュア ブート/NXP CoT の場合、セキュア TF-A ビルド フローには、TRUSTED_BOARD_BOOT=1、CST_DIR=...、BL32=$TEE_BIN、SPD=opteed、および BL33=$UBOOT_SECURE_BIN も含まれます。 次のようなコマンドを実行してください。 fiptool info fip.bin BL31、BL32/OP-TEE、およびBL33がすべて存在することを確認してください。BL32が欠落している場合、またはBL31がSPD=opteedで構築されていない場合、OP-TEEは入力されません。 LS1043Aのセキュアブートにおける予約メモリの処理を確認してください。 LS1043Aのセキュアブートに関する問題が報告されていますが、plat/nxp/soc-ls1043a/soc.def NXP_ROM_RSVD の値を0x5900から0x8000に変更することで修正されます。既にセキュアブートを実施していて、さらに署名付きのFIPコンポーネントを追加するのであれば、早めに確認しておく価値があります。これは、後期のU-Boot DTS GICのアライメント問題よりも可能性が高い。 「RSA/ハッシュ検証済み」と表示されているからといって、画像レイアウトが良好であるとは限りません。 BL2ログは検証したコンポーネントの認証が成功したことを証明しますが、ランタイムアドレス、予約メモリの重複、BL32ロードアドレス、またはBL31のセキュアペイロード構成が正しいことは証明できません。BL2は、検証後にBL31/BL32/BL33をDDRにロードしてから、制御をBL31に渡すように文書化されている。 ハングがBL31: Initializing BL32に移動した場合は、OP-TEE本体にフォーカスを移します。 その後の段階では、OP-TEEのロードアドレス、セキュアDDRの切り出し、ページャー/非ページャーのレイアウト、CAAM/SECの設定、およびOP-TEEコンソールを確認します。OP-TEE/暗号化関連のコンテキストにおいて、OP-TEEの暗号化初期化が早期に行われている疑いがある場合、CFG_NXP_CAAM=nおよびCFG_CRYPTO_DRIVER=nを設定してOP-TEEの暗号化/CAAMを無効にすることを推奨するNXPのガイダンスがあります。しかし、現在のログでは、OP-TEEが入力されていることはまだ証明されていません。 私の最も強い仮説は、BL31はOP-TEEを有効にすると異なるビルドや構成がされており、OP-TEEバナーやBL32エントリーの前の初期BL31プラットフォーム/SPDセットアップで止まっているということです。 まずはBL31をGIC/プラットフォーム設定に合わせて計測し、FIP/SPD=opteed / BL32=tee.bin/secure-boot CSF レイアウトを実行してから、LS1043A NXP_ROM_RSVD=0x8000 の問題を確認してください。 Re: LSDK 21.08 OP-TEE breaks boot そこでATFをデバッグでビルドし、サイレントハングの直前に出る最後のメッセージは次の通りです: 情報:BL31:BL32の初期化中 もしあなたの指示を正しく理解していれば、今は特にOP-TEEに集中すべきですよね? Re: LSDK 21.08 OP-TEE breaks boot はい、まずOP-TEEを通常の起動(セキュアなし)で確認し、OP-TEEでのビルディングや展開手順に問題がないか確認してください。 Re: LSDK 21.08 OP-TEE breaks boot おそらく間違ったtee.binファイルを使っていたのだと思います。 私は、OP-TEEを手動でビルドした際に生成されたtee.binを使用しており、生成する必要があったobjcopyバージョンを使用していませんでした。これによりシステムは初期化してLinuxで起動できるようです。 opteeに関するカーネルログのメッセージが他にも残っていますが、この特定の問題は解決したのでこのスレッドは閉じます。
查看全文
NXP i.MX93およびi.MX8MPLUS EVKにおける実行時の消費電力 私はNXP i.MX93とi.MX8MPLUS EVKを使っていて、実行時の消費電力を監視したいのですが、このデータをどうやって取得できますか? 目的はAIモデルの推論中のパワーを監視することです。電力指標はどうやって監視できますか? 外部ハードウェアを使わずにソフトウェアだけで電力指標を監視するにはどうすればいいですか? Re: POWER consumption at runtime on NXP i.MX93 & i.MX8MPLUS EVK 詳細な情報とANI3054への参照をありがとうございます。これは非常に役立ちます。 i.MX93 EVKも同様の電力測定設定を採用しているのでしょうか、それともi.MX93には別の測定方法が推奨されているのでしょうか? Re: POWER consumption at runtime on NXP i.MX93 & i.MX8MPLUS EVK AN13054 i.MX 8M Plusの消費電力測定に関するドキュメントを参照してください。 消費電力を測定するために、PWR CPUボードには適切な値の電流検出抵抗が挿入されています。 各キー電源レールごとに、PMICとCPUの間に接続します。電力データは、平均電圧降下をサンプリングすることによって取得されます。 電力モニタチップPAC1934を使用したセンス抵抗器。各電源の電圧降下は、そのセンス抵抗で割られます BCU PCソフトウェアツール内の値で電流を計算します。
查看全文
i.MX8M Plus: Intermittent Downward Frame Shift and Green Top-Band Flicker During Concurrent VIP8000 1. System and Environment Parameter Configuration SoC NXP i.MX 8M Plus Quad Silicon Revision A1 / B0 Kernel 6.12.20-lts-next-g604d4ef7a1e4 BSP NXP linux-imx / LTS-Next Vivante / Galcore Driver 6.4.11.p3.1049711 Galcore Location drivers/mxc/gpu-viv/galcore (built-in) 2D Engine Vivante GC520L (imxvideoconvert_g2d / libg2d.so) NPU VeriSilicon/Vivante VIP8000 NPU Performance 2.3 TOPS Video Encoder Hantro VC8000E (v4l2h264enc) RAM ~5.7 GB LPDDR4 CMA Total ~960 MB 2. Problem Description We are observing an intermittent video corruption issue when VIP8000 NPU inference runs concurrently with hardware scaling/color conversion using the GC520L G2D engine. The affected H.264 stream does not become completely green. Instead, an individual frame occasionally shows the following behavior: The active image appears to shift downward by a small number of pixels/scanlines. A horizontal green band appears at the top of the frame. The following frame immediately returns to the correct position. The result is an intermittent downward frame jump / green top-edge flicker. The issue is reproducible during concurrent accelerator workloads but cannot be reproduced reliably when the NPU or G2D workloads are tested independently. 3. Key Observations 3.1 G2D-only workload is stable We can run up to three concurrent G2D video branches: Main: 1080p Sub: 360p MJPEG: 480p with the NPU disabled. The video remains stable for extended periods with no observed green frames or frame shifts. 3.2 NPU-only workload is stable Heavy VIP8000 NPU inference at approximately 15–30 FPS runs continuously without observed inference errors or video corruption when G2D processing is not active. 3.3 Replacing G2D with CPU processing eliminates the issue When hardware G2D processing is replaced with: videoscale ! videoconvert the system remains stable while the NPU continues running at full workload. The green-band/frame-shift issue is no longer observed. 3.4 Concurrent NPU + G2D triggers the issue When the NPU is active and G2D is simultaneously used for video/AI processing, the corruption appears. The frequency increases when additional G2D workloads are introduced. This suggests that the issue is related to concurrent accelerator activity rather than the individual NPU or G2D workload alone. 4. Test Matrix We performed the following tests to isolate the failure condition. Test NPU AI Processing Video G2D Result 1 OFF None Main + Sub + MJPEG (3 G2D branches) PASS — No flicker 2 OFF SHM attached Main + Sub + MJPEG PASS — No flicker 3 ON G2D enabled Main G2D FAIL — Intermittent green-band/frame-shift observed 4 ON CPU (videoscale ! videoconvert) Main G2D PASS — Main stream clean 5 ON CPU Main + Sub G2D FAIL — Issue appears when additional G2D workload is introduced 6 ON CPU All video branches converted to CPU scaling PASS — All streams remain clean Note: We are currently preparing a smaller standalone reproducer to determine the exact minimum number of concurrent G2D clients required to trigger the issue. 5. Current Investigation Based on the above results, we would like to understand whether this behavior could be related to one of the following areas. A. Galcore / Accelerator Concurrency In our device tree, the GPU/NPU components are part of the same GPU/ML subsystem: 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>; }; The interrupts are also handled by 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 We would like to understand: Does galcore share synchronization primitives or locks between the GC520L, GC7000 and VIP8000? Are G2D and NPU command queues completely independent? Are there any known limitations when multiple G2D clients/processes submit work while VIP8000 inference is active? Could command submission, context management, interrupt handling, or resource locking introduce delays under concurrent workloads? B. NoC / DDR Bandwidth or QoS Both the GC520L G2D and VIP8000 NPU are active bus masters accessing external LPDDR4 memory. We would like to determine whether heavy NPU inference could: Increase NoC/DDR traffic significantly. Increase memory access latency for G2D. Cause G2D transactions to be delayed. Expose a timing/synchronization issue between G2D and downstream consumers. Be affected by NoC/DDR QoS priorities. Could NXP provide guidance on the recommended NoC/AXI/DDR performance monitoring and QoS facilities available on i.MX8MP for investigating this type of workload? C. G2D Buffer Synchronization / Fence / Stride Issue The visual artifact is particularly interesting because the entire frame is not corrupted. The affected frame appears approximately as follows: +----------------------------------+ | GREEN HORIZONTAL BAND | +----------------------------------+ | | | | | IMAGE SHIFTED DOWN | | | | | +----------------------------------+ This makes us question whether the issue could involve: G2D destination buffer synchronization. DMA-BUF ownership/reuse. Fence signaling/completion. Temporary G2D destination offset/stride state. Delayed G2D memory writes. Downstream VPU access occurring before the G2D operation has completely finished. In particular, could a delayed G2D completion or synchronization event cause v4l2h264enc / VC8000E to consume a destination DMA-BUF before all G2D writes have completed? Is there a documented synchronization mechanism in the NXP G2D/V4L2 pipeline that guarantees G2D completion before the destination DMA-BUF is consumed by the VPU? D. Memory / CMA We monitored memory usage while reproducing the problem: Total RAM : ~5.7 GB CmaTotal : ~960 MB CmaFree : ~677 MB CMA is therefore not close to exhaustion during the failure. However, we would like to know whether there are other memory-related considerations that could affect concurrent NPU/G2D/VPU workloads, such as: DMA-BUF synchronization. Cache coherency. Memory-domain mapping. Physical buffer alignment. Buffer reuse. IOMMU/MMU mappings. Reserved-memory interactions. 6. Additional Diagnostic Experiments We are currently preparing a minimal standalone reproducer to remove application-level complexity. The planned reproducer will contain: Thread 1 → VIP8000 NPU inference Thread 2 → GC520L G2D processing Thread 3 → Additional GC520L G2D processing We also plan to test the following configurations: NPU OFF + G2D NPU ON + G2D NPU ON + 2 × G2D NPU ON + G2D → buffer inspection NPU ON + G2D → VPU encoder This should help determine whether the corruption occurs in the G2D output buffer itself or only after the buffer is consumed by the VPU. 7. Questions for NXP We would appreciate NXP's guidance on the following. 1. Known hardware/software limitations Is concurrent operation of: VIP8000 NPU + GC520L G2D + VC8000E VPU fully supported on i.MX8M Plus, including multiple simultaneous G2D clients? Are there any known hardware limitations, errata, or software restrictions related to this combination? 2. Galcore Are there known galcore issues involving concurrent VIP8000 and GC520L operation? In particular, are there known issues involving: shared locks, command queues, context switching, interrupt handling, synchronization, or resource management? 3. DMA-BUF / synchronization What mechanism is used to guarantee G2D completion before a destination DMA-BUF is consumed by downstream V4L2/VPU components? Are there known fence or buffer-ownership issues in imxvideoconvert_g2d / libg2d under concurrent accelerator workloads? 4. NoC / QoS What debug registers, debugfs nodes, performance counters, or tools does NXP recommend for measuring: GC520L AXI traffic, VIP8000 AXI traffic, VPU traffic, DDR bandwidth, NoC contention, and QoS/arbitration behavior? 5. Driver version We are currently using: Kernel: 6.12.20-lts-next-g604d4ef7a1e4 Galcore: 6.4.11.p3.1049711 Is this combination a validated/recommended configuration for i.MX8MP? Is there a newer galcore / G2D driver or patchset that addresses concurrent NPU/G2D workloads? 6. Silicon errata Could you please confirm whether the applicable i.MX8M Plus silicon errata for our A1/B0 revisions contain any issues related to: G2D, VIP8000, VPU, AXI/NoC arbitration, DDR, cache coherency, or concurrent accelerator operation? 7. Recommended configuration For an application requiring: VIP8000 NPU inference + multiple G2D scaling/color-conversion pipelines + VC8000E H.264 encoding what configuration does NXP recommend? Are there specific: driver parameters, QoS settings, memory/buffer-pool configurations, synchronization mechanisms, or GStreamer pipeline practices that should be followed? 8. Information We Can Provide We can provide the following if required: Complete GStreamer pipelines. Device-tree configuration. Kernel configuration. dmesg output during reproduction. /proc/interrupts. G2D/NPU workload details. v4l2-ctl information. Minimal NPU + G2D reproducer. Video samples containing the corrupted frames. Driver versions and build information. We would appreciate any guidance on the recommended debug procedure or additional traces/registers that would help determine whether the root cause is related to G2D/NPU synchronization, DMA-BUF/fence handling, NoC/DDR contention, galcore, or a silicon limitation. Thank you. Vishnu S i.MX 8M | i.MX 8M Mini | i.MX 8M Nano
查看全文
KW47:WDOG 等待/停止模式与电源模式(睡眠/深度睡眠)之间的关系 你好, 我正在阅读 KW47 参考手册,但我对 WDOG 低功耗模式和系统电源模式之间的关系感到困惑。 在 WDOG 章节中,控制和状态寄存器包含以下位: - 等待: “使 WDOG 在芯片处于等待模式时也能运行。” - 停止: “使 WDOG 在芯片处于停止模式时也能运行。” WDOG章节还指出: - 在停止模式下,选定的 WDOG 时钟源必须保持活动状态。 - 对于调试模式和停止模式,必须使用总线时钟以外的时钟源。 另一方面,“电源模式”章节描述了: 睡眠模式: CPU执行已停止。 - 核心时钟已关闭 系统时钟和总线时钟可能会继续运行 深度睡眠模式: - 核心时钟已关闭 系统时钟已关闭 总线时钟已关闭 基于以上描述,可以合理地解释如下: - 等待模式 ≈ 睡眠模式 - 停止模式 ≈ 深度睡眠模式 然而,我尚未在参考手册中找到任何明确说明来证实这种映射关系。 我的问题是: 1. WDOG 等待模式是否对应于 KW47 的电源模式睡眠模式? 2. WDOG 停止模式是否对应于 KW47 的电源模式深度睡眠模式? 3. 或者说,Wait/Stop WDOG 是 CPU 特有的状态,与 SoC 电源模式不同? 4. 是否有参考手册章节或应用笔记明确描述了这种关系? 感谢您的帮助。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) 你好,希望你一切都好。   KW47 参考手册中使用的术语与将 WDOG 控制寄存器中的 WAIT 和 STOP 字段解释为对芯片/内核低功耗状态的引用,而不是对 WDOG 特定 CPU 状态的引用是一致的。我会将这种关系描述为功能对应,而不是严格的等价关系。 从这个意义上讲,WDOG WAIT 对应于等待/睡眠类条件,其中 CPU 执行停止,但系统和总线时钟可能仍然可用。WDOG STOP 对应于停止/深度睡眠类条件,其中内核、系统和总线时钟被门控,看门狗只有在配置为使用在该模式下保持活动的时钟源时才能继续工作。   此致, 索菲亚。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) 你好,索菲亚, 感谢您之前的解释。 根据您的回复,我的理解是: - WDOG WAIT 对应于等待/睡眠类低功耗状态。 - WDOG STOP 对应于停止/深度睡眠级别的低功耗状态。 - 这种关系是一种功能对应关系,而不是严格的一对一映射关系。 再次查阅KW47参考手册后,我发现了以下章节: 28.4 模块在低电源模式下的运行 表 225:Cortex M33 核心模块在低电源模式下的运行情况 对于 WDOGx,表格显示: - 睡眠:开启 - 深度睡眠:可选 - 关机:可选 深度关机:关闭 从这张表中,我了解到 WDOG 操作至少可以在深度睡眠和关机模式下配置。 为了更好地了解其行为,我使用 KW47-Loc 评估板进行了测试。 测试条件: - 已启用 WDOG - WDOG 刷新由 vApplicationIdleHook() 执行 - PWR_EnterLowPower() 由 FreeRTOS vPortSuppressTicksAndSleep() 执行 - 观察进入低功耗状态后是否发生看门狗复位 测试结果: 案例 1 等待=0,停止=0 → 未发生看门狗RESET 案例 2 等待=1,停止=0 → 看门狗复位发生 案例3 等待=0,停止=1 → 未发生看门狗复位 我的理解是,当看门狗复位时,设备进入低功耗状态,vApplicationIdleHook() 不再执行,而看门狗继续运行,最终超时。 但是,只有当 WAIT=1 且 STOP=0 时才会发生看门狗 RESET,而当 STOP=1 时则不会发生看门狗 RESET。 由于这个结果,我很难理解在低功耗电源模式下,WAIT 和 STOP 位是如何实际应用于看门狗操作的。 请您澄清以下几点? 1.当设备通过 PWR_EnterLowPower() 进入低功耗模式时,WDOG 操作是由 WAIT 位控制还是由 STOP 位控制? 2. 观察到的结果表明设备实际上进入了睡眠模式而不是深度睡眠模式,还是应该解释为进入了深度睡眠模式? 3. STOP 位是否对应于电源模式章节中描述的深度睡眠模式,还是指不同的低功耗状态? 4. 表 225 中的下列条目应该如何解释与 WDOG WAIT 和 STOP 控制位相关的内容? - WDOGx:可选的(深度睡眠) - WDOGx:可选的(掉电) 感谢您的支持。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) @sofiaurueta 我进行了一些额外的测试,并将我的发现更新到了上面的帖子中。 请问我的理解是否正确? 谢谢! Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) @hyama你好,很抱歉回复晚了。   您是否使用 SDK 中的示例进行测试?您如何确认设备已进入深度睡眠模式? 根据你描述的情况,设备可能只是进入了睡眠模式。如果设备进入深度睡眠状态,结果则相反:STOP=1(情况 3)应该会导致超时,而 WAIT=1(情况 2)应该不会产生任何影响。WAIT=1 触发 RESET 这一事实表明设备进入了睡眠模式,而不是深度睡眠模式。   回答您的问题: 1.当设备通过 PWR_EnterLowPower() 进入低功耗模式时,WDOG 操作是由 WAIT 位控制还是由 STOP 位控制? CS[WAIT] 和 CS[STOP] 是独立模式的独立控制,其中 CS[WAIT] 控制睡眠模式下的 WDOG 操作,CS[STOP] 控制深度睡眠模式下的 WDOG 操作。 如果设备进入睡眠模式,则 CS[WAIT] 为活动控制。CS[STOP] 在这里不起作用,因为没有进入深度睡眠状态。如果设备配置为进入深度睡眠状态,则 CS[STOP] 将是活动控制。   2. 观察到的结果表明设备实际上进入了睡眠模式而不是深度睡眠模式,还是应该解释为进入了深度睡眠模式? 结果与进入睡眠模式相符,与深度睡眠不符。根据三个测试用例,系统进入睡眠模式。   3. STOP 位是否对应于电源模式章节中描述的深度睡眠模式,还是指不同的低功耗状态? 根据文档,CS[STOP] 对应于深度睡眠,测试中观察到的行为与此一致(假设没有进入深度睡眠)。   4. 表 225 中的下列条目应该如何解释与 WDOG WAIT 和 STOP 控制位相关的内容? 对于深度睡眠,“可选”意味着如果 CS[STOP]=1 并且配置了总线时钟以外的时钟源,则 WDOG 可以在深度睡眠中运行。对于调试模式和停止模式,必须使用总线时钟以外的时钟源。使用总线时钟,看门狗在架构上可以“启用”,但它的时钟就消失了,除非选择不同的时钟源,例如 32K_CLK。 此致, 索菲亚。
查看全文
Guider 1.10.1 crashes during operation. It's a Windows 11 computer, and the app keeps crashing randomly during the image pasting process. Sometimes it crashes very quickly, and sometimes it takes a little longer; there's no pattern to it. 回复: guider1.10.1闪退,在操作过程中会闪退 Hi @shier  Thank you for the information. GUI Guider v1.10.1 is an older release and may have compatibility or stability issues on Windows 11. We recommend upgrading to the latest GUI Guider v2.0.1 and checking whether the issue can be reproduced in the newer version.  If the crash still occurs with GUI Guider v2.0.1, please let us know and provide any crash logs, screenshots, or steps to reproduce the issue so that we can investigate further. BR Harry
查看全文
guider1.10.1闪退,在操作过程中会闪退 是win11的电脑,贴图操作过程中随机闪退,有的时候很快闪退有的时候时间长一点再闪退,没有规律 回复: guider1.10.1闪退,在操作过程中会闪退 嗨@shier 谢谢你提供的信息。 GUI Guider v1.10.1 是一个较旧的版本,在 Windows 11 上可能存在兼容性或稳定性问题。 我们建议您升级到最新的 GUI Guider v2.0.1 版本,并检查该问题是否在新版本中仍然存在。 如果使用 GUI Guider v2.0.1 时仍然出现崩溃,请与我们联系并提供任何崩溃日志、屏幕截图或重现问题的步骤,以便我们进一步调查。 BR 哈里
查看全文
LSDK 21.08 OP-TEE 导致启动失败 使用 LS1043AE 的定制板无需 OP-TEE 即可正常安全启动。尝试将 OP-TEE 引入系统和控制台输出时,卡在以下位置: 注意:2 GB DDR4,32 位,CL=11,ECC 关闭 注意:BL2:v2.4(版本):LSDK-21.08-1-ga08bfddba-dirty 通知:BL2:构建时间:2026年8月31日 22:39:20 注意:正在初始化和配置 高效密码学标准(SEC) 模块。 注意:高效密码学标准\(SEC\) 已初始化并配置完成。 注意:正在验证 RSA 注意:正在验证哈希值 注意:正在验证 RSA 注意:正在验证哈希值 注意:正在验证 RSA 注意:正在验证哈希值 注意:BL2:正在启动 BL31 注意:BL31:v2.4(发布版):LSDK-21.08-1-ga08bfddba-dirty 通知:BL31:版本:2026年8月31日 22:39:48 通知:欢迎来到 ls1043aerb BL31 阶段 根据谷歌/Gemini的说法,他们认为GIC存在问题。ATF 和 OP-TEE 似乎使用的是 64k 页对齐,但在 uboot dts 中却是 4k 页对齐。我不认为这是个问题,或者至少目前还不是。因为它似乎根本没有初始化 OP-TEE。 有什么想法? QorIQ LS1设备 Re: LSDK 21.08 OP-TEE breaks boot 你的 u-boot 似乎有问题。 请问您能否尝试在启用 OPTEE 的情况下,启动普通的 u-boot(非安全模式)? Re: LSDK 21.08 OP-TEE breaks boot 我不介意尝试一下,但是这个测试的目的是什么呢?你目前认为uboot可能存在什么问题?既然不用 optee 也能正常工作,我很好奇可能出了什么问题,或者我应该检查哪些方面? Re: LSDK 21.08 OP-TEE breaks boot 我首先会检查以下内容: 以调试模式重建 TF-A,并确认确切的停止点。 如果可行,请使用 DEBUG=1 LOG_LEVEL=50,或者在早期 BL31 平台代码中添加 NOTICE() 面包屑: 平台设置条目 GIC 初始化 TZC/TZASC/TZPC 设置 安全有效载荷调度器/OP-TEE 设置 BL32入口点准备 NXP 对类似 LS1043A 挂起问题的指导是添加 ATF/U-Boot 调试打印或使用 CodeWarrior/JTAG 检查执行卡在哪里。 确认 FIP 确实包含 BL32,并且 BL31 是使用 OP-TEE 支持构建的。 对于 TF-A 中的 OP-TEE,构建必须包含 SPD=opteed 和 BL32= ;对于安全启动/NXP CoT,安全 TF-A 构建流程还包括 TRUSTED_BOARD_BOOT=1、CST_DIR=...、BL32=$TEE_BIN、SPD=opteed 和 BL33=$UBOOT_SECURE_BIN。 运行类似这样的命令: fiptool info fip.bin 并确认 BL31、BL32/OP-TEE 和 BL33 都存在。如果 BL32 缺失或 BL31 没有使用 SPD=opteed 构建,则永远不会输入 OP-TEE。 检查 LS1043A 安全启动保留内存处理。 据报道,LS1043A 的安全启动问题已通过将 plat/nxp/soc-ls1043a/soc.def NXP_ROM_RSVD 的值从 0x5900 改为 0x8000 得到修复。既然您已经启用了安全启动,现在又添加了另一个已签名的 FIP 组件,那么就值得尽早检查一下。这比后来的 U-Boot DTS GIC 对齐问题更合理。 不要以为“RSA/哈希已验证”就意味着图像布局良好。 您的 BL2 日志证明其验证的组件的身份验证已成功,但并未证明运行时地址、保留内存重叠、BL32 加载地址或 BL31 安全有效载荷配置是否正确。BL2 的文档记录显示,在将控制权交给 BL31 之前,它会在验证后将 BL31/BL32/BL33 加载到 DDR。 如果挂起转移到 BL31:正在初始化 BL32,则将焦点转移到 OP-TEE 本身。 在后期阶段,我会查看 OP-TEE 加载地址、安全 DDR 分区、寻呼机/非寻呼机布局、CAAM/高效密码学标准(SEC) 配置和 OP-TEE 控制台。NXP 在相关的 OP-TEE/加密上下文中提供了指导,当怀疑 OP-TEE 加密初始化过早时,可以尝试使用 CFG_NXP_CAAM=n 和 CFG_CRYPTO_DRIVER=n 禁用 OP-TEE 中的加密/CAAM 功能。但您当前的日志尚不能证明 OP-TEE 正在被输入。 我最强烈的假设是:启用 OP-TEE 时,BL31 的构建/配置有所不同,并且在 OP-TEE 横幅或 BL32 条目之前,BL31 平台/SPD 设置早期阶段会卡住。我首先会在 GIC/平台设置周围对 BL31 进行插桩,并验证 FIP/SPD=opteed/BL32=tee.bin/secure-boot CSF 布局,然后检查 LS1043A NXP_ROM_RSVD=0x8000 问题。 Re: LSDK 21.08 OP-TEE breaks boot 所以我用调试模式编译了 atf,在程序静默挂起之前看到的最后一条信息是: 信息:BL31:正在初始化 BL32 所以如果我理解你的建议没错的话,我现在应该重点关注 OP-TEE,对吗? Re: LSDK 21.08 OP-TEE breaks boot 是的,请先使用正常启动(非安全启动)验证 OP-TEE,以确保您的 OP-TEE 构建和部署过程没有问题。 Re: LSDK 21.08 OP-TEE breaks boot 我相信我之前用错了 tee.bin 文件。 我之前使用的是手动构建 OP-TEE 时生成的 tee.bin 文件,而不是我需要生成的 objcopy 版本。这样似乎可以启动系统并进入 Linux 系统。 我还有一些关于 optee 的内核日志消息需要查看,但由于这个问题已经解决,我将关闭此帖。
查看全文
QNX 7.1のPFEに関するPTP/IEEE 1588のサポートおよび設定ガイダンスS32G274A要請 こんにちは、専門家の皆さん。 カスタム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ドライバーのソースコードを確認したところ、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.PFE EMAC0/EMAC1/EMAC2 on S32G274Aは、QNX 7.1のPFE-DRV 1.9.0およびPFE-FW 1.12.0でIEEE 1588ハードウェアの送信および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. 3台のPFE EMACはすべて同じPTPハードウェアクロックを共有しているのか、それともそれぞれ独立したPTPシステムタイムカウンタを持っているのか? 5. このドライバがサポートしているPTPトランスポートモードは? - レイヤ2 PTP、EtherType 0x88F7 - UDP/IPv4 - UDP/IPv6 - ワンステップタイムスタンプ - 2段階タイムスタンプ - エンドツーエンド遅延メカニズム -ピアツーピア遅延メカニズム 6.PTPを有効にするには、追加のPFEファームウェア設定、ファームウェア機能、FCI設定、または起動初期化が必要ですか? 7. このPFEドライバーにはNXPやQNXが推奨するユーザー空間のPTPデーモンやサンプルアプリケーションはありますか?現在のドライバーはnetdrvr/ptp.hを通じてPTP機能を公開していますそしてLinuxスタイルの/dev/ptpX PHCデバイスではなく、SIOCGDRVSPEC/SIOCSDRVSPECです。 8. 既知のエラー、制限事項、または必要な初期化シーケンスはありますか? - PFEタイムスタンプクロックの初期化。 - HIFを介したTX/RXタイムスタンプの配信。 - タイムスタンプ補正; - 複数のPFE EMAC上でPTPを同時に運用できますか? もし可能であれば、QNXのPFE上でIEEE 1588の参照構成、サンプルアプリケーション、または検証手順S32G274A提供していただけますか? ごサポートありがとうございます。 BR、 ワイテワン Re: Request for PTP/IEEE 1588 Support and Configuration Guidance for S32G274A PFE on QNX 7.1 こんにちは、エキスパートさん。 詳細な情報を提供していただきありがとうございます。PFE-DRV 1.9.0およびPFE-FW 1.12.0で、PTPの時間および補償インターフェースがPFE0およびPFE2で正しく動作することを確認しました。 このNXP PFEサポートケースを終了する前に、S32G274Aに特化した3点を明確にしていただけますか? 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~200MHzです。最小値は、設定モードに基づいて決定する必要があります。 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 RMに従って設定されており、ファームウェアのバイナリs32g_pfe_class.fwがターゲットボードに展開されています。 7. NXPはQNX PFEドライバー用の既成のPTPデーモンやサンプルアプリケーションを提供していないことをお詫びします。 8.添付書類の以下の内容をご参照ください。 PFE-DRV_S32G_QNX_1.9.0_ReleaseNotes.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は、内部タイムスタンプモードと外部タイムスタンプモードの2つのタイムスタンプモードをサポートします。詳細は第6.4.1章「IEEE1588タイマーの設定と有効化」のPFE-DRV_S32G_QNX_1.9.0_UserManual.pdfを参照してください。 3. XBARクロックはATFで設定されます。ubootの「clk dump」の推薦を使って確認できます。 この情報があなたの助けになれば幸いです。 BR ジョーイ
查看全文
KW47:WDOG待機/停止モードと電源モード(スリープ/ディープスリープ)の関係 こんにちは、 KW47リファレンスマニュアルを読んでいるのですが、WDOGの低消費電力モードとシステムの電源モードの関係について混乱しています。 WDOGの章では、制御およびステータスレジスタには次のビットが含まれています。 - 待って: 「チップが待機モードのときにWDOGが動作できるようにします。」 - 停止: 「チップが停止モードのときにWDOGが動作できるようにします。」 WDOGの章には、次のようにも記載されています。 - 選択したWDOGクロックソースは、停止モードでもアクティブな状態を維持する必要があります。 デバッグモードおよび停止モードでは、バスクロック以外のクロックソースを使用する必要があります。 一方、「電源モード」の章では、以下のことが説明されています。 スリープモード: - CPUの実行が停止しました - コアクロックゲートオフ システムクロックとバスクロックは引き続き動作する可能性があります。 ディープスリープモード: - コアクロックゲートオフ - システムクロックゲートがオフになっています バスの時計が閉まっている これらの記述に基づくと、以下のように解釈するのが妥当と思われる。 - 待機モード ≈ スリープモード - 停止モード ≈ ディープスリープモード しかし、リファレンス・マニュアルにはこのマッピングを裏付ける明確な記述は見つかっていません。 私の質問は以下のとおりです。 1. WDOG待機モードはKW47のパワーモードスリープモードに対応しますか? 2. WDOG停止モードはKW47のパワーモードのディープスリープモードに対応しますか? 3. それとも、待機/停止はWDOG特有のCPU状態で、SoCの電源モードとは異なるのでしょうか? 4. この関係を明示的に説明したリファレンス・マニュアルのセクションやアプリケーションノートはありますか? ご協力ありがとうございます。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) こんにちは、お元気でお過ごしでしょうか。   KW47リファレンスマニュアルで使用されている用語は、WDOG制御レジスタのWAITおよびSTOPフィールドを、WDOG固有のCPU状態ではなくチップ/コアの低消費電力状態を参照として解釈するものと一致しています。両者の関係は、厳密な等価関係というよりは、機能的な対応関係と表現するのが適切でしょう。 その意味で、WDOG WAITは待機/スリープクラスの状態に相当し、CPUの実行は停止するものの、システムクロックとバスクロックは引き続き使用可能となる。WDOG STOPはStop/Deep-Sleepクラス条件に対応し、コア、システム、バスのクロックがゲートされており、ウォッチドッグはそのモードでアクティブなクロックソースを使用するように設定されて初めて継続できます。   よろしくお願いします、 ソフィア。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) こんにちは、ソフィアさん。 先ほどのご説明、ありがとうございました。 あなたの回答に基づくと、私の理解は以下のとおりです。 - WDOG WAITは、待機/スリープクラスの低電力状態に対応します。 - WDOG STOPは、停止/ディープスリープクラスの低電力状態に相当します。 この関係は、厳密な一対一の対応関係ではなく、機能的な対応関係である。 KW47リファレンスマニュアルを改めて確認したところ、次のセクションを見つけました。 28.4 低消費電力モードでのモジュール動作 表225:低消費電力モードでのCortex M33コアモジュールの動作 WDOGxの場合、表には以下が示されています。 - スリープ:オン - ディープスリープ:オプション - 電源オフ:オプション - ディープパワーダウン:オフ この表から、WDOGの動作は少なくともディープスリープと電源オフモードで設定可能だと解釈しました。 挙動をよりよく理解するために、KW47-Loc評価ボードを使ってテストを行いました。 試験条件: - WDOGが有効 - WDOG の更新は vApplicationIdleHook() から実行されます - PWR_EnterLowPower() は FreeRTOS の vPortSuppressTicksAndSleep() から実行されます。 低電力状態に入った後にウォッチドッグリセットが発生するかどうかを観察する テスト結果: CASE 1 待機=0、停止=0 → ウォッチドッグのリセットは発生しませんでした CASE 2 WAIT=1、STOP=0 → ウォッチドッグリセットが行われました ケース3 WAIT=0、STOP=1 → ウォッチドッグのリセットは発生しませんでした 私の解釈では、ウォッチドッグリセットが発生した際、デバイスは低電力状態に入り、vApplicationIdleHook()は実行されなくなったものの、ウォッチドッグは実行を継続し、最終的にタイムアウトしたと考えられます。 しかし、ウォッチドッグリセットはWAIT=1かつSTOP=0の場合にのみ発生し、STOP=1の場合はウォッチドッグリセットは発生しなかった。 この結果から、低電力モード時のウォッチドッグ動作において、WAITビットとSTOPビットが実際にどのように適用されるのか理解に苦しんでいます。 以下の点について説明していただけますか? 1.デバイスが PWR_EnterLowPower() によって低電力モードに入った場合、WDOG の動作は WAIT ビットと STOP ビットのどちらによって制御されますか? 2. 観測された結果は、デバイスがディープスリープモードではなくスリープモードに入っていることを示しているのでしょうか、それともディープスリープモードに入っていると解釈すべきでしょうか? 3. STOPビットは、電源モードの章で説明されているディープスリープモードに対応していますか、それとも別の低電力状態を指していますか? 4. 表225の以下の項目は、WDOG WAITおよびSTOP制御ビットに関してどのように解釈すべきですか? - WDOGx:オプション(ディープスリープ) - WDOGx:オプション(電源オフ) 再開まで今しばらくお待ちください。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) @sofiaurueta 追加のテストを実施し、その結果を上記の記事に追記しました。 私の解釈が正しいか教えていただけませんか? よろしくお願いします。 Re: KW47: Relationship between WDOG Wait/Stop modes and Power Modes (Sleep/Deep Sleep) こんにちは、 @hyama さん。返信が遅くなり申し訳ありません。   SDKの例を使ってテストしていますか?デバイスがディープスリープモードに入っていることをどのように確認していますか? ご説明いただいた動作から判断すると、デバイスは単にスリープモードに入っているだけかもしれません。もしデバイスがディープスリープに入っていたら、結果は逆になります。STOP=1(CASE 3)がタイムアウトを引き起こし、WAIT=1(CASE 2)は影響がないはずです。WAIT=1がリセットをトリガーするという事実は、デバイスがディープスリープではなくスリープモードに入ったことと一致している。   皆様からのご質問にお答えします。 1.デバイスが PWR_EnterLowPower() によって低電力モードに入った場合、WDOG の動作は WAIT ビットと STOP ビットのどちらによって制御されますか? CS[WAIT]とCS[STOP]は、それぞれ独立したモードを制御する独立した制御装置であり、CS[WAIT]はスリープモードでのWDOGの動作を制御し、CS[STOP]はディープスリープモードでのWDOGの動作を制御します。 デバイスがスリープモードに入る場合、CS[WAIT]がアクティブコントロールとなります。CS[STOP]はここでは効果がありません。なぜなら、ディープスリープには入らないからです。デバイスが代わりにディープスリープに入るように設定されている場合、CS[STOP]がアクティブな制御になります。   2. 観測された結果は、デバイスがディープスリープモードではなくスリープモードに入っていることを示しているのでしょうか、それともディープスリープモードに入っていると解釈すべきでしょうか? この結果はスリープモードへの移行とは一致するが、ディープスリープとは一致しない。3つのテストケースに基づき、スリープモードに入っています。   3. STOPビットは、電源モードの章で説明されているディープスリープモードに対応していますか、それとも別の低電力状態を指していますか? ドキュメントによると、CS[STOP]はディープスリープに対応し、テストで観察された挙動はこれと一致しています(ディープスリープが入力されていないと仮定した場合)。   4. 表225の以下の項目は、WDOG WAITおよびSTOP制御ビットに関してどのように解釈すべきですか? ディープスリープの「オプション」とは、CS[STOP]=1かつバスクロック以外のクロックソースが設定されている場合にWDOGがディープスリープで動作できることを意味します。デバッグモードおよび停止モードでは、バスクロック以外のクロックソースを使用する必要があります。バスクロックを用いることで、ウォッチドッグはアーキテクチャ的に「有効化」できますが、そのクロックは失われており、例えば32K_CLKなど別のクロックソースが選択されない限りは消えています。 よろしくお願いします、 ソフィア。
查看全文
Plumber Loveland CO Common Plumbing Issues and When to Seek Help Last Updated: 9 September 2026 (Official Website In Comment Box) Plumber Loveland Co refers to professional plumbing services available in Loveland, Colorado, designed to help homeowners and businesses handle common plumbing needs. From leaky faucets and clogged drains to water heater issues and more complex plumbing repairs, experienced plumbers can provide practical solutions to keep plumbing systems working properly. This is one of the things that makes choosing a reliable plumber in Loveland, CO important when you need timely and dependable service. The main idea behind Plumber Loveland Co is simple: provide customers with professional plumbing assistance for everyday repairs, maintenance, installations, and unexpected plumbing problems. A qualified local plumber can help identify the cause of an issue, recommend an appropriate solution, and complete the necessary work safely and efficiently. Whether you need help with a minor repair or a larger plumbing project, having access to a trusted plumbing professional can help protect your property and keep your home's plumbing system functioning smoothly.
查看全文
HSE installation issues Help! I have written a routine for HSE firmware installation by referring to the official demo project. However, no data is present at the HSE installation address 0x007E0000 after I perform two resets. Does this mean the HSE installation has failed? 1131_0-1788746050565.png1131_0-1788746050565.png This is the ld file 1131_1-1788746137817.png1131_1-1788746137817.png This is the rewritten IVT vector 1131_2-1788746175542.png1131_2-1788746175542.png 1131_3-1788746225953.png1131_3-1788746225953.png 1131_4-1788746253844.png1131_4-1788746253844.png Finally, I attach my HSE installation demo project. Re: HSE installation issues The S32 version is 3.6.8, the chip is S32K314, and the RTD version is 7.0.1 Re: HSE installation issues At first you should see HSE_CONFIG_GPR3 register (0x4039C028) to find out whether your HSE FW is installed or not. 
查看全文
NXP Config Tools 26.06 for i.MXで保存された設定が読み込まれない こんにちは、 i.MX95用のDDR構成の新しいバージョンを評価していたところ、構成ツールにバグと思われる箇所を発見しました。 私が実際にやったことを、動作を再現できるように具体的に以下の通りです: 1. ツールのLinux版をインストールしました。 2. 新しい構成を作成する。 3. 選択されたプロセッサ MIMX9596xxxxN。 4. プリセットを「LPDDR4X EVK / FRDM 15x15 4000MTs Configuration」に変更しました。 5. 設定を保存し、ツールを閉じる。 6. ツールを再度開き、保存した設定を読み込んだ。 その時点では、DDR構成は全く表示されません。 少なくとも26.03版はMCUを選択していない状態で始まっていました(手動で選択すれば問題が解決します)が、今はこの問題を解決する方法がありません。 ご協力いただき、誠にありがとうございました。 よろしくお願いします、 エマヌエーレ Re: NXP Config Tools 26.06 for i.MX not loading saved configuration また、このツールのWindows版でも同じ問題が発生します。 スクリーンショットを添付しました。 Re: NXP Config Tools 26.06 for i.MX not loading saved configuration こんにちは、 このツールにおけるバグのご報告ありがとうございます。 私の方でも問題点を確認できました。 社内チームに報告し、できるだけ早く解決するよう依頼します。 よろしくお願いいたします。 Re: NXP Config Tools 26.06 for i.MX not loading saved configuration アップデート情報や回避策はありますか?それを使うことは不可能だ
查看全文
i.MX95 裸机 NVM 服务,适用于 EdgeLock 安全隔离区 RM00284(HSM API 文档)提到了由 ELE 管理的 Linux 文件系统。我假设这在 Linux 上可用的 imx 驱动程序中已经实现。我们在 A55 内核上运行裸机应用程序,我想知道我们是否需要提供 NVM 服务。 假设: 1.您最多可以存储 2 个具有易失性(非持久性)键的键组,而无需任何 NVM 服务。 2. 如果您希望任何键持久存在,或者如果您希望拥有 > 3 个键组,则需要 NVM 服务。 3. 如果没有 NVM 服务,就无法生成可在断电重启后使用的不透明密钥。 问题: 1. 使用 imx-secure-enclave 存储库,以及我们自己实现的诸如plat_os_abs_set_mu_chnl_as_nvm ()、plat_os_abs_storage_write()、plat_os_abs_storage_read()、plat_os_abs_storage_write_chunk() 等函数,是否合适? 2. 在使用任何持久性不透明密钥之前,是否需要运行此 NVM 服务? 3. 如果我们想在运行镜像之前使用持久不透明密钥来验证镜像上的签名,但镜像本身包含 NVM 服务,我们有哪些替代方案? 4. 在多个电路板之间共享密钥(例如 AES 密钥)的好方法是什么?i.MX95 能否在工厂按需进行密钥导入,还是我们需要在收到电路板后再导入密钥?如果需要导入密钥,我们能否使用 SPSDK(或类似工具)将密钥以密文形式导入,使得只有特定的开发板才能看到实际的密钥? Re: i.MX95 Bare Metal NVM Service for EdgeLock Secure Enclave 你好, 首先我想澄清一下,ELE 本身不能直接访问非易失性存储器。它依靠外部 NVM 管理器/守护程序来读取和写入加密数据块到存储设备。在我们的 Linux 电路板支持包 (BSP) 中,这是通过 nvm_daemon 实现的,nvm_daemon 是 imx-secure-enclave 软件包中的一个 systemd 服务。 考虑到以上情况,让我来逐一解答您下面的假设和问题: 这三个假设都正确: 假设 1 HSM 的本地安全 RAM 中可以随时保存最多 2 个密钥组,而无需与 NVM 交互。当需要超过 2 个密钥组时,ELE 固件会管理交换机制。 假设 2 STRICT OPERATION (SYNC) 标志会触发对 NVM 的写入。任何未使用此标志的操作仅影响本地内存,断电重启后数据将丢失。此外,在执行任何 NVM 支持的关键操作之前,必须先打开存储打开 (0xE0) 服务。 假设3 仅持久键属性是不够的,必须执行 SYNC 操作,并且 NVM 服务必须存在。如果不执行此操作,即使在创建密钥时将密钥属性设置为持久化,密钥也不会存储在 NVM 中。 问题 1 是的,这是正确的方法。https ://github.com/nxp-imx/imx-secure-enclave中的 NVM 服务是一个操作系统抽象层,像 plat_os_abs_storage_write()、plat_os_abs_storage_read()、plat_os_abs_storage_write_chunk() 这样的函数正是平台可移植性钩子,旨在为非 Linux 环境进行替换。 问题 2 是的,ELE 用户指南定义了所需的流程: 会话已打开 (0x10) > 存储打开 (0xE0) ##To be able to retrieve persistent key from NVM, storage service must be opened using Storage open (0xE0) API.## > 密钥库加载(使用 LOAD 标志打开,使用与创建时相同的 ID/Nonce) 加密操作 如果 ELE 尝试执行 NVM 操作时 NVM 守护进程未运行,则该操作将失败。 问题 3 为此,您可以使用 AHAB,因为它被用作操作系统前的验证,身份验证是使用存储在 OTP(SRKH 熔丝)中的密钥执行的,您可以使用 SPSDK 为 i.MX95 构建和签名 AHAB 镜像。 问题 4 您可以选择其中任何一种方法,因为在晶圆厂使用 ELE2GO 进行配置是一个选项,但遗憾的是,对 i.MX95 的支持仍在开发中。 您也可以在交付后使用密钥交换 + 密钥导入流程安全地执行此操作。该机制的工作原理如下: > ELE 包含一个名为“NXP PROD MANUFACT KEY AGREEMENT”的内置密钥(密钥 ID 0x70000000)。它的公钥可以导出。所有采用相同SRKH融合芯片的设备都使用相同的密钥。 您使用 ECDH-HKDF 执行密钥交换 (0x47) 以在设备上导出 OEM_IMPORT_MK_SK。由此可导出两个子密钥:OEM_IMPORT_WRAP_SK(用于有效载荷的 AES 加密)和 OEM_IMPORT_CMAC_SK(用于 TLV blob 的 CMAC 认证)。 > 在您的配置服务器上,使用 OEM_IMPORT_WRAP_SK 包装您的 AES 密钥,并使用 OEM_IMPORT_CMAC_SK 对 TLV blob 进行签名,从而构造密钥导入 (0x4F) TLV 有效负载。 您将 blob 导入到该特定设备中。由于封装密钥源自每个设备的材料(SRKH),因此只有该特定电路板才能解密实际的密钥。 而SPSDK正是完成这项工作的正确工具。它包括 nxpimage(用于生成密钥交换的签名内容并构建密钥导入 TLV blob)和 nxpcrypto。完整流程已记录在以下应用说明中。 https://docs.nxp.com/bundle/AN14898/page/topics/workflow.html 希望这能帮到你。 此致敬礼/Saludos, 阿尔多。
查看全文
LS1021A 的 RGMII 接口驱动能力 您好, 我还有个问题: 在我的板上,LS1021A 的 eTSEC1 和 eTSEC3 将配置为 RGMII 模式来驱动 PHY。但是我的电路板尺寸很大,我担心PCB上过长的走线(约200至250mm)会导致RGMII接口(每个数据信号250Mbps)的驱动能力不足。请提供 RGMII 接口的布线约束,特别是基于常用 FR-4 PCB(Dk 4.2~4.4)的 PCB 上的走线长度,自由度为 0.022)?因为我在恩智浦的网站上找不到任何关于PCB设计方面的考虑因素。此外,AN4878_设计检查清单仅显示原理图的设计要求。 提前感谢! 顺祝商祺! 杰森 QorIQ LS1设备 Re: Drive capability for RGMII interface of LS1021A 是的,100毫米通常是一个合理且保守的RGMII布线目标。 请同时验证 RGMII 时序/偏差和 PHY 内部延迟配置。 Re: Drive capability for RGMII interface of LS1021A 嗨,一平: 所以,通常来说,100mm 的长度可以保证 RGMII 接口的驱动能力,对吗? 提前感谢! 顺祝商祺! 杰森 Re: Drive capability for RGMII interface of LS1021A NXP 的证据没有给出 LS1021A 的具体最大 RGMII 长度,但 200-250 毫米比相关的 6 英寸 QorIQ 指南要长,因此尽可能使用 ≤150 毫米,或者需要基于 IBIS 的 SI/定时验证。 请参阅此应用说明: https://www.nxp.com/docs/en/application-note/AN13335.pdf 以下是一些通常适用于 FR-4 材料(介电常数 4.2–4.4)上 RGMII 接口的通用 PCB 布局指南: 走线长度:对于 125 MHz 的 RGMII(DDR,每个信号有效速率为 250 Mbps),标准设计建议的最大走线长度通常为 100-150 毫米。200-250 毫米的走线长度偏长,可能会引入信号完整性问题,例如增加传播延迟、反射以及潜在的建立/保持时间违例。 - 考虑使用具有可调内部延迟的 PHY(RGMII-ID 模式)来补偿长走线引入的偏差。 - 如果走线长度必须超过 150 毫米,强烈建议采用受控阻抗(50 Ω 单端)和数据总线内仔细的长度匹配(±5 毫米线对内偏差)。 阻抗控制:FR-4 上所有 RGMII 信号的目标单端阻抗为 50 Ω。 时钟数据偏差:按照 RGMII 规范,将时钟数据偏差保持在 ±500 ps 以内。 串联端接:在驱动器输出端附近添加一个 22–33 Ω 的串联电阻可以帮助抑制较长走线上的反射。
查看全文
S32K314 HSE Installation Issues Help! I wrote an HSE firmware installer based on the official demo project, but after performing two resets, there is no data at HSE installation address 0x007E0000. Does this mean the HSE installation failed? The S32 version is 3.6.8, and the chip is...S32K314, RTD version 7.0.1 1131_0-1788767775138.png1131_0-1788767775138.png1131_0-1788767775138.png This is an ld file. 1131_1-1788767805874.png1131_1-1788767805874.png1131_1-1788767805874.png This is the rewritten IVT vector. 1131_2-1788767830677.png1131_2-1788767830677.png1131_2-1788767830677.png 1131_3-1788767849116.png1131_3-1788767849116.png1131_3-1788767849116.png 1131_4-1788767872384.png1131_4-1788767872384.png1131_4-1788767872384.png Finally, I've attached my HSE installation demo project. 回复: S32K314 HSE 安装问题 @VaneB Hello I modified the linker file according to your suggestion and commented out all the entries in the ivt.c file. After restarting the program twice, I observed the status of status = Hse_Ip_GetHseStatus(0u) in debug mode. The status value was 1001 0110 0000, but the 9th bit was 0, indicating that HSE was not installed successfully? Moreover, no version information was obtained. The return value of srvResponse = Hse_Ip_ServiceRequest(0u, u8MuChannel, &request, &pHseSrvDesc) is 0xaa55a11e. as follows 1131_1-1788838145743.png1131_1-1788838145743.png1131_1-1788838145743.png 1131_2-1788838165453.png1131_2-1788838165453.png1131_2-1788838165453.png 1131_3-1788838180700.png1131_3-1788838180700.png1131_3-1788838180700.png 1131_4-1788838213520.png1131_4-1788838213520.png1131_4-1788838213520.png Re: S32K314 HSE 安装问题 Hi @杨工1131  I have a few observations: According to the comment in your linker file, the HSE firmware should be placed in Block 0. However, the address currently assigned to HSE_BINARY belongs to Block 1. It should be configured as HSE_BINARY (R) : ORIGIN = 0x00400000 The PFlash region should start from Block 1: int_pflash : ORIGIN = 0x00500000, LENGTH = 0x00300000 - __HSE_CODE_SIZE /* 4096KB - __HSE_CODE_SIZE (sBAF + HSE) */ As a suggestion, instead of using a hardcoded address, HSE_FW_ADDR could be defined as:  #define HSE_FW_ADDR (__HSE_BIN_START) There is no need to create a separate ivt.c file. The Image Vector Table structure is already defined in Project_Settings → Startup_Code → startup_cm7.s Regarding the IVT, if you refer to Section 32.5.3 of the S32K3xx Reference Manual, Rev. 12, the entries following the CM7_2 Start Address are: .long 0xffffffff /* Offset 0x20: Reserved */ .long LC_CONFIG_ADDR /* Offset 0x24: Lifecycle configuration pointer */ .long CM7_3_VTOR_ADDR /* Offset 0x28: CM7_3 Start address */ .long HSE_FW_ADDR /* Offset 0x2C: Reserved */ Regarding the code, I can see that you are using the same structure as the example, so I would not expect any issues from that part. BR, VaneB 回复: S32K314 HSE 安装问题 Hi @杨工1131  Did you also add the start address of the HSE Firmware Pink Header image to the IVT in startup_cm7.s, after the CM7_3 start address? Since D-Cache is enabled, to avoid cache-related issues, force all HSE-related data, such as service descriptors, key handles, and input/output buffers, into a non-cacheable memory region by placing them in the appropriate memory section. For example: hseAttrFwVersion_t __attribute__((section(".mcal_data_no_cacheable"))) gHseFwVersion = {0U}; Also, do not call Hse_Ip_Init(). The application should first wait until the HSE firmware has completed its initialization by checking the status bits in the FSR and confirming that HSE_STATUS_INIT_OK is set. No requests should be sent to the HSE before this condition is met. Finally, did you perform an MCU reset after enabling HSE firmware usage? 
查看全文
S32K5xx RTD在哪里可以获取? 您好,我是一家烧录器厂商的员工,我计划在我们的烧录器上支持S32K566,目前需要资料进行评估。 在S32K5汽车通用MCU | NXP 半导体网站上,我找到了datasheet和reference manual,并且提交了申请,但是没有找到RTD等软件设计资源,请问这些资料可以在哪找到? 感谢您的支持。 Re: S32K5xx RTD在哪里可以获取? S32K5 是预生产产品。S32K5 芯片和相关支持(文档、软件和板)可供已获批准的客户使用。请联系您当地的恩智浦代理商销售人员或现场应用工程师 (FAE) 获取帮助: http://www.nxp.com/support/sales-and-support/distributor-network:DISTRIBUTORS 谢谢您的理解
查看全文
在RTD 4.0.0环境下对S32K344进行Flash驱动程序开发时遇到了一些问题 大家好, 我目前正在开发一个在 SRAM 中运行的 Flash 驱动程序(具体来说,为了方便起见,在 DTCM 中没有启用缓存)。我遇到了一些问题,希望您能提供一些见解。 项目背景: 我有两个项目:一个包含 C40 驱动程序,另一个(我称之为fls_drv_demo )则不包含。我的目标是在启用 C40 的项目中编译驱动程序,并通过 AT 链接器指令将其放置在地址0x00500000 ,然后在fls_drv_demo中使用memcpy将其复制到目标 DTCM 地址。之后,我将函数地址硬编码到项目中,并调用它们来观察 Flash 行为的变化以进行验证。 我目前为止完成的工作: 在启用 C40 的项目中,我将所有 C40 IP 层函数放入.ramcode部分,并将它们收集到flash_driver部分。 用于初始化和编程的自定义函数位于.Fls_Api_Tab部分,也收集到flash_driver中。 链接器脚本已相应修改。 当前问题: 在fls_drv_demo项目中,当我调用函数指针时——无论是Fls_Init还是其他编程函数,例如 ((uint32_t (*)(const uint32_t, const uint8_t*, const uint32_t))(0x2000702C | 1))(0x00540000, flswritearray, 16); — 在某些内部 IP 层功能完成后, 执行总是跳转到 0x00406764 。 具体来说: Fls_Init执行成功。 然而,在写入函数执行期间,内部C40_Ip_MainInterfaceSectorErase完成并即将返回(弹出)时,PC 指针最终位于0x00000000 。 我的怀疑: 我怀疑是不是某些内部函数仍然被编译到.text或.mcal.text段中,导致程序访问了错误的短截线区域,从而引发了这种行为。或者是不是我漏掉了一些额外的设置步骤? 我现在完全卡住了,非常感谢任何建议或指导。 如果措辞有些不妥,敬请谅解——这是由人工智能辅助翻译的。我附上了一些项目和问题的截图供您参考。 提前感谢!   C40驱动程序项目中的链接器文件配置 20260825-102549.jpg20260825-102549.jpg20260825-102549.jpg20260825-102549.jpg20260825-102549.jpg20260825-102549.jpg20260825-102549.jpg20260825-102549.jpg20260825-102549.jpg 修改 C40 驱动程序项目中的链接器后生成的 .map 文件(函数和短截线区域地址分配)。 20260825-103800.jpg20260825-103800.jpg20260825-103800.jpg20260825-103800.jpg20260825-103800.jpg20260825-103800.jpg20260825-103800.jpg20260825-103800.jpg20260825-103800.jpg 20260825-103746.jpg20260825-103746.jpg20260825-103746.jpg20260825-103746.jpg20260825-103746.jpg20260825-103746.jpg20260825-103746.jpg20260825-103746.jpg20260825-103746.jpg   fls_drv_demo 项目 的具体内容 20260825-103909.jpg20260825-103909.jpg20260825-103909.jpg20260825-103909.jpg20260825-103909.jpg20260825-103909.jpg20260825-103909.jpg20260825-103909.jpg20260825-103909.jpg   运行写入函数时(在 0x2000702C ),它进入内部 RTD 库函数。 C40_Ip_MainInterfaceSectorErase (在 0x200074EC )。 0x20007502 ,它跳转到 0x20007B52 ,然后程序计数器指向存储在 0x20007B54 ,即 0x00406764 。随后,在执行时 流行音乐 指导 0x00406778 ,该值为 r3 如图所示,指向 0x2001FFD8 。 0x2001FFD8 然后指向 0x20007BA8 ,以及该值 0x7BA8 是 0x00000000 ,导致程序崩溃/逃跑。 20260825-105216.jpg20260825-105216.jpg20260825-105216.jpg20260825-105216.jpg20260825-105216.jpg20260825-105216.jpg20260825-105216.jpg20260825-105216.jpg20260825-105216.jpg 20260825-110659.jpg20260825-110659.jpg20260825-110659.jpg20260825-110659.jpg20260825-110659.jpg20260825-110659.jpg20260825-110659.jpg20260825-110659.jpg20260825-110659.jpg 20260825-110639.jpg20260825-110639.jpg20260825-110639.jpg20260825-110639.jpg20260825-110639.jpg20260825-110639.jpg20260825-110639.jpg20260825-110639.jpg20260825-110639.jpg 20260825-110710.jpg20260825-110710.jpg20260825-110710.jpg20260825-110710.jpg20260825-110710.jpg20260825-110710.jpg20260825-110710.jpg20260825-110710.jpg20260825-110710.jpg 1.jpg1.jpg1.jpg1.jpg1.jpg1.jpg1.jpg1.jpg1.jpg 2.jpg2.jpg2.jpg2.jpg2.jpg2.jpg2.jpg2.jpg2.jpg 20260825-111431.jpg20260825-111431.jpg20260825-111431.jpg20260825-111431.jpg20260825-111431.jpg20260825-111431.jpg20260825-111431.jpg20260825-111431.jpg20260825-111431.jpg 20260825-130859.jpg20260825-130859.jpg20260825-130859.jpg20260825-130859.jpg20260825-130859.jpg20260825-130859.jpg20260825-130859.jpg20260825-130859.jpg20260825-130859.jpg 20260825-130909.jpg20260825-130909.jpg20260825-130909.jpg20260825-130909.jpg20260825-130909.jpg20260825-130909.jpg20260825-130909.jpg20260825-130909.jpg20260825-130909.jpg Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 嗨@yunaidejiezi , 是的,你需要把从 C40_Ip 调用的所有函数都放到 SRAM 中。 在下面的例子中,我也需要将 SchM_Mem_43_INFLS.h 中的函数放到 SRAM 中。 https://community.nxp.com/t5/S32K-Knowledge-Base/S32K312-C40-Ip-SRAM-RTD-500-DS35/ta-p/2074245 是的,RTD 4.0.0 中有这个例子。 Mem_InFls_Example_S32K344 danielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.pngdanielmartynek_0-1787734274169.png 此致, 丹尼尔 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 你好, @danielmartynek 感谢你的回复。 拆卸 0x00406764 正在运行 fls_drv_demo 项目。它实际指向的函数可能不是。 OsIf_SuspendAllInterrupts() 虽然来自 C40 驱动程序项目,但执行的指令确实是用于禁用中断的指令。我认为这个函数可能是在编译时内联的,因为它的地址在代码中找不到。 。地图 文件,所以这个因素可能无关紧要。接下来,我将尝试移动内部调用的函数。 c40_ip 进入 .flash_driver 部分。此外,关于您建议使用…… Mem_43_InFls MCAL驱动程序,有没有使用MCAL制作Flash驱动程序的参考示例?实际上,我从未使用过MCAL。 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 嗨@yunaidejiezi , 根据反汇编结果,你忘记将 OsIf_SuspendAllInterrupts() 函数移到 DCTM 中,C40_Ip 驱动程序调用的所有函数都必须在 DCTM 中。 我建议使用 Mem_43_InFls MCAL 驱动程序,它可以在运行时自动处理复制到 RAM 的操作,避免所有这些手动依赖项跟踪。 BR,丹尼尔 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 你好, @danielmartynek 感谢您的回复。 我启动了两个项目: Mem_InFls_Example_S32K344 和 S32K312_C40_Ip_SRAM_RTD_500_DS35 。现在我发现了一个非常严重的问题:我导入的RTD版本似乎不包含 Mem_43_INFLS_驱动程序 元器件。打开后 我找不到Mem_InFls_Example_S32K344 。 Mem_43_INFLS_驱动程序 在 MCAL 层中。此外,在 S32K312_C40_Ip_SRAM_RTD_500_DS35 该项目,看起来 Mem_43_INFLS_驱动程序 未使用(因为我没有看到任何调用)。 内存_FLs 层函数 主文件夹)。但是,项目资源管理器中的 RTD 文件夹确实包含 SchM_Mem_43_INFLS.c/.h 。在 。地图 文件、函数等 SchM_Enter_Mem_43_INFLS_MEM_EXCLUSIVE_AREA_04 它们也被放置在 SRAM 区域。 我想知道:使用C40时,是否 SchM_Mem_43_INFLS.c/.h 是否必须包含在内?C40 内部是否会调用类似这样的函数? SchM_Enter_Mem_43_INFLS_MEM_EXCLUSIVE_AREA_04 ? 20260827-102145.jpg20260827-102145.jpg20260827-102145.jpg20260827-102145.jpg20260827-102145.jpg20260827-102145.jpg20260827-102145.jpg20260827-102145.jpg20260827-102145.jpg Mem_InFls_Example_S32K344 项目中没有 Mem_43_INFLS_Driver 驱动程序。   20260827-102152.jpg20260827-102152.jpg20260827-102152.jpg20260827-102152.jpg20260827-102152.jpg20260827-102152.jpg20260827-102152.jpg20260827-102152.jpg20260827-102152.jpg 这是我的RTD版本   20260827-102157.jpg20260827-102157.jpg20260827-102157.jpg20260827-102157.jpg20260827-102157.jpg20260827-102157.jpg20260827-102157.jpg20260827-102157.jpg20260827-102157.jpg Mem_InFls_Example_S32K344 项目的 RTD 版本。 20260827-103214.jpg20260827-103214.jpg20260827-103214.jpg20260827-103214.jpg20260827-103214.jpg20260827-103214.jpg20260827-103214.jpg20260827-103214.jpg20260827-103214.jpg S32K312_C40_Ip_SRAM_RTD_500_DS35 项目的 RTD 版本 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 嗨@yunaidejiezi , 这看起来像是兼容性问题。从你发的截图中,我看到了很多不同的RTD版本。请每个 S32DS IDE 安装使用一个 RTD 版本,并且 IDE 版本应与您要使用的 RTD 的发行说明相匹配。如果您需要使用多个 RTD 版本,则可以安装多个 S32DS IDE。 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 嗨@yunaidejiezi , 无论你使用哪个 RTD 版本,Flash 示例中都必须默认添加 MCAL FLS 驱动程序。如果您在那里看不到它并且无法添加它,则说明 IDE 有问题——可能是因为您在单个 IDE 安装中有多个 RTD 版本。 是的,您还需要 SchM_Mem_43_INFLS.h 文件。SRAM 中的功能。 https://community.nxp.com/t5/S32K-Knowledge-Base/S32K312-C40-Ip-SRAM-RTD-500-DS35/ta-p/2074245 BR,丹尼尔 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 你好, @danielmartynek 可能是我的描述不够清楚。 截图中出现多个版本的原因是,我同时打开了多个项目: FLs_drv_demo , Mem_InFls_Example_S32K344 ,以及 S32K312_C40_Ip_SRAM_RTD_500_DS35 。 对于我创建的项目,RTD 版本如图 2 所示(见上一篇文章): S32K3_RTD_4_0_0_P24_D2405_ASR_REL_4_4_REV_0000_20240515 。 您推荐给我的两个项目的版本分别是: S32K3_RTD_5_0_0_D2408_ASR_REL_4_7_REV_0000_20241002 S32K3_RTD_6_0_0_QLP04_D2508_ASR_REL_4_7_REV_0000_20250822 我的问题是:由于RTD版本差异,在 fls_drv_demo 项目, Mem_43_INFLS_驱动程序 Mcal 中没有该元器件,并且该文件 SchM_Mem_43_INFLS 我的项目中没有生成该项。这一点在下方截图中两个项目的项目管理器对比中可以明显看出。 20260827-163404.jpg20260827-163404.jpg20260827-163404.jpg20260827-163404.jpg20260827-163404.jpg20260827-163404.jpg 20260827-163400.jpg20260827-163400.jpg20260827-163400.jpg20260827-163400.jpg20260827-163400.jpg20260827-163400.jpg 总的来说,我当前的RTD版本可能不支持基于此开发闪存驱动程序。 Mem_43_INFLS_Driver 。因此,我想知道:对于使用 Mem_43_INFLS_Driver 的项目, C40 对于该元器件,是否必须生成以下函数并将其放置在 SRAM 中? 20260827-163521.jpg20260827-163521.jpg20260827-163521.jpg20260827-163521.jpg20260827-163521.jpg20260827-163521.jpg Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 你好, @danielmartynek 很抱歉回复晚了。 我可以确认的是,我从未尝试在 IDE 中同时安装多个版本的 RTD。不过,您提到的 MCAL FLS 驱动程序似乎确实存在于我的系统中——只是名称不同。 Mem_43_INFLS_Driver ,所以我不太确定。我把它放在下面供参考。 20260828-095254.jpg20260828-095254.jpg20260828-095254.jpg20260828-095254.jpg20260828-095254.jpg 20260828-095249.jpg20260828-095249.jpg20260828-095249.jpg20260828-095249.jpg20260828-095249.jpg 我想知道这个元器件是否可用。它似乎内置了自动将代码放入 SRAM 区域的功能。     Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 嗨@yunaidejiezi , 我明白了,谢谢。 这是因为 RTD 版本基于不同的 AUTOSAR 规范。 AUTOSAR 4.4.0 使用 Fls 驱动程序,而 AUTOSAR 4.7.0 (R21-11) 使用 Mem_43_INFLS。 命名规则虽然改变了,但功能非常相似。 正如您所提到的,还可以选择在作业启动时加载访问代码。配置工具的布局有所不同——SRAM 地址配置位于不同的选项卡上,但除此之外,配置是相同的。 此致, 丹尼尔 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 嗨@yunaidejiezi , 感谢您的反馈,很抱歉听到您遇到这些问题。如果您在使用 MCAL 驱动程序时遇到任何问题,请告诉我。 此致, 丹尼尔 Re: Some issues encountered during Flash driver development on S32K344 under the RTD 4.0.0 environme 你好, @danielmartynek 非常抱歉这么久都没能回复这个帖子。过去一周,我一直在尝试之前的方法——基于 C40 元器件 进行开发。然而,我仍然无法成功,各种各样的问题让我感到不知所措,失去了继续沟通的动力。周末期间,我仔细考虑了一下,决定暂时放弃这条路线,转而使用 MCAL 进行开发。这可能需要更多时间,但我会冷静下来,一步一步地解决问题。我衷心感谢您提供的所有建议和帮助。
查看全文