Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
在 FRDM-MCXW71 EVK 上运行 BLE 示例时出现断言错误 你好,团队、 我目前正在使用 FRDM-MCXW71 EVK,用 Visual Studio Code 编写一个 BLE 应用程序。 由 mcxw71evk_cmsis_button_toggle_led 的示例成功版本、闪烁和运行。 但是,当我编译并刷新 mcxw71evk_adv_ext_peripheral_freertos 示例时,编译和调试过程成功完成,但是当我运行应用程序时,会出现断言错误。 能否请您帮我了解一下是什么原因导致了这个问题?如果 BLE 示例需要任何其他配置,请告诉我。 感谢您的支持。 致以最崇高的敬意, Ramdev #MCXW71 #BLE 模拟(ADC|CMP|DAC|OPAMPS) 开发板 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,克莉丝汀、 感谢您的反馈, 我使用的是 MCUXpresso SDK 版本 25.12.0。该项目成功构建,调试会话启动时没有任何问题。但是,一旦调试完成,我点击运行选项,应用程序就会立即出现断言错误。 我附上了终端日志供你参考。 能否请您查看一下日志,并就该问题的可能原因提供建议? 感谢您的支持。 致以最崇高的敬意, Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 感谢您为我们创建案例。 请告诉我您的 SDK 版本和重现该问题的详细步骤。 如果可能,也请帮助提供相关截图和日志。 我倾向于在本地检查是否能重现这个问题。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 您好,恩智浦团队, 我想跟进我之前的询问。请您在方便时提供最新信息。 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 您好,恩智浦团队, 。请您在方便时提供最新信息。 如果需要我提供任何补充信息,请告诉我。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 请尝试以下方法: 1. 修改 frdm_mcxw71\ mcuxsdk\ 中间件\ 无线\ 蓝牙\ boards\ frdmcxw71\ 蓝牙\ adv_ext_preinclude.h #define gAppLowpowerEnabled_d 1 //从 0 到 1   2.使用 blhost 加载位于以下目录中的 NBU FW: mcuxsdk\ 中间件\ 无线\ ble_controller\ bin\ mcxw71_nbu_ble_hosted.sb3   如果您不知道如何使用 blhost 闪存 NBU FW bin,请参考以下链接: https://community.nxp.com/t5/MCX-W71-Training-Secure-MCUs-for/FRDM-MXCW71-Hands-On-2-Recognize-NBU-Incompatible-Versions/ta-p/1970129   我已经在本地进行了验证,现在可以正常工作了:   扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 按 WAKESW 查看菜单 扩展广告应用程序 - 外围设备 2 ss WAKESW 查看菜单 扩展可扫描广告 从手柄 0 开始   请告诉我您的结果,如果对您有效,请帮助将我的答案标记为该问题的解决方案。这样我们就可以结案了。 谢谢您!   顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 对不起,我被另一项更优先的任务挡住了。 我会尽量在今天检查这个问题,并及时分享我的更新。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,Christine, 感谢您提供的最新信息。期待您的回复。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,克里斯蒂安,我这边的 CMSIS GPIO 示例也能正常运行,问题是当我运行"mcxw71evk_adv_ext_peripheral_freertos" 这样的示例时,会出现断言错误,你能验证一下吗? Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好 Christine, 在 launch.jason 中我更新了 .elf文件,除此之外我没有做任何更改。 我也做了同样的事,但效果很好。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 感谢您的耐心等待。 我在本地进行了尝试,但没有遇到您的错误。 我可以成功版本、调试和运行它。 请参阅下面的测试结果输出: ---- 打开串行端口 COM4 ---- CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! CMSIS GPIO 示例! 使用按钮切换 LED! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 按下按钮! 你修改了什么地方吗? 我正在使用 SDK25.12.00,并使用这个工具链来构建: .mcuxpressotools/arm-gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none-eabi/bin/arm-none-bin/arm-none-eabi-none-none-eabi-none-     请检查您的工具链。   如果你修改了任何地方,请告诉我。   下面的附件是我的控制台日志,似乎与你的类似。   但在你的控制台日志中,我看到 : [21923] 信息:Launcher.core.短截线:[短截线 (2336)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中的导线 ACK 故障   能否请您用其他例子试一试?像 hello_world 一样?       顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 你修改过什么吗?还是只使用我们的默认示例? 当然,我也可以在我这边试试这个例子:adv_ext_peripher_freertos 。 稍后,我将与大家分享我的成果。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK Hi Christine , 感谢您提供的最新信息。 没问题,我理解。 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 感谢您的回复。 我尝试了这个 BLE 示例:frdmmcxw71_adv_ext_peripheral_freertos,也遇到了和您一样的问题。 以下是错误信息: [11834] 调试:Launcher.core.短截线:短截线 (13333)-> GDB (2340):b '+' [35169] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35214] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35259] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35286] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35333] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35368] INFO:launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35401] info: launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35435] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中出现电线 ACK 故障 [35520] info: Launcher.core.短截线:[短截线 (2340)] Nc:状态-正在运行或正在执行RESET请求-重读状态失败-rc Nn (05)。DAP 访问中的导线 ACK 故障 让我检查一下,尽快反馈给您。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨克里斯汀, 很抱歉回复晚了。我遇到了另一个调试会话无法启动的问题。 在 VS Code 版 McuXpresso 中,出现以下错误: 无法启动:远程连接已关闭 (从目标选择扩展远程 172.0.0. 1:2356) 我还尝试过使用 LinkFlash (v25.12.83) 对主板进行编程,但它显示以下错误:无法连接到核心 Et: 31: 无法连接到芯 片的调试端 口 Pc: (100) 目标操作失败 在硬件方面,USB_ACT 绿色 LED 亮起,ISP_EN_MLINK 红色 LED 闪烁,USB LED 也亮起。 之前板运行良好,但现在我无法在 FRDM-MCXW71 板上调试或刷新任何示例。 由于这个问题,我无法检查您之前提到的断言错误解决方案。您能建议如何解决这个问题吗? 致敬、 拉姆德夫 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,Christine, 感谢您提供的最新信息。我已为此问题创建了一个支持链接 链接:https://community.nxp.com/t5/Wireless-MCU/FRDM-MCXW71-debug-issue/m-p/2327185#M20304 周一有空时,能否请您看一看? 谨致 Ramdev Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 对于新问题,能否请您帮助创建一个新的主题? 为避免混淆,我们通常建议客户用一个案例跟踪一个问题。 下周一我会拿给你检查,现在我正在处理另一个问题。 感谢您的企业。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 你好,@Ramdev 它对你有用吗? 如果在您那边可行,能否请您帮忙将我的答案标记为此例的解决方案? 这样我们就能及时结案。 如果您有任何其他问题,请随时向我们提交新案例。 顺祝商祺! Christine。 Re: Assert Error While Running BLE Example on FRDM-MCXW71 EVK 嗨,@Ramdev 感谢您创建新主题。 我看到我们的同事已经在新的主题上支持你了。 新问题解决后,请继续测试该问题,并告诉我是否还需要我们的帮助。 顺祝商祺! Christine。
View full article
【NXPマイコン入門】【モータ制御】【基礎編③】永久磁石同期モータの仕組みと制御方法(日本語ブログ) 目次   【NXPマイコン入門】【モータ制御】【基礎編③】永久磁石同期モータの仕組みと制御方法 縁の下の力持ち!クラーク変換とパーク変換ってなんだろう? すべての始まり:三相交流という「複雑な波」 ステップ1:クラーク変換 - 3次元を2次元にシンプル化する ステップ2:パーク変換 - 動く世界を止めて見る「メリーゴーラウンドの魔法」 なぜこんな面倒な変換をするの? その絶大なメリットとは まとめ:複雑な波を、意のままに操るための数学の力 【NXPマイコン入門】【モータ制御】【基礎編③】永久磁石同期モータの仕組みと制御方法 縁の下の力持ち!クラーク変換とパーク変換ってなんだろう? こんにちは! 電気自動車(EV)がスーッと滑らかに発進したり、高性能なエアコンが驚くほど静かに運転したり。その裏側では、マイコンが超高速で複雑な計算を行い、モーターを巧みに操っています。 今回は、その制御技術の心臓部、「ベクトル制御」で活躍する二人の偉大な専門家(の名前がついた変換)、「クラーク変換」 と 「パーク変換」 の謎を、下のGIFアニメーションと共に解き明かしていきましょう! (function() { var wrapper = document.getElementById('lia-vid-6377224605112w540h540r855'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (マイビデオを表示) すべての始まり:三相交流という「複雑な波」 まず、一番上の段。これはモーターを動かすための基本エネルギー、「三相交流」の世界です。 右のグラフ(Three-Phase Sine Waves): A相, B相, C相という3つの波が、絶えず大きさと向きを変えながら流れています。この3つの波は互いに連携していますが、このままでは「今、モーターにどれくらいの力を加えるべきか」を直感的に判断するのは至難の業。まるで、3人の奏者がそれぞれ違う楽譜で演奏しているのを、同時に指揮するようなものです。 左のグラフ(Rotating Vector): しかし、この3つの波の力を合成すると、面白いことが起こります。大きさが一定のまま、クルクルと滑らかに回転する一つの力(回転ベクトル)が生まれるのです。物理的には、これがステータコイルが作り出す「回転磁界」そのもの。この回転する磁界こそが、ロータの磁石を引っ張ってモーターを回す力の源です。 課題: この「常に変化する3つの波」を、どうやってマイコンで簡単に、そして正確にコントロールすれば良いのでしょうか? ステップ1:クラーク変換 - 3次元を2次元にシンプル化する 最初の魔法が「クラーク変換」です。これは、複雑な3次元の世界を、もっと分かりやすい2次元の世界に描き直す作業です。 計算式は以下のようになります。 Clarke.jpg 通常モーター制御では、振幅不変変換(K=2/3)、平衡三相(i_a+i_b+i_c=0)を前提とし、以下の簡略化された式が用いられます。   texclip20251021155548.png​ 右のグラフ(Two-Phase Sine Waves α-β): 見てください!3本あった波が、α(アルファ)とβ(ベータ)という2本の波に集約されました。まだ波の形(交流)はしていますが、変数が一つ減って、だいぶ見通しが良くなりました。 左のグラフ(Clarke Transformation α-β): これは、3つの軸(A, B, C)で見ていた回転ベクトルを、直角に交わる2つの軸(α, β)で見た世界です。ちょうど、斜めから見ていた立体を、真上から見た平面図にしたようなイメージ。回転ベクトル自体は、何も変わらず同じように回転しています。 【クラーク変換のポイント】 情報を一切失うことなく、3相という少し扱いにくい座標系から、数学で馴染み深い直交座標(α-β静止座標系)に変換し、問題をシンプルにしました。 ステップ2:パーク変換 - 動く世界を止めて見る「メリーゴーラウンドの魔法」 αとβの値もまだ波のように変化しており、これを追いかけるのは大変です。そこで登場するのが、ベクトル制御の真髄、「パーク変換」です! 計算式は以下のようになります。 texclip20251021155429.png​​ これは、「静止した地面(α-β座標)から回転ベクトルを眺めるのをやめて、いっそのこと回転ベクトルと同じ速度で回るメリーゴーラウンドに飛び乗ってしまおう!」 という、まさに発想の大転換です。この新しい回転する座標を「d-q回転座標系」と呼びます。 右のグラフ(Two-Phase Value d-q): 驚くべき結果です!あれほど激しく変化していた2つの波が、dとqという**ほぼ一定の値(直流)**に変わりました! 左のグラフ(Park Transformation d-q): d-q座標が、回転ベクトルと完全に同期して一緒に回転しているのが分かります。あなたがメリーゴーラウンドに乗っている馬の真横に立てば、その馬はあなたに対して静止して見えますよね?それと全く同じ原理です。回転している側から見れば、回転しているものは止まって見えるのです。 【パーク変換のポイント】 回転ベクトルと同じ速度で回転する座標系(d-q座標)から観測することで、交流の値を直流の値として扱うことができるようになります。 なぜこんな面倒な変換をするの? その絶大なメリットとは この二段階の変換を経て、私たちはとてつもないメリットを手にします。それは 「制御の圧倒的な単純化」 です。 常に変化する交流値を制御するのは難しいですが、直流値ならどうでしょう?目標値より高ければ下げる、低ければ上げる。小学生でも分かるこの単純な操作(PID制御)で、モーターを完璧にコントロールできるようになるのです。 そして、dとqの直流値には、それぞれ重要な物理的な意味が割り当てられています。 q軸の値 (Quadrature-axis): モーターの**トルク(回転する力)**を直接コントロールします。EVのアクセルを踏んだ時にグッと加速するのは、マイコンがこのq軸の目標値を上げているからです。まさに「力のダイヤル」です。 d軸の値 (Direct-axis): モーターの**磁束(磁石の強さ)**をコントロールします。永久磁石モータの場合、ロータの磁石の強さは一定なので、基本的にはこのd軸の電流はゼロになるように制御するのが最も効率的です。まさに「効率のダイヤル」です。 つまり、クラーク変換とパーク変換は、本来ごちゃ混ぜになっているモーターの「力」と「効率」の要素を、2つの独立した直流のダイヤル(dとq)に分離してくれる魔法なのです。 まとめ:複雑な波を、意のままに操るための数学の力 三相交流という複雑な波で、モーターの中に回転する力(回転ベクトル)を作る。 クラーク変換で、3次元の世界を2次元(α-β)に描き直し、問題をシンプルにする。 パーク変換で、回転するメリーゴーラウンド(d-q座標)に乗り込み、交流の値を直流の値に変換する。 直流になったトルク(q)と磁束(d)の値を、PIDコントローラーで簡単かつ正確に制御する! この一連の華麗な数学的処理こそが、現代の高性能モーターを支える「ベクトル制御」の根幹です。この魔法があるからこそ、私たちはパワフルで静かで、省エネなモーターの恩恵を存分に受けることができるのですね。 最後までお読みいただきありがとうございました! 次の基礎編を読みたい方はこちら↓ 【基礎編④】実践!ベクトル制御の仕組みをブロック図で見てみよう! 具体的なセットアップ方法やサンプルコードの動かし方についての解説はこちら↓ 【NXPマイコン入門】【モータ制御】【実践編①】永久磁石同期モータの仕組みと制御方法(日本語ブログ) NXPのモーター制御の記事をまとめたサイトはこちら↓ NXPのモーター制御 ~まとめページ~ (日本語ブログ) =========================​ 本投稿の「Comment」欄にコメントをいただいても、現在返信に対応しておりません。​ お手数をおかけしますが、お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」をご参照ください。​ (既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)​ NXPのFRDMボード「FRDM-MCXA156」を使用して、モーター制御について分かりやすく解説していきます。基礎編と実践編に分かれていますので、興味のある内容から参考いただければ幸いです。 ・基礎編①~⑦、実践編①~③ 今回は基礎編③として、NXPマイコンで、永久磁石同期モータの仕組みと制御方法について解説します。 MCUXpresso MCUXpresso IDE MCUXpresso SDK MCX Motor Control Technology Focus 日本語ブログ
View full article
S32DS Warnings from Clock IP with S32K5xx RTD 0.8.0 When using S32K5xx RTD 0.8.0 I receive a number of warnings from the Clock IP module when compiling.  DirkEtzler_0-1771115696535.png Is there a way to correct them?  Are these warnings safe to ignore?  Is there a plan to get them fixed? Re: S32DS Warnings from Clock IP with S32K5xx RTD 0.8.0 Hello @DirkEtzler , Thank you for your question. As mentioned previously, the S32K5 family is currently an NPI (New Product Introduction) device. For this reason, all support requests must be handled directly through your assigned NXP FAE. Alternatively, please create a support ticket at: https://support.nxp.com/s/?language=en_US The system will automatically route your request to the appropriate FAE team for further assistance. Thank you for your understanding. Best regards, Pavel
View full article
调整 EFLEXPWM 的占空比问题 现在我需要实现 6 通道互补 EFLEXPWM 波形生成。我选择了 SUB0、SUB1 和 SUB2 的 PWM_A 和 PWM_B。现在我想调整占空比。如何利用这些寄存器实现这一目标?我不太清楚手册中提到的与 VAL 值有关的操作。 刚开始使用 EFLEXPWM 时,我完全懵了,不知道如何操作。请帮帮我,我将不胜感激。 Re: Adjust the duty cycle issue of EFLEXPWM 您好, 数字设备 RM 的 238 和 243 显示了子模块内 PWMA/PWMB 和 PWMX 信号生成方面的 valN 寄存器含义。对于每个输出,子模块将一对定时值 (smnValm) 与子模块计数器进行比较以控制输出 脉冲,一个定时值用于控制开启边缘,一个用于控制关断边缘。 PetrS_1-1770735832538.png 因此 PWMA 边沿由 VAL2/VAL3 控制 PWMB 边沿由 VAL4/VAL5 控制 PWMX 边沿由 VAL0/VAL1 控制 BR, Petr
View full article
S32G274 デュアルコア起動後のCAN通信のデバッグ 現在、M コアと A コアの両方が同時に起動された場合の CAN 通信をデバッグしています。CAN ピンは PC_11 と PC_12 です。M7コアのAPPプロジェクトでFLEXCANを適用する必要があるため、AコアのLinuxのBSP35.0でllce_can0の設定を無効にしました(図を参照)。しかし、現象は、A コアが Uboot にあるときは M7 コアの flexcan は正常に通信しているのに、A コアが Linux に入ると M7 コアの flexcan が正常に動作しなくなるというものです。A コアの他にどこを変更する必要があるか教えてください。 sdx111_0-1770203152639.png sdx111_2-1770203430530.png sdx111_3-1770203435694.png sdx111_4-1770203442267.png Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 上記の指示に従って変更を加えました。しかし、A コアが Linux システムに入った後も、M コアの CAN0 通信は依然として異常です。 s32g274ardb2 ログイン: root root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins ls: '/sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins' にアクセスできません: そのようなファイルまたはディレクトリはありません root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/ ls: '/sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/' にアクセスできません: そのようなファイルまたはディレクトリはありません Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 Linux で LLCE can0 ピンの使用を削除するには、次の変更を適用してください。 diff --git a/arch/arm64/boot/dts/freescale/s32g.dtsi b/arch/arm64/boot/dts/freescale/s32g.dtsi index de9caffb3ca1..ff02f046676b 100644 --- a/arch/arm64/boot/dts/freescale/s32g.dtsi +++ b/arch/arm64/boot/dts/freescale/s32g.dtsi @@ -379,18 +379,18 @@ llce_can_logger15: llce_can_logger15 { status = "okay"; }; - llce_can0: llce_can0 { - compatible = "nxp,s32g-llce-can"; - mboxes = <&llce_mb S32G_LLCE_CAN_CONF_MB 0>, - <&llce_mb S32G_LLCE_CAN_RX_MB 0>, - <&llce_mb S32G_LLCE_CAN_TX_MB 0>; - mbox-names = "config", "rx", "tx"; - clocks = <&clks S32G_SCMI_CLK_LLCE_CAN_PE>; - clock-names = "can_pe"; - pinctrl-names = "default"; - pinctrl-0 = <&llce_can0_pins>; - status = "disabled"; - }; +// llce_can0: llce_can0 { +// compatible = "nxp,s32g-llce-can"; +// mboxes = <&llce_mb S32G_LLCE_CAN_CONF_MB 0>, +// <&llce_mb S32G_LLCE_CAN_RX_MB 0>, +// <&llce_mb S32G_LLCE_CAN_TX_MB 0>; +// mbox-names = "config", "rx", "tx"; +// clocks = <&clks S32G_SCMI_CLK_LLCE_CAN_PE>; +// clock-names = "can_pe"; +// pinctrl-names = "default"; +// pinctrl-0 = <&llce_can0_pins>; +// status = "disabled"; +// }; llce_can1: llce_can1 { compatible = "nxp,s32g-llce-can"; @@ -615,23 +615,23 @@ usbotg: usb@44064000 { }; &pinctrl { - llce_can0_pins: llce_can0_pins { - llce_can0_grp0 { - pinmux = ; - input-enable; - slew-rate = ; - }; - - llce_can0_grp1 { - pinmux = ; - output-enable; - slew-rate = ; - }; - - llce_can0_grp2 { - pinmux = ; - }; - }; +// llce_can0_pins: llce_can0_pins { +// llce_can0_grp0 { +// pinmux = ; +// input-enable; +// slew-rate = ; +// }; +// +// llce_can0_grp1 { +// pinmux = ; +// output-enable; +// slew-rate = ; +// }; +// +// llce_can0_grp2 { +// pinmux = ; +// }; +// }; llce_can1_pins: llce_can1_pins { llce_can1_grp0 { diff --git a/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts b/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts index 0247b542f98b..fe93303e8ca9 100644 --- a/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts +++ b/arch/arm64/boot/dts/freescale/s32g274a-bluebox3.dts @@ -91,9 +91,9 @@ &llce_boot_status { status = "okay"; }; -&llce_can0 { - status = "okay"; -}; +//&llce_can0 { +// status = "okay"; +//}; &llce_can1 { status = "okay"; diff --git a/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi b/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi index afe8a5cea3e1..ada20f67f2d7 100644 --- a/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi +++ b/arch/arm64/boot/dts/freescale/s32gxxxa-rdb.dtsi @@ -168,9 +168,9 @@ &llce_boot_status { status = "okay"; }; -&llce_can0 { - status = "okay"; -}; +//&llce_can0 { +// status = "okay"; +//}; &llce_can1 { status = "okay"; その後、以下のように llce can0 ノードとピンを一覧表示すると、llce_can0 は表示されないはずです。 root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins ls: cannot access '/sys/firmware/devicetree/base/soc/siul2@4009c000/siul2-pinctrl@4009c240/llce_can0_pins': No such file or directory root@s32g274ardb2:~# ls /sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/ ls: cannot access '/sys/firmware/devicetree/base/soc/llce@43a00000/llce_can0/': No such file or directory 対照的に、これらのノードがある場合、上記のようにリストすると、デバイス ツリーのサブノードが表示されます。 変更後に M7 で CAN0 を使用できるかどうかをお知らせください。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 わかりました。設定をテストして、またご連絡します。 よろしくお願いします。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 あなたが言及したような動作は見たことがありません。PFE と CAN が相互に干渉しているのです。ただし、 pinctrl-s32g.c#L430で、問題を解決できるかもしれない変更をいくつか行いました。問題のあるピンのある行を削除しました。あなたの場合は次の 2 つの行になります。 S32CC_PINCTRL_PIN(S32G_MSCR_PC_11), S32CC_PINCTRL_PIN(S32G_MSCR_PC_12), 私は RDB2 の RGB LED に対応するピンでこのテストを実行しました。リストからそれぞれのピンを削除すると、ピンは「浮いた」状態のままになり、Linux の起動時に通常オフになる LED ではなく、わずかにオンになっている LED を確認できます。 そのテストを実行して、M7 コアで CAN0 ピンが正しく動作するかどうかを教えてください。 よろしくお願いします。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up A の BSP35.0 の can0 と llcecan0 の両方の初期化コードを削除した後、M コアが PFE をロードしていないときに、M コアの can0 は正常に通信できるようになりました。しかし、/fsl-auto-yocto-bsp35.0/build_s32g274ardb2/conf/local.confに「DISTRO_FEATURES_append += 'pfe'」と「NXP_FIRMWARE_LOCAL_DIR = '/home/hhkj/linux3/fsl-auto-yocto-bsp35.0/firmware_bin/'」を追加した場合、つまり、PFE が A コアにロードされた後、M コアがクラッシュしたようです。CAN0 と SGMII モードを使用する M コアでは PFEMAC0 と pfemca1 を適用し、PFEMAC2 の RGMII モードを使用する A コアでは PFEMAC2 を適用する必要があるため、M コアで CAN0 通信のみが実行されている場合、M コアに PFE のファームウェアをロードすると A コアの CAN0 通信に影響する理由を知りたいです。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 内部的に調査したところ、LLCE および PFE の使用時に制限は見つかりませんでした。Linux の起動前と起動後に次のレジスタが変化するかどうか確認できますか? alejandro_e_0-1770676601912.png よろしくお願いします。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up pinctrl-s32g.cに必要な変更を加えました指示に従ってファイルしてください。しかし、問題は依然として残っています。PFE ファームウェア (添付画像を参照) をロードするたびに、A コアが Linux システムに入った後、M7 コアの CAN0 が異常になります。PFE ファームウェアをロードしないと、A コアが Linux システムに入った後、M7 コアの CAN0 は正常に機能します。問題はどこで探せばいいのでしょうか?または、PFE ファームウェアをロードした後にテストしていただけますか? 1.png   2.png     Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 1.私が観察した現象は、A コアが PFE をロードして起動した後、M7 の flexcan0 が正常に通信できないことです。具体的な状況としては、現時点では、cantest 上位コンピュータを使用して CAN メッセージを flexcan0 に送信すると、メッセージは正常に送信できますが、M7 の flexcan0 はまったく応答せず、外部に何も送信しません。したがって、この時点でM7がクラッシュしたと推測します。したがって、あなたが言及した 2 つのレジスターは間違いなく正常です。 2. Linuxを起動した後、関連するレジスタの値を読み取る方法を知りたいです。それは何のコマンドですか? 3.PFE ファームウェアのロードを有効にした後、プログラム内のどのファイルと機能が特定のロード プロセスになりますか?HIL1 を HIL0 に変更する必要がある場合、どうすればいいでしょうか? Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 更新が遅くなって申し訳ありません。ここ数週間はオフィスを離れていました。まだ問題は解決していませんか?もしそうなら、最新情報を教えてください。 トピックを続けるために新しい投稿を作成されたことに気付きました。同僚が問題を解決した場合は、私にもお知らせください。 ありがとうございます。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up こんにちは@sdx111さん、 分かりました。これについて新しい投稿を作成していただけますか?非アクティブ時間のため、投稿のステータスを追跡するために使用しているツールがこの投稿を閉じました。このトピックの続きであることを説明する新しい投稿を作成し、必要に応じて私にタグを付けて引き続き協力してもらうこともできます。 ご不便をおかけして申し訳ございません。 Re: S32G274 Debugging CAN Communication After Dual-Core Boot-up 今も変わりません。問題は解決されていません。
View full article
测量中心板(帆船)的压力 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 我现在正在做一个学校项目,涉及在帆船上安装传感器。这里指的是小艇。 其中一项任务是测量中板(船中间的可伸缩龙骨)两侧的压力,看哪边压力更大。因此,我只想看看一方和另一方的区别。 我认为压差传感器可能不错,所以我查看了一些压差传感器,如 MP3V5010 和 MPXV7025。 但据我从数据表中了解到的情况。 1.它们只为干燥空气而设计,所以这将是一个问题。用于测量压力的管子/管道会接触到水(在水中),因此如果船翻了(这很常见),水很有可能会进入传感器。 2.这些传感器(MP3V5010 和 MPXV7025)只能测量 P1>P2。传感器MPXV7025 的量程为 -25 kPA 至 25 kPa,但数据表中仍然规定 P1 必须高于 P2。 如果 P1 必须高于 P2,我如何测量 -25 kPa? 因此,我的问题是"防水" 传感器可以吗?(在管道里放点东西之类的),还是说有什么传感器更适合这种应用,对水不敏感? 压力传感器 Re: Measuring of pressure in a center board (Sailboat) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢 Re: Measuring of pressure in a center board (Sailboat) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好 除干燥清洁的空气外,其他介质可能会溶解凝胶或被凝胶吸收,从而损坏模具表面或导致线缆断裂。与其他介质相比,某些类型的介质损坏芯片的时间更长,因此可以采用一次性应用。 我想请你参考应用笔记 AN3728:“IPS PRT 压力传感器的媒体兼容性”,除了提供的信息外,还值得考虑。 在这篇应用笔记第 3 页中,您可以看到我们已经测试了几种介质,主要是在具有耐介质凝胶的部件上,但是我们无法保证这些设备在这些条件下的长期可靠性。 要将我们的传感器用于除干燥空气以外的其他介质,一种可能的解决方案是尝试使用 "抗介质凝胶 "型压力传感器。 恩智浦使用两种不同类型的凝胶将芯片与环境隔离: 氟硅凝胶(FE-53 型)用于我们所有标准类型的压力传感器。 耐介质凝胶 (Sifel) 被用于我们的压力传感器,例如在高温环境下使用的传感器,主要应用于汽车领域 由于我假设您需要的压力传感器能够测量同一系统中的正压和负压,因此我建议您使用MPVZ7025DP压力传感器。 这也是一个集成压力传感器,这意味着它们已经过出厂校准、温度补偿和信号调节,因此外部硬件需要最少(仅用于解耦和滤波的电容)。 不幸的是,MPVZ7025DP 不再由恩智浦制造,但你可以在罗切斯特电子公司找到这款设备,该公司是恩智浦过时设备的授权代理商。 我希望这些传感器中的一个能帮上忙。 祝您愉快, Jose ----------------------------------------------------------------------------------------------------------------------- 注:如果本帖回答了您的问题,请点击正确答案按钮。Thank you! -----------------------------------------------------------------------------------------------------------------------
View full article
边缘人工智能应用中恩智浦 MCU 的功率优化策略 大家好 我目前正在设计一款基于恩智浦微控制器的低功耗边缘计算设备,并想从社区获得一些建议。该系统执行间歇性传感器采样和本地推理,然后将汇总结果发送到主机系统进行进一步分析。 在开发和测试期间,我使用一台支持人工智能的笔记本电脑来分析性能、验证推理输出并监测长时间运行的功耗模式。我面临的主要挑战是优化 MCU 的功耗,同时保持可接受的推理任务响应时间。 MCUXpresso 中是否有推荐的低电源模式、时钟缩放技术或 SDK 功能可以很好地应对此类工作负载?如果您有任何关于平衡恩智浦 MCU性能和功耗的实际经验,将非常有帮助。预先感谢您的真知灼见。
View full article
エッジAIアプリケーションにおけるNXP MCUの電力最適化戦略 こんにちは、みんな、 現在、NXP マイクロコントローラをベースにした低電力エッジ コンピューティング デバイスを設計しており、コミュニティからアドバイスをいただきたいと考えています。システムは断続的なセンサ サンプリングとローカル推論を実行し、要約された結果をホスト システムに送信してさらに分析します。 開発とテスト中は、 AI 対応のノートPCを使用してパフォーマンスのプロファイルを作成し、推論出力を検証し、長時間実行時の電力消費パターンを監視します。私の主な課題は、推論タスクの許容可能な応答時間を維持しながら、MCU 側の電力使用量を最適化することです。 MCUXpresso には、この種のワークロードに適した推奨の低電力モード、クロック スケーリング手法、または SDK 機能はありますか?NXP MCUのパフォーマンスと電力のバランスに関する実際の経験は非常に役立ちます。ご意見をよろしくお願いします。
View full article
TJA1057GTK,TJA1145AT/FD FMEA 能否提供 TJA1057GTK 和 TJA1145AT/FD 芯片的最新 FMEDA 文件? 我这里只有一份 TR1309 报告,它似乎只显示了软件包失效模式和严重性级别,但是我们如何获得不同故障模式的分布(以百分比为单位)? sidi1_0-1769494724376.png Re: TJA1057GTK,TJA1145AT/FD FMEA 亲爱的 Sidi1、 TJA1057 和 TJA1145A 都不是 ASIL 设备(不是根据 ISO26262 创建的),因此没有 FMEDA 不适用于它们。只有针式 FMEA。TJA1057 的引脚 FMEA 见附件 AH1308。TJA1145A 的引脚 FMEA 见 AH1903。本文件为机密文件,可从TJA1145A 产品页面的 "安全 "部分 下载。请注意,贵公司需要与恩智浦签订有效的 NDA(保密协议),才能下载本文件和其他机密文件。 Screenshot_1.png 致以最崇高的敬意 约瑟夫
View full article
S32G3 QSPIがFR[AIBSEF]エラーを報告しました こんにちは、エキスパート IASTから、M7アプリケーションがFR[AIBSEF]エラーを報告したという問題が報告されました。RTD4.0.2を使用していました。 S32G3 RM によると、AHB バースト サイズが BUFxCR[ADATSZ] のプリフェッチ サイズより大きい場合に AIBSEF がトリガーされます。BUF3CR[ADATSZ] が 0x80 であることを確認しました。これは、QSPI でサポートされている最大サイズ (1024 バイト) です。S32GレジスタのHBUSRTサイズを確認する方法をご存知ですか?この問題についてコメントをいただけませんか? S32G RM にはもう 1 つの混乱点も見つかりました。WRAP* トランザクションは AHB 読み取りではサポートされていませんが、これは HBUSRT が実際には G3 ではサポートされていないことを意味するのでしょうか。もしそうなら、 FR[AIBSEF]の根本的な原因は何でしょうか? 優先度: 中 RTD Re: S32G3 QSPI reported FR[AIBSEF] error こんにちは@arthur_shiさん、 QSPI で HBURST と HSIZE を設定する場所が見つかりませんでした。しかし、私の観点からすると、最大バースト = 16、最大 Hsize = 64 ビット = 8 バイトです。SO、AHB トランザクションの合計バースト サイズの最大値は 16 x 8 = 128 となり、1024 を超えることはできません。ドライバがビット FR[AIBSEF] を処理するのを確認できませんでした。ビット AIBSEF が発生した時点の QSPI のすべてのレジスタと QSPI 構成ファイルを送信していただけますか。問題を検出できるかどうか確認してみます。 よろしくお願いいたします。 ニ Re: S32G3 QSPI reported FR[AIBSEF] error 画像から、AHB バッファは以下のように構成されているようです。 RM のマスター ID テーブルに従います。 ユーザーが M7 を使用している場合、マスター ID が他のバッファーと一致しないため、すべてのトランザクションがバッファー 3 にルーティングされるようです。しかし、バッファ 3 は 1024 に設定されているSO、なぜこのビットを取得できるのかわかりません。 ただし、バッファ構成を変更して、マスター ID がバッファ 0、1、2 と一致し、バッファ サイズが 0 で、シーケンス ID が 16 バイトのデータを示しているかどうかを確認できると思います。 複数のコアを使用している場合は、各マスター ID を異なるバッファーにルーティングしてみてください。たとえば、CM7_0 をバッファ 0 に、CM7_1 をバッファ 1 に、... 新しい AHB トランザクションを実行する前に、これらのビットが設定されているかどうかを確認してください。 Re: S32G3 QSPI reported FR[AIBSEF] error これはお客様から受け取ったレジスターです Re: S32G3 QSPI reported FR[AIBSEF] error RM によると、AHB は WRAP と INCR の 2 つのタイプをサポートしているようです。しかし、S32G3 は INCR のみをサポートしています。HBurst と Hsize は QSPI では設定できません。これらは Core ドキュメントで定義され、起動時で構成されます。 お客様の場合、Core A53 のコア マスター ID 0、1、2 をバッファ 0、バッファ 1、バッファ 2 に設定し、バッファ サイズを 0 に設定しているため、バーストのサイズと比較するために使用されるデータ サイズは、シーケンス ID で設定されたデータです。彼らの場合、シーケンス内のデータ サイズは 16 バイトでした。起動時に設定されたバースト サイズがこの値より大きい場合、この問題が発生する可能性があります。 Re: S32G3 QSPI reported FR[AIBSEF] error お客様からフィードバックを受け取りましたが、A53 コアからのアクセスを防止した後、問題は解消されました。したがって、この問題は A53 コアからの投機的なアクセスによって発生した可能性があります。このアクセスがAIBSEFエラーを引き起こす理由はわかりません。確認したいもう一つの質問は次のとおりです。 S32G3 QSPI は AHB バースト機能をサポートしていますか?前回のコメントでも述べたように、 QSPI は RM の AHB ワープ機能をサポートしていませんが、AHB バースト機能を紹介するセクションもあります。混乱しますか?この機能を確認するのにご協力いただけますでしょうか?
View full article
iMXRT1060 マイクロコントローラのマニュアルの一部の情報が不正確または不完全である可能性があります。 最近、i.MX RT1060 プロセッサ リファレンス マニュアル、Rev. 3、07/2021 の情報を考慮して、FlexPWM によって生成されたハードウェア トリガーを使用して取得シーケンスを実装するように ADC (iMXRT1062 - Teensy 4.1) をプログラミングしていました。 コミュニティによって確認され、マニュアルの次のバージョンで更新される可能性のある 2 つの問題に気づきました。 1 つ目は、XBAR1 でトリガーをルーティングするための構成を指します。マニュアルの 62 ページの表 4-5 - XBAR1 入力割り当てによると、トリガー信号 FlexPWM4_SM2_TRIG0 と FLEXPWM4_PWM2_OUT_TRIG1 は XBAR1_IN53 入力に関連付けられていますが、私のコードは XBAR1_IN54 入力を使用してのみ動作しました。コードはhttps://ernane-aac.github.io/Teensy-4.1--How-to-Configure-the-ADC-System/で入手できます。 2 番目の問題は、ユーザーがビット B2B = 0 を使用することを決定した場合の ADC_ETC_TRIG0_COUNTER レジスタのサンプル間隔構成に関係します。マニュアルでは、間隔遅延を次のように設定しています: Interval_delay = (SAMPLE_INTERVAL+1)*(PRE_DIVIDER+1)*ipg_clk。SO、アプリケーションのニーズを満たす SAMPLE_INTERVAL と PRE_DIVIDER のさまざまな組み合わせが存在します。このCASE、PRE_DIVIDER=0 を考慮すると、SAMPLE_INTERVAL は 271 以上である必要がありますが、コードは PRE_DIVIDER=0 では機能しませんでした。PRE_DIVIDER=1、SAMPLE_INTERVAL=136 に変更すると、コードは動作します。このコードは PRE_DIVIDER=1 以上の組み合わせでは機能しますが、PRE_DIVIDER=0 では機能しないことに注意してください。マニュアルに記載されているこれらのビットの機能に関する単なる説明を超えた何かがあるようです。コードはhttps://ernane-aac.github.io/Teensy-4.1--How-to-Configure-the-ADC-System/で紹介されているものと同じです。B2B (コメント) からサンプル間隔 (サンプル間隔と事前分割定義のコメント解除) に変更するだけです。 異なる結果になった場合はお知らせください。 Re: Some information in the iMXRT1060 microcontroller manual may be incorrect or incomplete. こんにちは@Ernane 、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 これら 2 つの質問をお寄せいただきありがとうございます。詳細を共有していただき感謝いたします。社内で確認させていただき、さらにご要望があればご連絡させていただきます。   よろしくお願いいたします。 メイリュー
View full article
WeChat ID: xins4698 セントーサ社に登録したゲームアカウントのパスワードを忘れてしまいました。 WeChat ID: xins4698 セントーサ社に登録したゲームアカウントのパスワードを忘れてしまいました。 LPCマーケティング LPC11xx LPC12xx lpc13xx lpc15xx LPC51Uxx LPC546xx LPC54xxx LPC55xx LPC800
View full article
MIMXRT1020-EVK における v30 U3 SD カードの予想書き込みパフォーマンス MCUXpresso の sdcard_fatfs の例から始めて、semc ドライバを追加すると、SDRAM に配列を宣言し、SDRAM から SDCARD に大量のデータを書き込むことができます。SanDisk V30 U3 カードを使用すると、20 MB の書き込みが 2119 ミリ秒で、3 MB の書き込みが 311 ミリ秒で完了します。この結果は期待通りのパフォーマンスでしょうか?V30 U3 を改善するために調整できる特定のパラメータはありますか? ありがとうございます ダグ Re: Expected v30 U3 SD CARD Write Performance on MIMXRT1020-EVK こんにちは@dougcl 、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 ご質問に関してですが、全体の時間には SDRAM からのデータの読み取りと SD カードへの書き込みが含まれていますか?結果は予想通りのパフォーマンスだと思います。 SDRAMの高性能については、このANを参照することをお勧めします。 AN12437: i.MX RTシリーズのパフォーマンス最適化 – アプリケーションノート USDHC の場合、1 ビット モードではなく 4 ビット モードを使用することをお勧めします (uSDHC1 を使用する場合)。また、DMA を使用してデータを転送することをお勧めします。 mayliu1_0-1768890285160.png 下記のANもご参照ください。 i.MXRT L1キャッシュの使用 よろしくお願いいたします。 メイリュー
View full article
Expected v30 U3 SD CARD Write Performance on MIMXRT1020-EVK Starting with the sdcard_fatfs example in MCUXpresso, and adding the semc driver, I am able to declare an array in SDRAM and write large amounts of data from SDRAM to the SDCARD. Using a SanDisk V30 U3 card, I get 20MB written in 2119ms and 3MB written in 311ms. Is this result within the expected performance? Are there particular parameters I can tune for V30 U3 to improve it? Thanks, Doug Re: Expected v30 U3 SD CARD Write Performance on MIMXRT1020-EVK Hi @dougcl , Thank you so much for your interest in our products and for using our community. Regarding your question, the entire time include reading data from Sdram, and write to SD card? I think the  result within the expected performance. For SDRAM high performance, I suggest you can refer to this AN   AN12437: i.MX RT Series Performance Optimization – Application Note For USDHC, I suggest you use the 4 bit mode in stead of 1 bit mode(if you use uSDHC1), and also use DMA to transfer data. mayliu1_0-1768890285160.png You can also refer to the AN below.  Using the i.MXRT L1 Cache Best Regards MayLiu
View full article
[罗兰][SE050]多个 CPU 和 MCU 能否共用一个 SE050? 专家们好 客户是罗兰公司,该公司正在考虑在其乐器产品中采用 SecureElement SE050E。 此外,罗兰还在考虑利用云技术通过 OTA 更新 CPU 和 MCU 的固件。 不过,他们的系统有多个 CPU 和 MCU。 如果罗兰要更新每个 CPU 或 MCU 的固件、 是否每个 CPU 和 MCU 都需要单独的 SE050? 或者每个 CPU 和 MCU 能否共用一个 SE050? 详情请参见下文。 顺祝商祺! 坎 Re: [Roland][SE050]Can multiple CPU and MCU share one SE050? 你好,Kan、 对于纯粹的 OTA SW 更新,很可能不需要 SE,因为通常只需要处理公钥。但这取决于 OTA 流程,也许他们还需要设备进行一些身份验证才能请求新软件,然后设备需要可用的私钥。通常,还有其他流程/用例需要在设备中提供一些私钥/机密密钥,然后安全元件可以提供帮助。 从软件角度来看,每个 SOC 一个 SE 是最简单的,但没有必要每个 MCU/MPU 都有一个安全元件。" 但同样,一个 SE 最好由一个 SOC 拥有",该 SOC 驱动与 SE 的所有物理通信,而其他 SOC 只能通过一个连接的 SOC 在逻辑上访问 SE。 这样可以避免多台设备希望同时访问 SE 时出现问题。我希望所有设备无论如何都通过一些通用的数据总线连接,这可以用来从所有连接的系统向SE发送请求。 主连接系统可能使用 PlatformSCP 将 SE 与主机绑定。其他设备可以请求单独的AESKey或ECKey频道,为SE提供自己的私人频道。 从用例的角度来看,应该考虑元器件是否可以在现场更换-如果其他元器件应该对新元器件进行身份验证,则新元器件可能需要自己的 SE 或至少是验证芯片来进行自我验证。 亲切的问候, Michael
View full article
重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我在之前的帖子中展示了如何从 U-boot 中更新 SDK 映像。然而,在那个例子中,我没有听从自己的建议,最初我将 FMC uCode 图像刻录到闪存中的错误位置。重新启动后,我不再有以太网连接,并且需要通过我的调试器Codewarrior重新刷新 FMC 代码。在这篇文章中,我将尝试介绍我所做的恢复工作,让您了解如何通过调试器重新刷新 P3041DS,甚至是裸板。 首先,我们需要 Codewarrior。我目前在 Windows 主机上使用版本 10.2,但看起来Codewarrior 10.3是目前最新版本。您还需要一个硬件 TAP,可以是 USB Tap、Codewarrior TAP、GigaTap 或以太网 Tap。对于 P3041,这需要一个 COP 接口 16 针接头。我的 USB 分接头已借出,因此我使用以太网分接头,这提供了通过 LAN 访问的额外便利。 为了本文的目的,我假设我已经清除了 NOR 闪存中的所有内容(包括 RCW)。这与从工厂返回的一块空白板的情况类似。在这种情况下,为了连接调试器,我们需要设置硬编码的 RCW。从 P3041DS 文档中,我看到 DIP 开关 SW1 配置 RCW_SRC 我需要一个硬编码的 RCW 选项,因此我将查看 P3041RM 以找出应将 cfg_rcw_src 设置为何。 由此,我确定我想要设置 cfg_rcw_src = 1_0010,因此我在 DS 上适当地设置 SW1。 请注意,在 DS 系统上,“ON”='1' 将SW1 重新配置为硬编码 RCW 选项后,我将以太网 TAP 探头尖端插入 COP 接头。 注意 pin1 的位置,并适当排列探头尖端。 现在是时候启动 Codewarrior 了。Codewarrior 基于eclipse 。我不会进行大型的 Eclipse 教程 - 但我会演示一些基础知识。Codewarrior 做的第一件事就是询问您工作区的位置。工作区是包含您可能拥有的任何项目的文件夹。在这种情况下,我创建了一个名为workspace_community的新文件夹。 我将为此创建一个新项目。项目包含我可能编译并下载到裸板的文件、初始化脚本以及如何连接到电路板的设置。选择文件/新建/Power Architecture 项目 我将我的项目命名为P3041DS并单击“下一步” 。 接下来,选择合适的处理器 构建设置通常用于构建代码,就我而言,这真的不重要。 我只使用 Core0,因此我按NEXT ,然后最后选择我的 TAP 连接。就我而言,我使用的是 IP 地址为 192.168.1.76 的以太网 TAP 我不打算使用跟踪,因此我可以在下一个屏幕上单击“完成” ,然后就会看到 Codewarrior 编码前景。我对编写任何代码不感兴趣,所以我要建立我的调试连接。为此,我单击工具栏上错误旁边的小向下箭头,然后选择“调试配置” 。 有三种方法可以连接到目标: 附加将把调试器附加到正在运行的目标 下载将重置目标,初始化它,并将代码下载到目标 连接复位,初始化目标并暂停 请注意,重置和初始化是可选的,可以配置。 我将使用Codewarrior Connect ,并将为我的项目选择该选项。要配置我的连接,我可以选择连接旁边的编辑。 在这里我看到我的连接类型是以太网 TAP,具有正确的 IP 地址,正如我之前在新项目向导中选择的那样。 如果我想更改我的初始化脚本,我会选择目标旁边的“编辑” 。 这将打开一个屏幕,其中显示用于连接特定目标的选项。您可以选择重置核心或不重置,也可以选择使用脚本初始化目标。默认脚本可以作为定制板的参考。它们初始化 DDR、MMU、本地总线等参数,以便调试器能够访问这些外围设备。再次强调,我不会详述细节。安装中包含 Codewarrior 文档,通常位于C:\Program Files\Freescale\CW PA v10.xx\PA\Help\PDF目录中。 在这种情况下,我使用标准 P3041DS 系统,只需返回主调试“调试配置”屏幕并单击调试。这将通过以太网 TAP 启动与目标的连接,并将 eclipse 前景更改为调试前景。 我看到我的目标已经停止在 0xFFFFFFFC 的重置向量处。在右下角我有一个调试器外壳。如果它不在您的视图中,您可以通过窗口/显示视图/调试器 Shell 启用它 在调试器 Shell 中,我可以直接向调试器输入命令。例如,为了读取并验证 DDR 是否正常工作,我将转储从地址 0x0 开始的 20 个位置 mem 0x0 20 这应该在默认项目上返回 0xdeadbeef,因为这是在初始化文件中将 flash 初始化的值。我可以对 flash 做同样的事情:      mem 0xe8000000 20 这应该返回闪存的前 20 个位置,这是我的重置配置字应该存储的地方。如果这两者都返回数据,我们就可以刻录闪存了。 Codewarrior Flash 刻录机通过 Codewarrior 10.x 中的目标任务运行。目标任务定义了闪存接口、地址和要刻录的图像。在目标任务视图中,单击绿色加号图标以添加目标任务。 这将打开一个窗口,我们可以在其中命名任务。任务类型应为闪存编程器。硬件诊断任务类型对于运行内存测试很有用,但这在 Codewarrior 文档中有所讨论。运行配置描述了我们如何连接到电路板。由于我已经通过项目连接到目标,因此我选择 Active Debug Context。 应显示与创建的任务相对应的视图。此时,我们需要添加闪存设备。闪存基地址是您可以通过单击“添加设备”窗口中组织右侧来更改组织。这将显示一个包含各个组织的下拉菜单。 基地址是通过初始化脚本配置的。默认情况下,此设置为 0xE8000000。目标 RAM 定义了目标上供算法使用的缓冲区。在视图的底部,可以添加 Flash 程序员操作,描述要执行的操作。示例包括擦除或编程文件。可以设置多个操作,例如擦除整个闪存、编程 RCW、FMC uCode 和 Uboot。 在这张图片中,我添加了一个操作来将 bin 文件中包含的 RCW 编程到位置 0xe8000000。由于二进制文件没有偏移量,我需要将地址偏移量 0xe8000000 应用于该文件。我指示它在编程之前也擦除扇区,并将操作限制在受影响的扇区内。 当我添加了所有需要的内容后,请务必保存目标任务。下面是我的目标任务更新 RCW 和 Fman UCode 的屏幕截图。 我会将它保存到框架中,这意味着它是项目的一部分。 然后,要运行闪存编程器,只需单击目标任务视图中的绿色“播放”箭头。编程器应该运行,如果成功,将在 Codewarrior 闪存编程器控制台中打印一条消息。 您现在可以断开 codewarrior(红色停止按钮图标),并尝试启动您的系统。请记住,DIP 开关仍然设置为硬配置重置配置字,因此我一定要先将它们改回来。 Qonverge 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 下划线只是让它更容易阅读 - 没有别的作用。它有时被用来打破一小口。 保留值可以是任何值。有时它们是空白的——没有任何意义。有时它们是内部测试模式等等...... 对于大多数 QorIQ 部件,我们将内容按 MSB 到 LSB 列出。例如我现在打开了 P3041RM。 LAD[0:15] - LAD0 是 MSB LCS[0:7] - LCS0 是 MSB EC1_RXD[3:0] - RXD3 为 MSB 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   保罗, 感谢您回复我。我有一个后续问题。 为什么显示的位在第 0 位和第 1 位之间显示下划线“_”?   下划线的意义是什么...只是为了更容易查看而分解一部分吗? 根据此回复,我们一直误解了硬编码 POR 配置输入以及非硬编码 POR 配置。 当你转到保留值时会发生什么? 我们的主板是几年前设计的,但我们不断发现一些奇怪的行为。 鲍勃   回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这些位(至少在 Power Architecture 上)通常按 MSB 到 LSB(从左到右)的方式书写。因此,在 cfg_rcw_src[0:4] 的情况下,crg_rcw_src0 是 MSB。这对应于 LGPL0。 因此,当写入 cfg_rcw_src[0:4]=1_0010 时: cfg_rcw_src0 = lgpl0 = 1 cfg_rcw_src1 = lgpl1 = 0 cfg_rcw_src2 = lgpl2 = 0 cfg_rcw_src3 = lgpl3 = 1 cfg_rcw_src4 = lgpl4 = 0 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 保罗, 我是一名硬件工程师,对于如何将 cfg_rcw_scr(0:4) 与实际硬件信号关联感到困惑。这种混淆导致无法确定 cfg_rcw_scr 位的最高有效位。 对于上面显示的硬编码表表 4-32,对于等于 cfg_rcw_src(0:4) 的 1_0010,最高有效位是什么,cfg_rcw_src[0] 还是 cfg_rcw_src[4]? 对于下面显示的 LGPLx 硬件信号,当您写入 cfg_rcw_src(0:4) = 1_0010 时,哪个是 msb 是不明确的。硬件约定建议最左边的数字是 msb,它是 cfg_rcw_src(0)。   Cfg_rcw_src[0] = LGPL0   Cfg_rcw_src[1] = LGPL1   Cfg_rcw_src[2] = LGPL2   Cfg_rcw_src[3] = LGPL3   Cfg_rcw_src[4] = LGPL5   你能解释一下其中的歧义吗? 谢谢! 鲍勃 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 无论如何,我想我找到了这个问题的答案。它位于 QorIQ_SDK_Infocenter.pdf 文档内。以下是有关如何构建 u-boot 以支持 CW 的步骤。 这些步骤是否也适用于生成 u-boot elf 文件? 问:如何使用调试器(CodeWarrior 支持)构建 u-boot/内核? 答:对于 u-boot: 1. $ cd 2. $ bitbake -c cleansstate u-boot 3.修改u-boot_git.bb文件,添加以下内容: • $ cd meta-fsl-ppc/recipes-kernel/u-boot • $ add 'EXTRA_OEMAKE += "CONFIG_CW=1"' in u-boot_git.bb file 4.重建u-boot: •$ bitbake u-boot 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Marius, 我已经重新安装了最新的 CW 并设法找到了文档Targeting_PA_Processors.pdf 。 文档中提到我们必须构建具有 Code Warrior Debugger 支持的 u-boot 或者构建 u-boot elf 文件。它谈论的是文件夹iso/help/documents/pdf,我可以在其中找到有关如何执行这些操作的步骤,但我不知道这个文件夹在哪里。 如何在 yocto 构建环境中构建 u-boot elf 或构建支持 CW 的 u-boot? 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我将对 Flash 编程器例程做一个小小的说明。使用“已经准备好的”闪存编程器目标任务而不是制作一些新的任务非常简单。 只需右键单击并导入您的主板所需的 FP 目标任务。这些提供的目标任务的最好的部分在于它们已经构建了所有必要的闪存设备和内存设置。 此致, Marius 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, P3041DS 处的 u-boot 必须写入 NOR flash 的最后 512KB 中。是的,过程类似,只需使用从 0xeff80000 开始的起始地址。 对于 u-boot 调试,请查看 PA\Help\PDF\Targeting_PA_Processors.pdf 中有关 <5.4.6 从 NOR、NAND、SPI 和SDCard/MMC 闪存设备调试 U-Boot>章节。 此致, Marius 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我也对 u-boot 的刷新感兴趣。如果有的话就太好了。 回复:重新刷新 P3041DS <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Paul, 感谢上述有用的文档。我有几个问题希望您能给我一些提示: 1) 您在文档中展示了如何将 rcw 和 fman ucode 刷入闪存。那么刷写u-boot的过程也是类似的吗? 2)如何使用 Code Warehouse 和 USB Tap 调试 u-boot(在 yocto 环境中编译)?有关于这个过程的任何文档吗?
View full article
i.MX 93 内存兼容性指南 本文档旨在为 i.MX 93 系列处理器所支持的 LPDDR4/4X 内存器件的选型提供扩展指导。在任何情况下,强烈建议遵循特定 SoC 的 NXP 硬件开发者指南中概述的 DRAM 布局准则。 i.MX 93 系列处理器支持不同的封装,每种封装都有其支持的最高 LPDDR4/4X 数据速率。请参考相应的数据手册。 注意:部分 LPDDR4/4X 器件可能不支持低速运行,此外,DQ ODT 可能无法激活,这会影响这些速度下的信号完整性。如果用例中计划采用低速运行,请咨询内存供应商有关内存器件的配置方面及可能的定制,以确保功能正常。 LPDDR4/4X - 最大支持的密度 SoC 最大数据总线宽度 最大密度 假设的内存组织 说明 i.MX 93 (i.MX 93xx) 16 位 16 Gb / (2 GB) 具有 17 行地址 (R0 - R16) 的单排、单通道设备 1, 2, 3   LPDDR4/4X - 已验证的内存列表 验证过程是一个持续的工作——预计该表格会定期更新。 SoC 密度 内存供应商 已验证的内存型号 说明 i.MX 93 16 Gb/ (2 GB) Micron LPDDR4/4x: MT53E1G16D1FW-046 AAT:A  (Z32N) MT53E1G16D1ZW-046 AAT:C (Z42N) 7 4, 8 8 Gb/ (1 GB) Micron LPDDR4/4x: MT53D512M16D1DS-046 AAT (Z11M) 4, 10 16 Gb/ (2 GB) Micron LPDDR4/4x: MT53E1G32D2FW-046 AUT:B (Z42M) 4, 5, 10 8 Gb/ (1 GB) Nanya LPDDR4: NT6AN512M16AV-J1I LPDDR4x: NT6AP512M16BV-J1I 4, 8 4 Gb/(512 MB) Nanya LPDDR4x: NT6AP256M16AV  4, 8 16 Gb/ (2 GB) Kingston LPDDR4: C1612PC2WDGTKR-U 7, 9 8 Gb/ (1 GB) ISSI LPDDR4: IS43LQ16512A-053BLI 4, 8   8 Gb/ (1 GB) CXMT LPDDR4/4x: CXDB4CBAM-EA-M 4, 9 16 Gb/ (2 GB) JSC LPDDR4x: JSL4BAG167ZAMF  4, 8 8 Gb/ (1 GB) JSC LPDDR4x: JSL4B8G168ZAMF-05x  4, 8 4 Gb/(512 MB) JSC LPDDR4x: JSL4A4G168ZAMF-05 4, 8 2Gb / (256 MB) Winbond  LPDDR4x: W66BQ6NBHAGJ 4, 6, 8 8Gb / (1 GB) IM (Intelligent Memory) LPDDR4x: IM8G16L4JCB-046I 4, 11 4Gb / (512 MB) Samsung LPDDR4: K4F4E164HD-THCL 4, 8 8 Gb / (1 GB) AM(Alliance Memory) LPDDR4X: AS4C512M16MD4V-053BIN 4, 8 2Gb / (256 MB) ISSI LPDDR4: IS46LQ16128A-062BSLI 4, 6, 8   注 1: 这些数值纯粹基于 DDR 控制器和 DDR PHY 的 IP 文档、为其集成到 SoC 中所选的实现参数设置、SoC 参考手册以及 JEDEC 标准 JESD209-4B/JESD209-4-1 (LPDDR4/4X)。因此,除非另有说明,否则它们没有经过验证支持,也不能保证内存供应商会提供具有特定密度和 / 或所需内部组织的 SoC。如果客户选择使用最大密度并在预期用例中采用,需自行承担风险。 注 2: 不支持任何密度的字节模式 LPDDR4/4X 器件(内部在两个芯片之间拆分的 x16 通道,每个 x8),因此,这些数值仅适用于具有 x16 内部组织的器件(在 JEDEC 规范中称为 “标准” 器件)。 注 3: 该 SoC 还支持双秩单通道器件,因此,16Gb/2GB 密度也可通过使用具有 16 行地址 (R0 - R15) 的双秩单通道器件来实现。 注 4: 该内存型号未经过完整的 JEDEC 验证,但通过了所有功能测试项目 注意事项 5: 这是一款双通道 x32 器件。由于 i.MX93 仅支持 16 位 LPDDR4/X 数据总线,因此它只能与其中一个通道接口,从而仅能利用该器件一半的密度。如表格中所示 —— 该器件具有 32Gb/4GB 密度,但只能使用 16Gb/2GB。使用双通道器件的其中一个通道没有功能问题,因为在 LPDDR4/4X 中通道是独立的。  注6: 这是一款新的 JEDEC 100 球封装,尺寸为标准 200 球封装的一半。这种 100 球封装具有与 200 球封装相同的性能和功能,并且具有比标准封装更小、更便宜的额外优势。 注释7: 该器件已被制造商停产,并已更新为新的内存型号。  注释8: 该型号处于活跃状态。于 2025 年 6 月审核。 注释 9: 该型号已过时。 注10: 该器件将在 24 年第二季度被制造商停产,且不会更新为新的内存型号。 注释 11: 在 TSA 分析期间发现了 DQ 眼图裕量问题。vTSA 和稳定性测试未发现任何问题。
View full article
PCF2131——第二脉冲信号触发错误 Hello, 我是 Ramón,开始使用 PCF2131 和 STM MCU 进行工作。在设备中设置新的时间+日期后,我遇到了脉冲秒信号的问题。 我遵循的方案如下: 1.我将设备设置为无中断,只有秒脉冲信号。控制寄存器设置如下: ** 控制 1:0b0000 0001,控制 2、3、4、5:0b0。-> 仅使用第二脉冲信号。 ** INTA/B Mask1/2: 0b0 -> 所有中断禁用 ** WD 控制:0x20 -> 脉冲秒信号,无 WD。 2. 然后我从 RTC 读取并检查完整性。然后设置我的MCU的时间。 3. 设备定期通过 SNTP 进行同步。问题就来了。 当收到新日期时,我们停止 RTC,清除预分频器,设置新时间(添加操作延迟)并重新启动 RTC。当这个时间接近于秒的变化(大概是920-950ms),并且设置增加延时的时间(这样就使得新的时间设置大约在50-80ms),秒脉冲信号被触发,使得MCU比实际时间提前一秒递增。我们不知道为什么会发生这种情况。尝试禁用、清除和重新启用中断,但情况仍然相同。知道为什么会发生这种情况吗? 我将我们测量的信号与我们发送的 I2C 数据附加在一起。第二个是在此特定帧中设置的日期时间的缩放,您可以看到第 100 秒设置为 4。
View full article
Request for TJA1128 driver files and guidance on LIN transceiver and watchdog usage Hi NXP Support Team, I am currently working with the TJA1128 LIN Mini System Basis Chip and I am new to this device. While reviewing the application note AH1801, I noticed that the software example and driver files for TJA1128 are available through NXP DocStore (NDA required). I would like to request access to the example driver source code and reference project for TJA1128. In addition, I would appreciate some initial guidance on the following points: LIN Transceiver Verification How to properly bring the TJA1128 into Normal mode for LIN communication Any important initialization or pin/configuration requirements to verify basic LIN TX/RX functionality Watchdog Handling How the watchdog is expected to be refreshed in Normal mode Any timing constraints or typical watchdog configuration recommendations My current plan is: First, to verify basic LIN transceiver functionality In parallel, to validate watchdog refresh behavior from the MCU Any application notes, driver documentation, or best-practice recommendations for these use cases would be very helpful. Thank you for your support. Best regards, Kasirajan C [email protected]
View full article
I.MX8M Plus – Booting U-Boot, Kernel, DTB, and Initramfs from 32 MB QSPI Flash (Kernel Hangs) Hi, We are working with a custom i.MX8M Plus DDR4 board that includes 32 MB QSPI NOR flash. Our objective is to boot U-Boot, Linux kernel, device tree, and initramfs (rootfs.img) entirely from QSPI flash, without using SD/eMMC. We are able to successfully boot up to U-Boot (flash.bin) from QSPI flash. -----Flash Layout and Image Sizes---------------- QSPI flash size: 32 MB flash.bin (U-Boot + SPL) ~2.4 MB Image.gz (Kernel) ~15 MB imx8mp-evk.dtb ~85 KB rootfs.img ~12.6 MB ----QSPI Offset Layout---------- flash.bin @ 0x00000000 Image.gz @ 0x0024D000 imx8mp-evk.dtb @ 0x010A6B00 rootfs.img @ 0x010BB800 U-Boot Environment Setup After booting into U-Boot from QSPI, we configure the following environment variables to load the kernel, device tree, and initramfs from flash: sf probe 0 setenv loadaddr 0x40480000 // kernel setenv fdt_addr 0x43000000 //dtb setenv initrd_addr 0x43800000 //rootfs (minimal initramfs) setenv kernel_comp_addr_r 0x50000000 setenv kernel_comp_size 0x04000000 Reading Images from QSPI Flash sf read ${loadaddr} 0x0024D000 0x00E59A6F sf read ${fdt_addr} 0x010A6B00 0x00014BBA sf read ${initrd_addr} 0x010BB800 0x00C04DB0 Boot Command setenv bootargs console=${console},${baudrate} earlycon=${earlycon},${baudrate} rdinit=/dev booti ${loadaddr} ${initrd_addr} ${fdt_addr} Issue Observed The kernel starts executing but hangs at “Starting kernel …”. Please refer to the attached kernel boot log (kernel_bootlog1). When using the following boot arguments: setenv bootargs setenv bootargs "console=ttymxc1,115200 earlycon root=/dev/ram0 rw rdinit=/sbin/init loglevel=8" The kernel progresses further but hangs midway during boot. Please refer to the attached kernel boot log (kernel_bootlog2). Attached the kernel DTS and kernel defconfig for reference. Kindly let us know if any modifications are required. Questions: 1. Are there any recommended changes required in the kernel DTS for booting initramfs entirely from QSPI on a custom i.MX8M Plus DDR4 board? 2. Are there any additional boot arguments recommended by NXP for initramfs-based boot on i.MX8MP from QSPI flash? 3. What could be the possible reason for the kernel not booting correctly? We followed the same procedure that works successfully on the i.MX8MP LPDDR4  EVK, where the kernel and root filesystem boot properly from QSPI flash. The only differences in our setup are the flash.bin and device tree, which were modified according to the DDR configuration of our custom board. thank you. Re: I.MX8M Plus – Booting U-Boot, Kernel, DTB, and Initramfs from 32 MB QSPI Flash (Kernel Hangs) Hi @Bhardwaj  1. Please add size for booti. The booti needs initrd size. booti ${loadaddr} ${initrd_addr}:0x00C04DB0 ${fdt_addr} booti command — Das U-Boot unknown version documentation 2. The bootlog2 shows that the kernel can't find correct mount point, this should be related to the rootfs parameter you passed in. Best Regards, Zhiming Re: I.MX8M Plus – Booting U-Boot, Kernel, DTB, and Initramfs from 32 MB QSPI Flash (Kernel Hangs) @Bhardwaj  I follow this doc, it works fine.  I just use the ramdisk of the demo.  https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/all-bootloader-device-tree-Linux-kernel-rootfs-in-spi-nor-demo/ta-p/1663994 Re: I.MX8M Plus – Booting U-Boot, Kernel, DTB, and Initramfs from 32 MB QSPI Flash (Kernel Hangs) HI @Zhiming_Liu , We are still facing the same issue on our i.MX8M Plus DDR4 custom board and would appreciate your guidance. We have attached the detailed kernel boot log for your review. The same procedure and images work correctly on the i.MX8M Plus LPDDR4 EVK. The same procedure doing as same as EVK ,But the kernel does not fully boot on our custom DDR4 board. Question : 1.After giving setenv bootargs "console=ttymxc1,115200 earlycon root=/dev/ram rw rdinit=/sbin/init loglevel=8"  going forward , WHY? rather then thos loglevel not moving forwad as said in kernel_bootlog1. 2.Are there any mandatory changes required in the Linux device tree (linux-imx) specifically for a custom DDR4 configuration on i.MX8M Plus, beyond updating DDR timing and memory size? 3.The same kernel image, initramfs, and boot flow work correctly on the i.MX8M Plus LPDDR4 EVK, but fail on our custom DDR4 board. 4.What are the possible reasons for this behavior? Could this be related to DDR configuration, memory mapping, or reserved memory differences? Re: I.MX8M Plus – Booting U-Boot, Kernel, DTB, and Initramfs from 32 MB QSPI Flash (Kernel Hangs) I think you should check the device tree to see if there are any address conflicts with the ramdisk. Alternatively, use a higher address for the ramdisk, or use a smaller ramdisk as the one in the demo Hogole mentioned. Re: I.MX8M Plus – Booting U-Boot, Kernel, DTB, and Initramfs from 32 MB QSPI Flash (Kernel Hangs) You can try booting without mounting the ramdisk first to see if it works. This would mean only the root filesystem is not mounted. This can help narrow down the problem. booti ${loadaddr} - ${fdt_addr} Re: I.MX8M Plus – Booting U-Boot, Kernel, DTB, and Initramfs from 32 MB QSPI Flash (Kernel Hangs) Hi @gehimiy , As suggested, we tried booting the kernel without an initramfs using the command:   booti ${loadaddr} - ${fdt_addr} However, there is no response from the kernel, and the system still hangs at “Starting kernel …”. The below are the Ram address and flash address using to load the files.  setenv loadaddr 0x40480000 // kernel setenv fdt_addr 0x43000000 //dtb setenv initrd_addr 0x43800000 //rootfs (minimal initramfs) setenv kernel_comp_addr_r 0x50000000 setenv kernel_comp_size 0x04000000 Reading Images from QSPI Flash sf read ${loadaddr} 0x0024D000 0x00E59A6F sf read ${fdt_addr} 0x010A6B00 0x00014BBA sf read ${initrd_addr} 0x010BB800 0x00C04DB0 Questions: Where should we check for possible address conflicts between: Kernel load address Initramfs (ramdisk) address Reserved memory regions If the issue is related to ramdisk address overlap, where can we: Change the ramdisk load address in U-Boot and kernel ? Adjust or reserve memory regions in the device tree? Is there a recommended higher memory address range for loading the ramdisk on i.MX8M Plus DDR4 Custom Board systems? With same address and files working fine for IMX8MPLUS LPDDR4 EVK. We have attached the current DTS file for your reference. Please let us know what changes are required. Thanks in advance for your support.
View full article