Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
EB Tresos生成のRTDドライバをFreeRTOS + MPUで使用する こんにちは、 当社ではRTD 6.0.0とBMS 0.9.1を使用しています。EB TresosのSDKを使ってドライバーコードを生成します。MPUを使わないCortex M7ポートのFreeRTOSでは問題なく動作します。 今度はMPUを使うFreeRTOSポートに切り替えたいです。これを2つのステップで行いたい。 1) すべてのタスクを特権的に設定しつつMPUを使用する、すなわち各コンテキストスイッチでMPUを再プログラムすること 2) すべてのタスクを非特権にする。つまり、非特権タスクで使われるドライバーで「ユーザーモードのサポートを有効にする」を有効にする必要があります 今のところ、私は1)で苦戦しています。ドライバ機能は安定して動作しません。例えば、SPIは断続的にしか動作しない。MPU領域が正しく動作していないようです。たとえこれが解決したとしても、2)どうやって実装できるのでしょうか?スーパーバイザコールハンドラは、FreeRTOSとRTDによって提供されます。それらを統合するべきでしょうか? Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @Julián_AragónM。 私はFreeRTOSを公式サイトからダウンロードし、Cortex M7とMPUの両方に対応しているポートを使っていました。私の理解が正しければ、NXPが提供するFreeRTOSを使用する必要があるということですね。私はS32DSで設定可能なNXPのFreeRTOSしか見つけられず、EB Tresosは見つかりませんでした。私の質問は以下の通りです: - 正しいM7+MPUポートが付いている汎用FreeRTOSを使えますか? - もしなければ、NXPが提供するFreeRTOSでEB Tresosで設定できるものはありますか? いずれはASIL-D認証済みのOSを使用する必要がある。NXPが提供するFreeRTOSがASIL-D認証を受けていないなら、別のものに切り替える必要があります。 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @PhilippH さん、 まず、FreeRTOS 7.0.0でMPUの初期サポートが追加されましたCD1、これがあなたが使っているパッケージであることを確認できますか?(または最新リリースである0.8.0 CD1)。 1) どのMPUリージョンが正しく動作していないか教えてもらえますか?可能であれば、設定と手順を共有してください。 また、S32K3 FreeRTOSユーザーマニュアルに含まれる推奨事項に従ってください: 「Use mpu」および「Use mpu wrappers v1」オプションを有効にします。 RTDのMPU領域との競合を避けるため、最初の設定可能領域を0ではなく9に設定してください。 注記: FreeRTOSをMPUサポートと統合するには、FreeRTOSで使用される必要なメモリセクションを定義するためにRTDリンカーファイルを修正する必要があります。アプリケーションに変更を適用する際は、サンプルファイルを参考にしてください。 2) FreeRTOSConfig.h なのでマージは不要だと思います以下のマクロを宣言します。 /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standard names. */ #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define xPortSysTickHandler SysTick_Handler これにより、FreeRTOSのSVC呼び出しが、exceptions.cにあるRTD提供のSVC_Handlerにリダイレクトされます。 よろしくお願いします、 ジュリアン Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @PhilippH さん、 - 正しいM7+MPUポートが付いている汎用FreeRTOSを使えますか? 汎用版FreeRTOSポートを使うこともできますが、S32K3専用の設定については、NXP FreeRTOSパッケージにほとんど提供されている独自のソリューションを実装する必要があります。まずこのポートから始めてみて、問題が解決するかどうか確認してください。 - もしなければ、NXPが提供するFreeRTOSでEB Tresosで設定できるものはありますか? いいえ、提供されているNXPパッケージは現時点でS32DSのみに対応しています。なぜEB TresosでFreeRTOSが必要なのか教えていただけますか? 通常、EB TresosはAUTOSAR準拠のアプリケーションに使われますが、私たちが提供したFreeRTOSパッケージはお客様評価用であり、オートモーティブ認証(ISO26262)を満たしていないため、生産での使用は推奨されていません。FreeRTOSはオープンソースソフトウェアであり、NXPがセーフティ認証なしでリファレンスソフトとして提供しているため、コードドロップ(CD)品質としてリリースされているのがわかります。 もしセーフティ認証済みOSが必要な場合は、パートナーの方からも他の選択肢を検討できます。 SafeRTOS(FreeRTOS機能モデルに基づく、単純な移行付き):https://www.highintegritysystems.com/safertos/ AUTOSAR OS µ-velOSity embOS対応 NXP RTOS プロジェクトに適したサードパーティRTOS、スタック、IDE、コンパイラなどを選ぶのはお客様次第です。 よろしくお願いします、 ジュリアン Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU ご回答ありがとうございました。 NXPが提供するSafeRTOSとPortで動作させることができました。NXPが提供するポートは、SafeRTOSが提供する汎用Cortex M7 + MPUポートで抱えていた問題をすでに解決していました。 EB Tresosの必要性について:最初はS32DSから始めましたが、使用しているICの関係で、当時S32DSには使えなかった最新のBMS SDKが必要でした。Autosarはできるだけ控えめにしたいです。今のところうまくいっていたのは、ドライバ関数を生成し、FreeRTOSから呼び出すことでした。私たちはAutosar RTEを使用しておらず、今後も使う予定はありません。 サードパーティ製OSについて:「簡単な移行で」というのは、SafeRTOSにも同じくらい使いやすいポートが存在するという意味でしょうか?以前SafeRTOSを使っていましたが、AUTOSARドライバではなく、完全に手書きのドライバでした。 Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU こんにちは、 @PhilippH さん、 期待通りに動作していると聞いて安心しました! FreeRTOを使用する場合、SafeRTOSへの移行は一般的に最も簡単な方法です。なぜなら、両者は同じ機能モデル上で動作し、専用の移行ツールを提供しているからです。残念ながら、NXPはS32K3用のSafeRTOSポートを提供していません。 WHISのページを見ると、S32KxxデバイスはRTDでサポートされており、AUTOSARアプリケーションと非AUTOSARアプリケーションの両方で完全なIPと機能カバレッジを提供しているため、Autosarを使わない選択が可能です。 よろしくお願いします、 ジュリアン Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU 参考までに、system.cを編集する必要がありました。S32K3 RTD 6.0.0 によって提供されます: LOCAL_INLINE void Direct_GoToUser(void) { ASM_KEYWORD("push {r0}"); //ASM_KEYWORD("ldr r0, =0x1"); <---- Before: CONTROL.SPSEL changes stack when invoked from FreeRTOS Task. ASM_KEYWORD("ldr r0, =0x3"); // My edit: CONTROL.SPSEL does not change in my case (always invoked from FreeRTOS Task) ASM_KEYWORD("msr CONTROL, r0"); ASM_KEYWORD("pop {r0}"); } この編集が必要な理由は、r0のプッシュとポップの間で、使用されるスタックが変更されてはならないためです。 RTDは常にMSPが使用されることを前提としているが、FreeRTOSのタスクはPSPを使用する。 NXPが提供するFreeRTOSポートのSVCハンドラは、特権昇格時にCONTROL.SPSELを変更せずにCONTROL.nPRIVを正しくクリアします。Direct_GoToUser() 関数を変更して、CONTROL を定数値に設定する代わりに、CONTROL.nPRIV を設定し、他のビットは保持するようにしてください。私の場合、CONTROL=0x3で十分です。なぜなら、私はいつもFreeRTOSタスクからDirect_GoToUser()を呼び出すからですが、一般的には非特権のmain()からも呼び出すことができるからです。 さらに、ARMが推奨するように、CONTROLを変更した後にISB命令を追加すべきかどうかも気になります。
View full article
HB200x AUTOSAR R21-11 バージョン 0.8.0 S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 がサポートしていません こんにちは、NXPさん。 HB200x AUTOSAR仕様SDKをS32 Design Studioに統合しようとしましたが、以下のエラーメッセージが表示されます。 問題点:Mc33hbはツールチェーン/IDEプロジェクトに存在しません。プロジェクトはコンパイルできません! レベル: エラー タイプ:検証 ツール:ツールチェーン/IDEプロジェクト 起源:ペリフェラル ターゲット:ツールチェーン/IDEプロジェクト:M7_0 リソース:platform.driver.mc33hb CDD_Mb33Hb.c ファイルでさえCDD_Mb33Hb.hなどは、SDKがS32 Design Studioアプリケーション(v3.6.4)にインストールされた際には追加されていませんでした。 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ こんにちは、 どうやら間違ったRTDバージョンを使用しているようです。HB200x AUTOSAR R21-11 0.8.0リリースノートに基づき、このソフトウェアはSW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip(S32 Design Studio IDE v3.5にインストールする必要があります)上で使用可能です。 PetrS_0-1789471295419.png BR、ペトル Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ 最新のAUTOSARライブラリを使いたい場合、RTD 6.0.0以上をサポートするHB200x SDKの他バージョンはありますか?
View full article
燃える導火線 IMXRT1024には、ボードをシリアルダウンローダーモードにすることなく(JTAGやUARTなどを介して)ヒューズを焼却する機能はありますか? Re: Burning fuse こんにちは、 @Abhay2080。 OCOTPモジュールを使えば、 リファレンスマニュアルの23.6.1.2.2章「機能」に記載されているように、ソフトウェアを通じてヒューズを焼くことができます。動作については、SDK(バージョン26.06)の例「ocotp_example」を参照してください。SDK Builderを通じて見つけることができます。 23.3.1.2も参照してください。ヒューズとシャドウレジスタの読み取りと23.3.1.3フューズレジスタとシャドウレジスタは、追加情報を提供するセクションをRMに書き込みます。 BR ハビブ Re: Burning fuse 私の調査によると、ヒューズを焼く方法について 1. SPT(最もシンプル) - ただし、起動モードをISPに変更し、UARTかUSBインターフェースが必要です。 2. CST(製造ツール) - ここでも起動モードをISPに変更し、USBインターフェースが必要です。 3. あなたが言及したOCOTPモジュールを経由します - ISPを入れる必要はなく、署名のないイメージ(OCOTPドライバとヒューズを焼き捨てる)をフラッシュしてヒューズを焼き、基板をロックします 私の理解は正しいでしょうか?それともJTAGやSWDのようなプログラム方法が他に見落としているのでしょうか Re: Burning fuse こんにちは、 @Abhay2080 さん。 OCOTPモジュールはシリアルダウンローダーモードに入らずに使用できます。例えば、この コミュニティ投稿 ではケリーがこの別のヒューズプログラミング方法について説明しています。 ヒューズの焼きは一度きりなので、慎重に燃やしてください。 Secure Provisioning Toolは、選択した構成に基づいて必要な値を決定し、正しいヒューズがプログラムされているかを確認するためのガイドとして利用できます。ヒューズとその目的の詳細な説明については、RMの9.4.1章「ブートeFuseの説明」もご参照ください。 BR ハビブ
View full article
Rom Bootloader WriteMemory Command CRC16 calculation I'm currently trying to program a KL17 microcontroller using another microcontroller and the KL17's built in UART ROM bootloader. I got pinging and erasing done, at least on the paper, but I'm struggling with writing data to the KL17. The example in the datasheet (page 43) says that for those bytes (framing packet,  excluding CRC16 bytes + memory write command packet):   0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00  the CRC16 bytes would be 0x06 0x5A. However the CRC16 algorithm provided on page 27 outputs 0x2b 0x56 for me. I've also tried various CRC16 calculators online with many different variants of CRC16 calculation but none of them gave me 0x06 0x5A. Noay_0-1790003799652.png My assumption is that I'm either missing bytes that must be included into the caluclation (I wouldn't know which since the data packets following afterwards all got their own CRC16 bytes) or that someone just messed up the datasheet (which is also unlikely because this example is also exactly like that in the KL17 Sub-Family Reference Manual).  Re: Rom Bootloader WriteMemory Command CRC16 calculation Hello @Noay , Thanks for your post. I think the "0x06 0x5A" value in the Reference Manual is incorrect and most likely a documentation issue. Based on what you provided, your CRC calculation result of "0x2B 0x56" looks correct. You can still use blhost tool to debug Bootloader commands. The parameter "-d" will provide all communication process between Host and Target. I have tried this function on my KL27 board, and please see the screenshot below. We don't have a KL17 EVB board available, could you try the same approach on your KL17 device and see what result you get? Apologies for the documentation mistake. I'll share this with the internal team and recommend updating the documents accordingly. BR Celeste
View full article
关于从 imx-firmware 中移除 W8997 固件的问题 您好,NXP团队, 我联系您是关于imx-firmware仓库中的以下提交: “从 26 年第一季度开始,从电路板支持包中移除 SD/PCIE W8997 支持” 请问W8997固件只是从标准imx固件包中移除,还是已经完全停止对这些设备的支持? 我们可以从 Git 历史记录中检索到最新的 W8997 固件文件,因此我们的主要问题是,在继续使用最新的 imx-firmware 版本的同时,保持对 W8997 支持的推荐方法是什么。 是否支持安装最新的 imx-firmware 软件包,并添加包含这些文件的上一版本中的 W8997 固件文件? 如果是这样,是否有推荐的步骤或打包方法可以干净利落地完成此操作,并避免与未来的 imx 固件更新发生冲突? 我们的目标是在保持对基于 88W8997 的旧已部署硬件的支持的同时,使系统保持最新的 i.MX 固件包。 顺祝商祺! 安托万·热纳尔 Re: Question regarding removal of W8997 firmware from imx-firmware 你好@agennart ,希望你一切都好。 我正在和内部团队核实此事。我收到回复后会尽快回复你。 Re: Question regarding removal of W8997 firmware from imx-firmware 嗨@agennart , 您能否提供更多关于您项目的信息?除了您正在使用的 W8997 模块和您实现的接口(PCIe 或 SDIO)之外。 Re: Question regarding removal of W8997 firmware from imx-firmware 我没有使用 W8997 的项目。我正在尝试提升 Buildroot 项目中的 `imx-firmware` 版本。Buildroot 的目标是在保持与旧硬件兼容性的同时,也支持新硬件,因此进行了此次更新。 问题在于这次更新会破坏与旧硬件的兼容性,所以我需要一种方法来保持这种兼容性。 我认为有两种可能的情况: 1. NXP 已停止对旧硬件的支持。在这种情况下,Buildroot 项目需要一种方法来选择合适的 `imx-firmware` 版本,以保持与旧硬件的兼容性。 2. NXP 已将对旧硬件的支持转移到另一个代码包,软件包/项目中。在这种情况下,Buildroot 项目需要更新或集成该软件包/项目以保持兼容性。 Re: Question regarding removal of W8997 firmware from imx-firmware 嗨@agennart , 我们将通过 Github 上的专用热修复分支为 88W8997 提供支持,包括基于LF 6.12.49_2.2.0 版本基线的 W8997 驱动程序和固件。这些分支将包含所有面向 W8997 的未来非周期性版本。因此,您可以更新您的环境以引用以下热修复分支: 驱动程序分支 - GitHub - https://github.com/nxp-imx/mwifiex/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 固件分支 - GitHub - https://github.com/nxp-imx/imx-firmware/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 为了与 W8997 兼容,建议指向共享的热修复分支,因为主分支将不再获得对该设备的进一步支持。 请告诉我这些信息是否符合您的要求。
View full article
S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 不支持 HB200x AUTOSAR R21-11 版本 0.8.0 您好,NXP, 我尝试将 HB200x AUTOSAR 规范 SDK 集成到 S32 Design Studio 中,但收到以下错误消息: 问题:在工具链/IDE 项目中找不到 Mc33hb。该项目无法编译! 级别:错误 类型:验证 工具:工具链/IDE 项目 来源:外围设备 目标:工具链/IDE 项目:M7_0 资源:platform.driver.mc33hb 甚至包括 CDD_Mb33Hb.c 文件在 S32 Design Studio 应用程序 (v3.6.4) 中安装 SDK 时,尚未添加 CDD_Mb33Hb.h 等文件。 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ 你好, 您似乎使用了错误的RTD版本。根据 HB200x AUTOSAR R21-11 0.8.0 发行说明,该软件可以基于 SW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip 使用(该软件需要安装在 S32 Design Studio IDE v3.5 中)。 PetrS_0-1789471295419.png BR,彼得 Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ 是否有其他版本的 HB200x SDK 支持 RTD 6.0.0 或更高版本?因为我们希望在我们的用例中使用最新的 AUTOSAR 库。
View full article
ROM引导加载程序写入内存命令CRC16计算 我目前正在尝试使用另一个微控制器和 KL17 内置的 UART ROM 引导加载程序对 KL17 微控制器进行编程。我已经完成了 ping 和擦除操作,至少在纸面上是这样,但是我在向 KL17 写入数据时遇到了困难。数据手册(第 43 页)中的示例指出,对于这些字节(帧数据包,不包括 CRC16 字节 + 内存写入命令数据包): 0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00 CRC16 字节为 0x06 0x5A。但是,第 27 页提供的 CRC16 算法对我输出的是 0x2b 0x56。我也尝试过网上各种 CRC16 计算器,以及许多不同的 CRC16 计算方法,但它们都没有给出 0x06 0x5A 的结果。 Noay_0-1790003799652.png 我的假设是,要么是我漏掉了计算中必须包含的字节(我不知道是哪些,因为后面的数据包都有自己的 CRC16 字节),要么是有人把数据表搞砸了(这也不太可能,因为这个例子和 KL17 子系列参考手册中的例子一模一样)。 Re: Rom Bootloader WriteMemory Command CRC16 calculation 你好@Noay , 感谢你的帖子。我认为参考手册中的“0x06 0x5A”值不正确,很可能是文档错误。根据您提供的信息,您的 CRC 计算结果“0x2B 0x56”看起来是正确的。 您仍然可以使用 blhost 工具来调试引导加载程序命令。参数“-d”将提供主机和目标之间的所有通信过程。 我已在我的 KL27 板上尝试了这个功能,请参见下面的屏幕截图。 我们没有 KL17 EVB 板,您能否在您的 KL17 设备上尝试相同的方法,看看结果如何? 对于文档错误,我深表歉意。我会将此情况反馈给内部团队,并建议相应地更新文档。 BR 塞莱斯特
View full article
imx-firmwareからW8997ファームウェアを削除することに関する質問 NXPチームの皆様、こんにちは。 imx-firmwareリポジトリにおける以下のコミットに関してご連絡差し上げております。 「26Q1以降、BSPからSD/PCIE W8997サポートを解除」 W8997のファームウェアは標準のimx-firmwareパッケージからのみ削除されたのか、それともこれらのデバイスのサポートが完全に終了したのか、教えていただけますか? Git履歴から最後のW8997ファームウェアファイルは取得できるので、主な質問は最新のimxファームウェアを使い続けながらW8997のサポートを維持する推奨方法についてです。 最新のimx-firmwareパッケージをインストールして、それらを含む最後のリリースのW8997ファームウェアファイルを追加することはサポートされていますか? もしそうなら、これをきれいに処理し、将来のimxファームウェアアップデートとの競合を避けるための推奨される手順やパッケージング方法はありますか? 私たちの目標は、88W8997をベースにした古い展開ハードウェアのサポートを維持しつつ、システムを最新の i.MX ファームウェアパッケージに維持することです。 よろしくお願いいたします。 アントワーヌ・ジェナール Re: Question regarding removal of W8997 firmware from imx-firmware こんにちは、 @agennart さん。お元気でお過ごしでしょうか。 社内チームに確認中です。返信があり次第、ご連絡いたします。 Re: Question regarding removal of W8997 firmware from imx-firmware こんにちは、 @agennart さん。 プロジェクトの詳細を教えていただけますか?あなたが使っているW8997モジュールや、実装したインターフェース(PCIeまたはSDIO)も含めて。 Re: Question regarding removal of W8997 firmware from imx-firmware 私はW8997を使用するプロジェクトを持っていません。Buildrootプロジェクトで`imx-firmware`のバージョンを上げようとしています。Buildrootは、旧型のハードウェアとの互換性を維持しつつ、新型ハードウェアもサポートすることを目指しており、今回のアップデートはそのためのものです。 問題は、このアップデートが古いハードウェアとの互換性を壊してしまうため、その互換性を維持する方法が必要なことです。 私は二つの可能なシナリオを考えています。 1. NXPは単純に古いハードウェアのサポートを廃止しました。その場合、Buildrootプロジェクトは古いハードウェアとの互換性を維持するために適切なバージョンの「imx-firmware」を選択する方法が必要です。 2. NXPは旧ハードウェアのサポートを別のパッケージ/プロジェクトに移しました。その場合、Buildrootプロジェクトは互換性を維持するためにそのパッケージやプロジェクトを更新または統合する必要があります。 Re: Question regarding removal of W8997 firmware from imx-firmware こんにちは、 @agennart さん。 88W8997のサポートは、Github上の専用ホットフィックスブランチを通じて、W8997ドライバーとLF 6.12.49_2.2.0リリースベースラインに基づくファームウェアの両方で提供されます。これらのブランチには、今後のW8997を対象としたオフサイクルリリースがすべて含まれます。したがって、以下のホットフィックスブランチを参照するように環境を更新してください。 ドライバーブランチ - GitHub - https://github.com/nxp-imx/mwifiex/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 ファームウェアブランチ - GitHub - https://github.com/nxp-imx/imx-firmware/tree/hotfix/lf-6.12.49_2.2.0_hotfix_w8997 W8997との互換性を確保するために、メインブランチはこのデバイスへのさらなるサポートを受けないため、共有ホットフィックスブランチを指すのが推奨されています。 この情報がご要望に合致するかどうかお知らせください。
View full article
Burning fuse In IMXRT1024 is there any provision to burn fuses without putting the board into serial downloader mode through(may be through JTAG or UART) Re: Burning fuse Hello @Abhay2080, You can burn fuses through software using the OCOTP module, as mentioned in the chapter 23.6.1.2.2 "Function" of the Reference Manual.  Please refer to the SDK (version 26.06) example called ocotp_example in order to know how it works. You can find through SDK Builder. Please also refer to 23.3.1.2 Fuse and Shadow Register Read and 23.3.1.3 Fuse and Shadow Register Writes sections in the RM which provides additional information. BR Habib Re: Burning fuse As per my research to burn fuses 1. SPT(simplest) - But we need to change boot mode to ISP and need either UART or USB interface. 2. CST(Mfg tool) - Here also we need to change boot mode to ISP and need USB interface. 3. Through OCOTP module as you mentioned - No need to put in ISP just flash unsigned image (OCOTP drivers and fuses to burn) and burn fuses and then board is locked Is my understanding correct or i am missing some more ways like through JTAG/SWD we can program Re: Burning fuse Hello @Abhay2080, You can use the OCOTP module without entering Serial Downloader Mode. For example, in this community post Kerry describes this alternative method for programming fuses. Please keep in mind that burning fuses can only be done once, so please burn with caution. The Secure Provisioning Tool can help determine the required value based on the configuration you select, which you can use as guide for ensuring that the correct fuses are programmed. Please also refer to chapter 9.4.1 "Boot eFuse Descriptions" in the RM, which provides a detailed description of fuse and its purpose. BR Habib
View full article
HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_2025 Hello NXP, I tried to integrate the HB200x AUTOSAR spec SDK into the S32 Design Studio but I am getting the following error message: Issue: Mc33hb is not found in the toolchain/IDE project. The project will not compile! Level: Error Type: Validation Tool: Toolchain/IDE project Origin: Peripherals Target: Toolchain/IDE project: M7_0 Resource: platform.driver.mc33hb Even the files CDD_Mb33Hb.c CDD_Mb33Hb.h etc., have not been added when the SDK was installed in the S32 Design Studio application (v3.6.4) Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ Hi,  seems you are using wrong RTD version. Based on HB200x AUTOSAR R21-11 0.8.0 release note this software can be used on top of SW32K3_RTD_4.4_R21-11_3.0.0_D2303_DS_updatesite.zip (which needs to be installed in S32 Design Studio IDE v3.5). PetrS_0-1789471295419.png BR, Petr Re: HB200x AUTOSAR R21-11 Version 0.8.0 not supported by S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_ Are there other versions of the HB200x SDK that support RTD 6.0.0 or greater, as we would like to use the newest AUTOSAR libraries for our use case?
View full article
Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello, we use the RTD 6.0.0 and BMS 0.9.1. SDK in EB Tresos to generate our driver code. It runs fine under FreeRTOS with Cortex M7 port that does not use the MPU. Now, we want to switch to a FreeRTOS port that does use the MPU. I want to do this in two steps: 1) Making all tasks privileged but using the MPU, i.e. the MPU is reprogrammed in each context switch 2) Making all tasks unprivileged. That means I have to enable "Enable user mode support" in the drivers that are used by unprivileged tasks Right now, I struggle at 1). Driver functions do not work reliably. For example, SPI only works intermittently. It seems as MPU regions are not working correctly. Even if this is resolved, how could 2) be implemented? The supervisor call handler is given by FreeRTOS and the RTD. Am I supposed to merge them? Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @Julián_AragónM, I downloaded FreeRTOS from their website and used a port that supports both Cortex M7 and the MPU. If I understand you correctly, I need to use the NXP-provided FreeRTOS. I only found FreeRTOS by NXP that can be configured in S32DS, not EB Tresos. My questions are as follows: - Can I use the generic FreeRTOS, provided with correct M7+MPU Port? - If not, is there an NXP-provided FreeRTOS that can be configured in EB Tresos? We need to use an ASIL-D certified OS at some point. If the NXP-provided FreeRTOS is not ASIL-D certified, we need to switch to something else. Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @PhilippH, Firstly, MPU initial support was added in FreeRTOS 7.0.0 CD1, can you confirm this is the package you are using? (or 0.8.0 CD1, which is the latest release).  1) Can you share which MPU regions are not working correctly? If possible, please share configuration and routine.  Also, please follow the recommendations included inside the S32K3 FreeRTOS User Manual: Enable Use mpu and Use mpu wrappers v1 options. Set first configurable region to 9 instead of 0 to avoid conflict with MPU region from RTD. Note: Integrating FreeRTOS with MPU support requires modifications in the RTD linker file to define the required memory sections used by FreeRTOS. Use the example files as reference when applying changes to your application. 2) I believe merging is not required, as FreeRTOSConfig.h declares the following macros: /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS standard names. */ #define vPortSVCHandler SVC_Handler #define xPortPendSVHandler PendSV_Handler #define xPortSysTickHandler SysTick_Handler This redirects FreeRTOS's SVC calls to the RTD-provided SVC_Handler in exceptions.c. Best regards, Julián Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @PhilippH, - Can I use the generic FreeRTOS, provided with correct M7+MPU Port? You can use the generic FreeRTOS port; however, you will need to implement your own solution for S32K3-specific configuration, which is mostly provided in the NXP FreeRTOS package already. Please try to start with this port to see if it solves the problem. - If not, is there an NXP-provided FreeRTOS that can be configured in EB Tresos? No, the provided NXP package is compatible only with S32DS for now. Could you share why do you need FreeRTOS with EB Tresos? Usually, EB Tresos is used for AUTOSAR compliant applications, however, the FreeRTOS package we provided is just for customer evaluation, not recommended to be used in production since it does not meet automotive certifications (ISO26262). You can see it is released as Code Drop (CD) Quality, this is because FreeRTOS is an open-source software and NXP provides it as a reference software without any safety certification. If your application requires a safety-certified OS, you can explore other options, even from our partners: SafeRTOS (Based on the FreeRTOS functional model, with simple migration): https://www.highintegritysystems.com/safertos/ AUTOSAR OS µ-velOSity embOS-Safe NXP RTOS It is up to the customer to select the appropriate third-party RTOS, stacks, IDEs, compilers, etc. for their project. Best regards, Julián Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Thanks a lot for the answer. I got it working with the NXP-provided SafeRTOS and Port as the NXP-provided port already solved the problems I had with the generic Cortex M7 + MPU port provided by SafeRTOS. Regarding our need for EB Tresos: We started with S32DS, but due to the ICs we use, we needed a recent version of the BMS SDK, which was not available in S32DS (at least at the time). We want to do Autosar as little as possible. What worked for now was to generate the driver functions and calling them from FreeRTOS. We do not use and do not plan to use the Autosar RTE. Regarding the 3rd party OS's: Does "With simple migration" mean that an equally user-friendly port exist for SafeRTOS? We used SafeRTOS before, but not with Autosar drivers, but purely handwritten drivers. Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU Hello @PhilippH, Good to hear it is working as expected! Migrating to SafeRTOS is generally the simplest path when using FreeRTOs, as they both work on the same functional model, and provide some dedicated migration tools. NXP does not provide a SafeRTOS port for S32K3, unfortunately. From WHIS' page, I can see S32Kxx devices are supported through our RTD's, which provide full IP and feature coverage for both AUTOSAR and non-AUTOSAR applications, meaning you can choose to not use Autosar. Best regards, Julián Re: Using EB Tresos-generated RTD drivers with FreeRTOS + MPU FYI, I had to edit system.c supplied by S32K3 RTD 6.0.0: LOCAL_INLINE void Direct_GoToUser(void) { ASM_KEYWORD("push {r0}"); //ASM_KEYWORD("ldr r0, =0x1"); <---- Before: CONTROL.SPSEL changes stack when invoked from FreeRTOS Task. ASM_KEYWORD("ldr r0, =0x3"); // My edit: CONTROL.SPSEL does not change in my case (always invoked from FreeRTOS Task) ASM_KEYWORD("msr CONTROL, r0"); ASM_KEYWORD("pop {r0}"); } This edit is needed because the used stack must not be changed between push and pop of r0. The RTD assumes that MSP is always used, but FreeRTOS tasks use the PSP. The SVC Handler of the NXP-provided FreeRTOS port correctly clears CONTROL.nPRIV without changing CONTROL.SPSEL when raising privilege. You should change Direct_GoToUser() to set CONTROL.nPRIV, preserving the other bits, instead of setting CONTROL to a constant value. In my case, CONTROL=0x3 suffices because I always call Direct_GoToUser() from a FreeRTOS task, but in the general case it could also be invoked from unprivileged main(). Additionally, I wonder if an ISB instruction should be added after changing CONTROL, as ARM recommends.
View full article
ROMブートローダーのWriteMemoryコマンドのCRC16計算 現在、別のマイコンとKL17内蔵のUART ROMブートローダーを使ってKL17のマイクロコントローラをプログラムしようとしています。少なくとも紙の上では、pingと消去は完了しましたが、KL17へのデータ書き込みに苦戦しています。データシートの例(43ページ)には、これらのバイト(CRC16バイトとメモリ書き込みコマンドパケットを除くフレーミングパケット)について、次のように記載されています。 0x5A, 0xA4, 0x0C, 0x00, 0x04, 0x00 , 0x00, 0x02, 0x00, 0x04, 0x00, 0x20, 0x64, 0x00, 0x00, 0x00 CRC16バイトは0x06 0x5Aになります。しかし、27ページに記載されているCRC16アルゴリズムでは、私の環境では0x2b 0x56が出力されます。また、CRC16の計算方法のさまざまなバリエーションを含む様々なCRC16カリキュレータをオンラインで試しましたが、どれも出0x06 0x5Aはありませんでした。 Noay_0-1790003799652.png 私の推測では、計算に含めるべきバイトが欠けているのかもしれません(どのバイトかは分かりません。なぜなら、その後のデータパケットはすべてそれぞれCRC16バイトが割り当てられているからです)。あるいは誰かがデータシートを誤ったのかもしれません(これもまたKL17サブファミリ参照マニュアルにまさに同じ例なので可能性は低いです)。 Re: Rom Bootloader WriteMemory Command CRC16 calculation こんにちは、 @Noay さん。 投稿ありがとうございます。リファレンス・マニュアルの「0x06 0x5A」値は誤りで、おそらくドキュメントの問題だと思います。ご提供いただいた情報に基づくと、CRC計算結果の「0x2B 0x56」は正しいようです。 blhostツールを使ってブートローダーコマンドのデバッグは可能です。パラメータ「-d」を指定すると、ホストとターゲット間のすべての通信プロセスが提供されます。 KL27ボードでこの機能を試してみました。下のスクリーンショットをご覧ください。 KL17のEVBボードは入手できません。同じ方法をKL17デバイスで試してみて、どんな結果が得られるか試してみませんか? ドキュメントの誤りをお詫びします。この件を社内チームと共有し、それに応じて文書を更新するよう提案します。 BR セレステ
View full article
VFIO_FLS_MC:RESET 设备失败 LX2160:运行应用程序时出现以下错误。 重启后运行正常。下次又出现同样的错误。如果我按如下方式配置,就会出现这个问题。 #导出 DPIO_COUNT=20 设置 -x #导出 DPIO_COUNT=10 # ls-listni #检查40G是否已启用 #如果启用了 40G 端口,则将其移除(40G=dpmac.2) echo dpni.1 > /sys/bus/fsl-mc/drivers/fsl_dpaa2_eth/unbind 恢复 dpni 销毁 dpni.1 echo 0 > /proc/sys/kernel/randomize_va_space #导出 DPIO_COUNT=20 导出 DPMCP_COUNT=3 export FS_ENTRIES=12 #/usr/local/dpdk/dpaa2/dynamic_dpl.sh dpmac.3 /usr/local/dpdk/dpaa2/dynamic_dpl.sh dpni dpni -b 00:00:00:00:05:00 # dpni.1 00:00:00:00:05:01 # dpni.2 00:00:00:00:05:02 ls-addni --no-link #eth0 dpni.3 ls-addni --no-link #eth2 dpni.4 #/////输出///////// # 从 VFIO 中解除 dprc.2 的绑定 echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/unbind #dpn.2 是 dynamicdpl.sh 的输出。 #dpni.1 dpmac.4-动态的- # #restool dprc disconnect dprc.2 --endpoint=dpni.1 restool dpdmux create --num-ifs=3 --method DPDMUX_METHOD_MAC --max-dmat-entries=3 --manip=DPDMUX_MANIP_NONE restool dprc connect dprc.1 --endpoint1=dpmac.3 --endpoint2=dpdmux.0.0 restool dprc connect dprc.1 --endpoint1=dpni.1 --endpoint2=dpdmux.0.1 restool dprc connect dprc.1 --endpoint1=dpni.3--endpoint2=dpdmux.0.2 restool dpdmux create --num-ifs=3 --method DPDMUX_METHOD_MAC --max-dmat-entries=3 --manip=DPDMUX_MANIP_NONE restool dprc connect dprc.1 --endpoint1=dpmac.4 --endpoint2=dpdmux.1.0 restool dprc connect dprc.1 --endpoint1=dpni.2--endpoint2=dpdmux.1.1 restool dprc connect dprc.1 --endpoint1=dpni.4--endpoint2=dpdmux.1.2 #echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind # 将 DPRC 绑定回 VFIO echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind # 出口朝鲜民主主义人民共和国 导出 DPRC=dprc.2 [3103.545665]vfio-fsl-mc dprc.2:VFIO_FLS_MC:重置设备失败(-13) [ 3103.545690] ------------[ 从此处剪切 ]------------ [ 3103.545701]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.545703]链接的模块:libdes mali_dp [ 3103.545715]CPU:2 PID:3644 通信:gnb_du_layer2 未被污染 5.10.35 #5 [ 3103.545717]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.545721]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.545724] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.545727] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.545729] sp : ffff800012ef3c90 [ 3103.545731] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.545735]x27:0000000000000000 x26:0000000000000000 [ 3103.545740] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.545745] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.545749] x21: ffff0e7d1edc7800 x20: ffff0e7d3d39f040 [ 3103.545754] x19: ffff0e7d1d71db80 x18: 0000000000000001 [ 3103.545758] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.545763] x15: ffff0e7d3d39f040 x14: 000000000000007dd [ 3103.545767] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.545771] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.545776] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.545781] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.545785] x5 : 0000000000000000 x4 : ffff0e83fc27d860 [3103.545789]x3:ffff0e83fc284770 x2:0000000000000000 [3103.545793]x1:0000000000000000x0:0000000000000000 [ 3103.545798]调用跟踪: [ 3103.545802] vfio_fsl_mc_release+0xdc/0x190 [ 3103.545806] vfio_device_fops_release+0x24/0x48 [ 3103.545811] __fput+0x78/0x230 [ 3103.545814] __ __fput+0x10/0x20 [ 3103.545818] task_work_run+0x80/0x140 [ 3103.545821] do_exit+0x324/0xa08 [ 3103.545824] do_group_exit+0x44/0xa0 [ 3103.545826] __wake_up_parent+0x0/0x30 [ 3103.545831] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.545834] do_el0_svc+0x24/0x90 [ 3103.545839] el0_svc+0x14/0x20 [ 3103.545841] el0_sync_handler+0xb0/0xb8 [ 3103.545845] el0_sync+0x178/0x180 [ 3103.545847] ---[ 跟踪结束 d15991a0fbaef713 ]--- [3103.546381]vfio-fsl-mc dprc.2:VFIO_FLS_MC:RESET设备失败(-13) [ 3103.546399] ------------[ 从此处剪切 ]------------ [ 3103.546406]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.546411]链接的模块:libdes mali_dp [ 3103.546430]CPU:2 PID:3644 通信:gnb_du_layer2 已污染:GW 5.10.35 #5 [ 3103.546435]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.546441]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.546447] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.546453] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.546458] sp : ffff800012ef3c90 [ 3103.546462] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.546466]x27:0000000000000000 x26:0000000000000000 [ 3103.546471] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.546475] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.546479] x21: ffff0e7d02d77000 x20: ffff0e7d3d39f040 [ 3103.546484] x19: ffff0e7d1dc13480 x18: ffffb28536ab3470 [ 3103.546488] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.546492] x15: ffff0e7d3d39f040 x14: 0000000000000805 [ 3103.546497] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.546501] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.546506] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.546510] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.546514] x5 : 0000000000000000 x4 : ffff0e83fc27d860 [3103.546518]x3:ffff0e83fc284770 x2:0000000000000000 [3103.546522]x1:0000000000000000x0:0000000000000000 [ 3103.546527]调用跟踪: [ 3103.546529] vfio_fsl_mc_release+0xdc/0x190 [ 3103.546532] vfio_device_fops_release+0x24/0x48 [ 3103.546536] __fput+0x78/0x230 [ 3103.546539] __ __fput+0x10/0x20 [ 3103.546541] task_work_run+0x80/0x140 [ 3103.546544] do_exit+0x324/0xa08 [ 3103.546546] do_group_exit+0x44/0xa0 [ 3103.546548] __wake_up_parent+0x0/0x30 [ 3103.546552] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.546555] do_el0_svc+0x24/0x90 [ 3103.546557] el0_svc+0x14/0x20 [ 3103.546559] el0_sync_handler+0xb0/0xb8 [ 3103.546562] el0_sync+0x178/0x180 [ 3103.546564] ---[ 跟踪结束 d15991a0fbaef714 ]--- [3103.547072]vfio-fsl-mc dprc.2:VFIO_FLS_MC:RESET设备失败(-13) [ 3103.547086] ------------[ 从此处剪切 ]------------ [ 3103.547090]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.547091]链接的模块:libdes mali_dp [ 3103.547098]CPU:2 PID:3644 通信:gnb_du_layer2 已污染:GW 5.10.35 #5 [ 3103.547100]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.547103]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.547105] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.547107] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.547109] sp : ffff800012ef3c90 [ 3103.547111] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.547116]x27:0000000000000000 x26:0000000000000000 [ 3103.547120] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.547125] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.547129] x21: ffff0e7d02d32000 x20: ffff0e7d3d39f040 [ 3103.547133] x19: ffff0e7d1dc13d80 x18: ffffb28536ab3470 [ 3103.547138] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.547142] x15: ffff0e7d3d39f040 x14: 0000000000000082d [ 3103.547146] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.547151] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.547155] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.547159] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.547164] x5 : ffff0e83fc27d860 x4 : 0000000000000000 [ 3103.547168] x3 : 0000000000000027 x2 : 0000000000000000 [3103.547172]x1:0000000000000000x0:0000000000000000 [ 3103.547176]调用跟踪: [ 3103.547179] vfio_fsl_mc_release+0xdc/0x190 [ 3103.547182] vfio_device_fops_release+0x24/0x48 [ 3103.547185] __fput+0x78/0x230 [ 3103.547188] __ __fput+0x10/0x20 [ 3103.547190] task_work_run+0x80/0x140 [ 3103.547193] do_exit+0x324/0xa08 [ 3103.547195] do_group_exit+0x44/0xa0 [ 3103.547198] __wake_up_parent+0x0/0x30 [ 3103.547201] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.547204] do_el0_svc+0x24/0x90 [ 3103.547207] el0_svc+0x14/0x20 [ 3103.547209] el0_sync_handler+0xb0/0xb8 [ 3103.547211] el0_sync+0x178/0x180 [ 3103.547213] ---[ 跟踪结束 d15991a0fbaef715 ]--- [3103.547721]vfio-fsl-mc dprc.2:VFIO_FLS_MC:重置设备失败(-13) [ 3103.547735] ------------[ 从此处剪切 ]------------ [ 3103.547739]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.547740]链接的模块:libdes mali_dp [ 3103.547748]CPU:2 PID:3644 通信:gnb_du_layer2 已污染:GW 5.10.35 #5 [ 3103.547750]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.547752]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.547755] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.547757] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.547759] sp : ffff800012ef3c90 [ 3103.547761] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.547765]x27:0000000000000000 x26:0000000000000000 [ 3103.547770] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.547777] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.547781] x21: ffff0e7d1e989000 x20: ffff0e7d3d39f040 [ 3103.547785] x19: ffff0e7d1dcc6680 x18: ffffb28536ab3470 [ 3103.547790] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.547794] x15: ffff0e7d3d39f040 x14: 0000000000000855 [ 3103.547798] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.547802] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.547807] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.547812] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.547819] x5 : ffff0e83fc27d860 x4 : 0000000000000000 [ 3103.547823] x3 : 0000000000000027 x2 : 0000000000000000 [3103.547827]x1:0000000000000000x0:0000000000000000 [ 3103.547831]调用跟踪: [ 3103.547834] vfio_fsl_mc_release+0xdc/0x190 [ 3103.547837] vfio_device_fops_release+0x24/0x48 [ 3103.547840] __fput+0x78/0x230 [ 3103.547843] __ __fput+0x10/0x20 [ 3103.547845] task_work_run+0x80/0x140 [ 3103.547848] do_exit+0x324/0xa08 [ 3103.547850] do_group_exit+0x44/0xa0 [ 3103.547853] __wake_up_parent+0x0/0x30 [ 3103.547858] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.547861] do_el0_svc+0x24/0x90 [ 3103.547864] el0_svc+0x14/0x20 [ 3103.547866] el0_sync_handler+0xb0/0xb8 [ 3103.547868] el0_sync+0x178/0x180 [ 3103.547870] ---[ 跟踪结束 d15991a0fbaef716 ]--- [3103.548378]vfio-fsl-mc dprc.2:VFIO_FLS_MC:RESET设备失败(-13) [ 3103.548392] ------------[ 从此处剪切 ]------------ [ 3103.548395]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.548397]链接的模块:libdes mali_dp [ 3103.548404]CPU:2 PID:3644 通信:gnb_du_layer2 已污染:GW 5.10.35 #5 [ 3103.548406]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.548408]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.548411] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.548413] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.548415] sp : ffff800012ef3c90 [ 3103.548417] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.548421]x27:0000000000000000 x26:0000000000000000 [ 3103.548426] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.548430] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.548437] x21: ffff0e7d1ea4e000 x20: ffff0e7d3d39f040 [ 3103.548442] x19: ffff0e7d1dcc6f80 x18: ffffb28536ab3470 [ 3103.548446] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.548450] x15: ffff0e7d3d39f040 x14: 0000000000000087d [ 3103.548455] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.548459] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.548464] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.548468] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.548472] x5 : ffff0e83fc27d860 x4 : 0000000000000000 [ 3103.548479] x3 : 0000000000000027 x2 : 0000000000000000 [3103.548483]x1:0000000000000000x0:0000000000000000 [ 3103.548488]调用跟踪: [ 3103.548490] vfio_fsl_mc_release+0xdc/0x190 [ 3103.548493] vfio_device_fops_release+0x24/0x48 [ 3103.548497] __fput+0x78/0x230 [ 3103.548500] __ __fput+0x10/0x20 [ 3103.548502] task_work_run+0x80/0x140 [ 3103.548505] do_exit+0x324/0xa08 [ 3103.548507] do_group_exit+0x44/0xa0 [ 3103.548509] __wake_up_parent+0x0/0x30 [ 3103.548513] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.548516] do_el0_svc+0x24/0x90 [ 3103.548519] el0_svc+0x14/0x20 [ 3103.548523] el0_sync_handler+0xb0/0xb8 [ 3103.548526] el0_sync+0x178/0x180 [ 3103.548528] ---[ 跟踪结束 d15991a0fbaef717 ]--- [3103.549035]vfio-fsl-mc dprc.2:VFIO_FLS_MC:重置设备失败(-13) [ 3103.549049] ------------[ 从此处剪切 ]------------ [ 3103.549052]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.549054]链接的模块:libdes mali_dp [ 3103.549060]CPU:2 PID:3644 通信:gnb_du_layer2 已污染:GW 5.10.35 #5 [ 3103.549062]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.549065]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.549067] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.549069] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.549071] sp : ffff800012ef3c90 [ 3103.549073] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.549077]x27:0000000000000000 x26:0000000000000000 [ 3103.549082] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.549086] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.549090] x21: ffff0e7d1dd80000 x20: ffff0e7d3d39f040 [ 3103.549094] x19: ffff0e7d1dc09880 x18: ffffb28536ab3470 [ 3103.549098] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.549103] x15: ffff0e7d3d39f040 x14: 00000000000008a5 [ 3103.549107] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.549111] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.549116] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.549120] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.549124] x5 : ffff0e83fc27d860 x4 : 0000000000000000 [ 3103.549129] x3 : 0000000000000027 x2 : 0000000000000000 [3103.549133]x1:0000000000000000x0:0000000000000000 [ 3103.549137]调用跟踪: [ 3103.549139] vfio_fsl_mc_release+0xdc/0x190 [ 3103.549142] vfio_device_fops_release+0x24/0x48 [ 3103.549145] __fput+0x78/0x230 [ 3103.549148] __ __fput+0x10/0x20 [ 3103.549151] task_work_run+0x80/0x140 [ 3103.549153] do_exit+0x324/0xa08 [ 3103.549155] do_group_exit+0x44/0xa0 [ 3103.549158] __wake_up_parent+0x0/0x30 [ 3103.549161] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.549164] do_el0_svc+0x24/0x90 [ 3103.549166] el0_svc+0x14/0x20 [ 3103.549168] el0_sync_handler+0xb0/0xb8 [ 3103.549171] el0_sync+0x178/0x180 [ 3103.549172] ---[ 跟踪结束 d15991a0fbaef718 ]--- [3103.549679]vfio-fsl-mc dprc.2:VFIO_FLS_MC:RESET 设备失败(-13) [ 3103.549693] ------------[ 从此处剪切 ]------------ [ 3103.549699]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.549701]链接的模块:libdes mali_dp [ 3103.549708]CPU:2 PID:3644 通信:gnb_du_layer2 已污染:GW 5.10.35 #5 [ 3103.549710]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.549712]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.549715] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.549717] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.549718] sp : ffff800012ef3c90 [ 3103.549720] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.549725]x27:0000000000000000 x26:0000000000000000 [ 3103.549729] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.549733] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.549738] x21: ffff0e7d1dd9dc00 x20: ffff0e7d3d39f040 [ 3103.549744] x19: ffff0e7d1d6adc80 x18: ffffb28536ab3470 [ 3103.549749] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.549753] x15: ffff0e7d3d39f040 x14: 000000000000008cd [ 3103.549757] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.549762] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.549766] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.549771] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.549775] x5 : ffff0e83fc27d860 x4 : 0000000000000000 [ 3103.549782] x3 : 0000000000000027 x2 : 0000000000000000 [3103.549786]x1:0000000000000000x0:0000000000000000 [ 3103.549790]调用跟踪: [ 3103.549792] vfio_fsl_mc_release+0xdc/0x190 [ 3103.549795] vfio_device_fops_release+0x24/0x48 [ 3103.549798] __fput+0x78/0x230 [ 3103.549801] __ __fput+0x10/0x20 [ 3103.549804] task_work_run+0x80/0x140 [ 3103.549806] do_exit+0x324/0xa08 [ 3103.549809] do_group_exit+0x44/0xa0 [ 3103.549811] __wake_up_parent+0x0/0x30 [ 3103.549814] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.549818] do_el0_svc+0x24/0x90 [ 3103.549822] el0_svc+0x14/0x20 [ 3103.549824] el0_sync_handler+0xb0/0xb8 [ 3103.549827] el0_sync+0x178/0x180 [ 3103.549829] ---[ 跟踪结束 d15991a0fbaef719 ]--- [3103.550346]vfio-fsl-mc dprc.2:VFIO_FLS_MC:RESET设备失败(-13) [ 3103.550360] ------------[ 从此处剪切 ]------------ [ 3103.550368]警告:CPU:2 PID:3644,位于 drivers/vfio/fsl-mc/vfio_fsl_mc.c:212 vfio_fsl_mc_release+0xdc/0x190 [ 3103.550373]链接的模块:libdes mali_dp [ 3103.550393]CPU:2 PID:3644 通信:gnb_du_layer2 已污染:GW 5.10.35 #5 [ 3103.550398]硬件名称:NXP Layerscape LX2160ARDB (DT) [3103.550404]pstate:60000005(nZCv daif-PAN-UAO-TCO BTYPE=--) [ 3103.550410] pc : vfio_fsl_mc_release+0xdc/0x190 [ 3103.550416] lr : vfio_fsl_mc_release+0xdc/0x190 [ 3103.550420] sp : ffff800012ef3c90 [ 3103.550426] x29: ffff800012ef3c90 x28: ffff0e7d3d39f040 [3103.550432]x27:0000000000000000 x26:0000000000000000 [ 3103.550437] x25: 0000000000000000 x24: ffff0e7d3d39f440 [ 3103.550441] x23: ffff0e7d030cc800 x22: 00000000fffffff3 [ 3103.550456] x21: ffff0e7d1ee17800 x20: ffff0e7d3d39f040 [ 3103.550469] x19: ffff0e7d1dc81580 x18: ffffb28536ab3470 [ 3103.550483] x17: ffff0e7d00001088 x16: ffff0e7d000010a8 [ 3103.550496] x15: ffff0e7d3d39f040 x14: 00000000000008f5 [ 3103.550510] x13: ffff0e7d3d39f4a0 x12: 00000000ffffffea [ 3103.550523] x11: ffffb28536b23468 x10: ffffb28536b0b428 [ 3103.550536] x9 : ffffb28536b0b480 x8 : 0000000000017fe8 [ 3103.550549] x7 : c0000000ffffefff x6 : 0000000000000001 [ 3103.550564] x5 : 0000000000000000 x4 : ffff0e83fc27d860 [3103.550577]x3:ffff0e83fc284770 x2:0000000000000000 [3103.550587]x1:0000000000000000x0:0000000000000000 [ 3103.550591]调用跟踪: [ 3103.550594] vfio_fsl_mc_release+0xdc/0x190 [ 3103.550597] vfio_device_fops_release+0x24/0x48 [ 3103.550600] __fput+0x78/0x230 [ 3103.550603] __ __fput+0x10/0x20 [ 3103.550605] task_work_run+0x80/0x140 [ 3103.550608] do_exit+0x324/0xa08 [ 3103.550610] do_group_exit+0x44/0xa0 [ 3103.550612] __wake_up_parent+0x0/0x30 [ 3103.550616] el0_svc_common.constprop.0+0x78/0x1a0 [ 3103.550618] do_el0_svc+0x24/0x90 [ 3103.550621] el0_svc+0x14/0x20 [ 3103.550623] el0_sync_handler+0xb0/0xb8 [ 3103.550626] el0_sync+0x178/0x180 [ 3103.550628] ---[ 跟踪结束 d15991a0fbaef71a ]--- [3103.551136]vfio-fsl-mc dprc.2:VFIO_FLS_MC:RESET 设备失败(-13) Re: VFIO_FLS_MC: reset device has failed 谢谢@Bio_TICFSL,我会执行并确认 Re: VFIO_FLS_MC: reset device has failed 你好, 核心问题是您的安装脚本中缺少 restool dprc assign 步骤。您的脚本: 在 dprc.1 (根容器)下创建 dpdmux.0 和 dpdmux.1 。 连接 dpni.1 / dpni.2 (位于 dprc.2 中,即 VFIO 容器内)到这些 DPDMUX 接口。 将 dprc.2 绑定到 VFIO 驱动程序。 当应用程序退出时,VFIO 驱动程序尝试重置 dprc.2 中的所有对象。然而, dpni.1 / dpni.2 仍然通过外部连接与 dprc.1 中的 dpdmux.0 / dpdmux.1 对象相连。由于存在这些跨容器连接,MC 固件无法干净地重置容器,因为它没有权限控制这些连接 → 返回 -13 (权限被拒绝)。 为什么重启后可以正常工作:冷启动后,DPAA2 对象处于干净的初始状态。第一次运行成功。但是退出时,DPDMUX 连接没有正确断开,导致 MC 处于部分状态。下次运行(不重启)时,容器 RESET 再次失败。 修复:为 DPDMUX 对象添加 restool dprc assign DPDMUX 对象必须分配给 dprc.2 在绑定到 VFIO 之前。这告诉 MC 这些对象归 VFIO 容器所有,并且可以在容器释放时重置。 在创建/连接 DPDMUX 对象 之后 ,并在将 dprc.2 重新绑定到 VFIO 之前 ,插入以下代码行: # Assign dpdmux objects into dprc.2 so VFIO can reset them cleanly restool dprc assign dprc.1 --object=dpdmux.0 --child=dprc.2 --plugged=1 restool dprc assign dprc.1 --object=dpdmux.1 --child=dprc.2 --plugged=1 # Now bind dprc.2 back to VFIO echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind export DPRC=dprc.2   修改后的脚本部分应如下所示: # Unbind dprc.2 from VFIO echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/unbind # Create and connect DPDMUX for port dpmac.3 restool dpdmux create --num-ifs=3 --method DPDMUX_METHOD_MAC --max-dmat-entries=3 --manip=DPDMUX_MANIP_NONE restool dprc connect dprc.1 --endpoint1=dpmac.3 --endpoint2=dpdmux.0.0 restool dprc connect dprc.1 --endpoint1=dpni.1 --endpoint2=dpdmux.0.1 restool dprc connect dprc.1 --endpoint1=dpni.3 --endpoint2=dpdmux.0.2 # Create and connect DPDMUX for port dpmac.4 restool dpdmux create --num-ifs=3 --method DPDMUX_METHOD_MAC --max-dmat-entries=3 --manip=DPDMUX_MANIP_NONE restool dprc connect dprc.1 --endpoint1=dpmac.4 --endpoint2=dpdmux.1.0 restool dprc connect dprc.1 --endpoint1=dpni.2 --endpoint2=dpdmux.1.1 restool dprc connect dprc.1 --endpoint1=dpni.4 --endpoint2=dpdmux.1.2 # *** KEY FIX: Assign dpdmux objects to dprc.2 so VFIO can reset them *** restool dprc assign dprc.1 --object=dpdmux.0 --child=dprc.2 --plugged=1 restool dprc assign dprc.1 --object=dpdmux.1 --child=dprc.2 --plugged=1 # Bind dprc.2 back to VFIO echo dprc.2 > /sys/bus/fsl-mc/drivers/vfio-fsl-mc/bind export DPRC=dprc.2   其他建议 将 MC 固件更新到适用于您 BSP 的最新版本 运行间正确清理(无需重启):在重新运行安装脚本之前,请销毁之前创建的 DPDMUX 对象,以确保系统处于干净状态: restool dpdmux destroy dpdmux.0 restool dpdmux destroy dpdmux.1     检查 /dev/dpaa2_mc_console 处的 MC 控制台日志,以获取可能伴随 -13 错误的其他固件级错误详细信息。 此致
View full article
MIMXRT1176 ADP – SEGGER J-Link 调试问题 大家好, 我目前正在使用MIMXRT1176 / i.MX RT1170 平台。最初我使用MIMXRT1170-EVKB进行开发,但现在已改用MIMXRT1176-ADP来连接并行 RGB 面板。 我 在使用 ADP 板上的 SEGGER J-Link 进行调试时 遇到了问题 。 环境: 电路板:MIMXRT1176-ADP 电路板修订: 700-51950 REV A1 原理图修订: SCH-51950 REV B1 MCUXpresso IDE: v25.6.136 MCUXpresso SDK: v25.09.00 SEGGER J-Link:最新版本 在EVKB上, J-Link 和 LinkServer 都能正常工作。但是,在 ADP 上: 固件刷写成功。 调试器到达main() 函数的第一行。 如果我跨过一次,它会停在: 在地址“0xdeadbeee”处断点,没有可用的调试信息,或者在程序代码之外。 其他位置的断点都能正常工作并被正确触发。 但是, 从断点 恢复/继续操作 再次会导致 0xDEADBEEE 错误 。 请问有人可以确认一下MIMXRT1176-ADP 上的 MCUXpresso IDE 是否完全支持 J-Link吗?是否需要任何特定的J-Link 脚本、复位/调试配置或 ADP 特定的初始化? 这是否与 ADP 上的 内存配置、外部闪存/同步动态随机存取存储器(SDRAM) 或启动代码 有关? 非常感谢您能提供任何关于ADP的J-Link配置指导或有效方案。 谢谢您! Re: MIMXRT1176 ADP – SEGGER J-Link debugging issue 你好@HasanIqbalKhan , 谢谢你的提问! 据我所知,在 MCUXpresso IDE 中使用 JLink 和 RT1170-ADP 时,仅支持“attach”功能,不支持直接调试。这很可能是 JLink 闪存加载器的支持问题。在 IAR 中,这个问题已经解决。由此造成的不便,我们深表歉意。 此致, 加文 Re: MIMXRT1176 ADP – SEGGER J-Link debugging issue 我还尝试了另一种方法,连接了一个外部 MCU-Link,然后尝试通过 MCUXpresso IDE 中的 LinkServer 进行调试。 程序执行到 main 函数后,我可以从那里单步执行,但是当我尝试恢复执行时,它会显示“在地址 0x0 处中断,没有可用的调试信息,或者中断在程序代码之外。”,有时当我尝试重新启动执行时,它会显示“在地址 0x2230c8 处中断,没有可用的调试信息,或者中断在程序代码之外。” 作为参考,我正在尝试运行“MIMXRT1176_dashboard_bt_ble_multiprofile”项目,板上的SW1设置为01,板上的SW5设置为000000000000。 我尝试使用 MCU-Link 进行测试,因为 EVKB 板也使用相同的 MCU-Link,而且测试结果良好。 另外,我认为我们不能使用 Jlink,因为他们的网站上明确提到不支持八进制闪存,而 ADP 板使用的是八进制闪存。 谢谢。 Re: MIMXRT1176 ADP – SEGGER J-Link debugging issue 是否可以通过 USB (J33) 进行调试? Re: MIMXRT1176 ADP – SEGGER J-Link debugging issue 你好@HasanIqbalKhan , 1. J33 是 USB-OTG1 接口,不能用于调试。 2. 并不是 JLink 不支持八进制闪存;只是默认情况下,它只能识别 EVK/EVKB 上的闪存。至于 IAR,这是因为提供了相应的下载算法。如果您对这个话题感兴趣,可以参考 RT-UFL 项目。 3. 有关当前调试器/IDE 支持的信息,请参阅:AN14387: https://docs.nxp.com/bundle/AN14378/page/topics/download_images_to_ADP_board.html 此致, 加文
View full article
Testing HAB without burning fuses I am working on IMXRT1024 core and want to test HAB without burning fuses. And as per datasheet every fuses have their shadow register and CPU/ROM read from that shadow register. I am thinking to write those shadow register and create a scenario such that boot ROM thinks Boards is HAB enabled. But again since boot rom execution is very beginning can you suggest is there any way to leverage the shadow register and create a testing setup? Q.2 -> If suppose in a closed board HAB authentication fails how can i get the audit report? Re: Testing HAB without burning fuses Hello @Abhay2080, Please refer to Kan Li's response in this thread. It describes several approaches for testing HAB without programming the fuses. Regarding your second question, I highly recommend using the Secure Provisioning Tool, as it greatly simplifies the process of creating a HAB-enabled image. The tool automatically generates the CSF and prepares the image so that HAB can properly authenticate it during the boot sequence, which is why this is standard tool to handle applications just like this one. You can follow the Booting an Authenticated (HAB) Image flow to achieve this. Please keep in mind that burning fuses can only be done once, after that the processor can only execute authenticated images.  BR Habib Re: Testing HAB without burning fuses Hello @Abhay2080, Please follow the approach recommended by Kan Li. HAB authentication is performed even when the device is in the Open security configuration, as described in the chapter 9.3.6 "Boot Security Settings" of the RM. Therefore, it is also possible to review the HAB event logs generated by the ROM boot to verify that the HAB authentication process is executing correctly. The main purpose of the shadow registers is to provide a software-accessible representation of the OTP fuse values loaded by the device, as shown the figure 23-1 "OCOTP System Level Block Diagram" of the RM. Regarding the audit logs, I understand that you are referring to the HAB event log generated by the ROM during the boot authentication process. Is my understanding correct? If so, in this community post Gavin Jia explains two methods for observe this log. In particular, the response to question 2 directly addresses the customer's inquiry. BR Habib Re: Testing HAB without burning fuses Yeah, I already went through Kan Li's response, but it does not include anything about the shadow registers. So, my question is simply whether it is possible to use the shadow registers and test them. Regarding the audit logs, I just need them for logging purposes. I understand that using SPT properly will enable us to create HAB successfully.
View full article
Errata document for TJA1103 Is there an errata document for TJA1103? Re: Errata document for TJA1103 Hello naumova Good day! Yes, we do have an errata document, but it is classified as a secure file; therefore, you will need to sign an NDA with us to gain access. Please visit our official website, go to the "Support" section, and select "Support Tickets." There, you can open a case to request access, and you will be directed to the appropriate team. We apologize for any inconvenience this may cause. I hope this information has helped you, please let me know if you need help with anything else. Have a great day and best of luck.
View full article
Seeking help regarding the rotation issue on the RT1052 display. The screen I purchased is portrait orientation, but I need it to be displayed in landscape mode. I used guiguider to generate the basic display code for the RT1052. And add software rotation disp_drv.sw_rotate= 1; disp_drv.rotated = 1;   Set as single buffer SDK_ALIGN( __attribute__ ((section("lvglDisplayBuffer"))) static uint8_t s_frameBuffer[1][DEMO_FB_SIZE], DEMO_FB_ALIGN); SDK_ALIGN( __attribute__ ((section("lvglDisplayBuffer"))) static uint8_t s_lvglBuffer[DEMO_DB_SIZE], DEMO_FB_ALIGN); The screen displays correctly, but the refresh rate is too slow and doesn't meet my needs.   Set as double buffer SDK_ALIGN( __attribute__((section("lvglDisplayBuffer"))) static uint8_t s_frameBuffer[2][DEMO_FB_SIZE], DEMO_FB_ALIGN); Only the backlight is on; the screen is black. why is that?   #if FB_USE_SRAM static void DEMO_WaitVsync(lv_disp_drv_t *disp_drv) { s_framePending = true; #if defined(SDK_OS_FREE_RTOS) if (xSemaphoreTake(s_frameSema, portMAX_DELAY) != pdTRUE) { PRINTF("Display flush failed\r\n"); assert(0); } #else while (s_framePending) { } #endif } static void copy_area(const lv_area_t *area, lv_color_t *color_p, uint8_t *fb, uint32_t fbStrideBytes) { uint32_t y; uint32_t areaWidth = lv_area_get_width(area); fb += (area->y1 * fbStrideBytes + area->x1 * sizeof(lv_color_t)); for (y = area->y1; y <= area->y2; y++) { lv_memcpy(fb, color_p, areaWidth * sizeof(lv_color_t)); fb += fbStrideBytes; color_p += areaWidth; } } static void DEMO_FlushDisplay(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) { /* Wait VSYNC for each small update. / DEMO_WaitVsync(disp_drv); /* Copy data from draw buffer to frame buffer./ copy_area(area, color_p, (uint8_t*) s_frameBuffer, LCD_WIDTH * LCD_FB_BYTE_PER_PIXEL); SCB_CleanInvalidateDCache(); lv_disp_flush_ready(disp_drv); } #else static void DEMO_FlushDisplay(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p) { // DCACHE_CleanByRange((uint32_t)color_p, DEMO_FB_SIZE); DCACHE_CleanInvalidateByRange((uint32_t)color_p, DEMO_FB_SIZE); ELCDIF_SetNextBufferAddr(LCDIF, (uint32_t)color_p); s_framePending = true; #if defined(SDK_OS_FREE_RTOS) if (xSemaphoreTake(s_frameSema, portMAX_DELAY) == pdTRUE) { /* IMPORTANT!!! * Inform the graphics library that you are ready with the flushing*/ lv_disp_flush_ready(disp_drv); } else { PRINTF("Display flush failed\r\n"); assert(0); } #else while (s_framePending) { } /* IMPORTANT!!! * Inform the graphics library that you are ready with the flushing*/ lv_disp_flush_ready(disp_drv); #endif } #endif i.MXRT 105x Re: 求助关于RT1052显示旋转问题 Hi @dsd , Thank you for your question! First, please check the following LVGL limitations: Screen rotation is not supported when full_refresh=1 is enabled. Please refer to: 1. https://github.com/lvgl/lvgl/issues/4060 2. https://forum.lvgl.io/t/why-cannot-rotate-a-full-refreshed-display/10490/3   Additionally, the RT1050 has hardware PXP support for rotation, which is the more recommended solution. Please refer to: https://docs.nxp.com/bundle/GUIGUIDERUG-1.6.1/page/topics/rotate_screen_and_widgets.html And the PXP rotation-related demo in the SDK.   Best regards, Gavin Re: 求助关于RT1052显示旋转问题 Helllo, When using NXP i.MX RT1052 with Guiguider (LVGL) for screen rotation development, the "slow single-buffer refresh and black screen with double-buffer" problem you encounter is mainly due to the mismatch between software rotation and the hardware ELCDIF controller, double-buffer switching mechanism, and memory address index. Best Regards Re: 求助关于RT1052显示旋转问题 Thank you very much, rotating the PXP drive does work and perfectly solves the problem.
View full article
Help Required Replacing Default Winbond Flash with Everspin Memory Custom Flash Driver Hello NXP Community, I am working on an i.MX RT1170 EVKB / MIMXRT1176 board and need some guidance regarding replacing the default Winbond external memory with an Everspin EM032LXQADG13IS2T memory device. Current Hardware The board originally uses a Winbond W25Q512 device. I have replaced it with: Everspin EM032LXQADG13IS2T The main issue is that the Everspin memory does not support SFDP, whereas the default Winbond memory supports SFDP. Current Status I have already been able to communicate with the Everspin memory using the i.MX RT1170 FlexSPI interface. The memory is functionally working when the application is running from RAM. In particular: FlexSPI communication with the Everspin memory is working. Memory read/write operations can be performed. The application image (XIP image) can be loaded/programmed into the Everspin memory using a memory write code. The image stored in the Everspin memory can then be accessed/executed successfully. However, I currently cannot flash/program the application directly to the Everspin memory using the normal i.MX RT1170 flash programming. Since the Everspin memory does not support SFDP, I suspect that the default FlexSPI flash driver/configuration used for the Winbond memory cannot automatically identify/configure the Everspin device. I would like to understand the recommended NXP approach for supporting a non-SFDP memory device. I would appreciate guidance on 1. How can I create a custom flash driver for the Everspin EM032LXQADG13IS2T on i.MX RT1170? 2. Is there an existing example of supporting a non-SFDP SPI/QSPI memory with the i.MX RT1170 FlexSPI controller? Boot ROM|Booting | Flash Development Board Re: Help Required Replacing Default Winbond Flash with Everspin Memory Custom Flash Driver Dear @jyothzz , Thank you for your questions. Yes, the MIMXRT1170_SFDP_QSPI.cfx flash driver is the default flash driver used by the RT1170 EVK and the MCUXpresso SDK: ShellyZhang_0-1790052100477.png Currently, there is no existing example of supporting a non-SFDP SPI/QSPI memory with the i.MX RT1170 FlexSPI controller. The flash drivers that are directly supported without customer modification are listed below: ShellyZhang_1-1790052161488.png You may refer to the information below to create a custom flash driver:  1. https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/How-to-create-a-new-Flash-driver-of-the-MCUXPresso-IDE/ta-p/1274718 2. https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/RT1170-flexSPI1-secondary-QSPI-flash-debug-flashdriver/tac-p/1938828 If you have any questions while developing the custom flash driver, please feel free to reach out. Best Regards, Shelly Re: Help Required Replacing Default Winbond Flash with Everspin Memory Custom Flash Driver Hi @ShellyZhang  Thank you For response it was of great help. We have resolved the flash driver issue with the new memory which does not support SFDP. We used the same i.MXRT117x_SFDP_QSPI Driver. We modifying the SFDP part referring to the non-SFDP Driver of i.MXRT1050_QSPI. Then generated a new driver file (.cfx) which worked fine . Once again thanking you for your guidance. Regards, JYOTHISH
View full article
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 アップデート情報や回避策はありますか?それを使うことは不可能だ Re: NXP Config Tools 26.06 for i.MX not loading saved configuration バージョン26.09をインストールしてテストしてみました。エマヌエーレが挙げた手順と同じ手順に従いましたが、対象はMIMX9529xxxxxです。 不具合の動作は同じで、以前に作成した設定ファイルを読み込むことができません。 Ubuntu 24.04でテスト済み。 よろしくお願いいたします。
View full article
需要帮助:将默认的 Winbond 闪存替换为 Everspin Memory 自定义闪存驱动程序 NXP社区的各位朋友,大家好! 我正在使用i.MX RT1170 EVKB / MIMXRT1176开发板,需要一些关于将默认的 Winbond 外部存储器替换为Everspin EM032LXQADG13IS2T存储器的指导。 当前硬件 主板原先使用的是Winbond W25Q512设备。我已经将其更换为: Everspin EM032LXQADG13IS2T 主要问题是 Everspin 内存不支持 SFDP ,而默认的 Winbond 内存支持 SFDP。 当前状态 我已经能够使用 i.MX RT1170 FlexSPI 接口与 Everspin 内存进行通信。 当应用程序从 RAM 运行时,内存功能正常。尤其: FlexSPI 与 Everspin 存储器的通信正常。 可以执行内存读/写操作。 可以使用内存写入代码将应用程序映像(XIP 映像)加载/编程到 Everspin 内存中。 然后就可以成功访问/执行存储在 Everspin 内存中的图像。 但是,我目前无法使用正常的 i.MX RT1170 闪存编程将应用程序直接烧录/编程到 Everspin 存储器中。 由于 Everspin 存储器不支持 SFDP,我怀疑 Winbond 存储器使用的默认 FlexSPI 闪存驱动程序/配置无法自动识别/配置 Everspin 设备。 我想了解恩智浦 (NXP) 推荐的对非 SFDP 存储设备的支持方法。 我希望得到一些指导。 1. 如何为 i.MX RT1170 上的 Everspin EM032LXQADG13IS2T 创建自定义闪存驱动程序? 2. 是否有使用 i.MX RT1170 FlexSPI 控制器支持非 SFDP SPI/QSPI 存储器的现有示例? 启动 ROM | 启动配置 | 闪存 开发板 Re: Help Required Replacing Default Winbond Flash with Everspin Memory Custom Flash Driver 亲爱的@jyothzz , 谢谢你的提问。 是的,MIMXRT1170_SFDP_QSPI.cfx 闪存驱动程序是 RT1170 EVK 和 MCUXpresso SDK 使用的默认闪存驱动程序: ShellyZhang_0-1790052100477.png 目前还没有使用 i.MX RT1170 FlexSPI 控制器支持非 SFDP SPI/QSPI 存储器的例子。以下列出了无需用户修改即可直接支持的闪存驱动程序: ShellyZhang_1-1790052161488.png 您可以参考以下信息来创建自定义闪存驱动器: 1. https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/How-to-create-a-new-Flash-driver-of-the-MCUXPresso-IDE/ta-p/1274718 2. https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/RT1170-flexSPI1-secondary-QSPI-flash-debug-flashdriver/tac-p/1938828 如果您在开发自定义闪存驱动程序时有任何疑问,请随时联系我们。 顺祝商祺! 雪莉 Re: Help Required Replacing Default Winbond Flash with Everspin Memory Custom Flash Driver 你好@ShellyZhang 非常感谢您的回复,这对我帮助很大。 我们已经解决了新内存不支持SFDP的闪存驱动程序问题。 我们使用了相同的 i.MXRT117x_SFDP_QSPI 驱动程序。我们正在修改 SFDP 部分,使其与 i.MXRT1050_QSPI 的非 SFDP 驱动程序相关。 然后生成了一个新的驱动程序文件(.cfx),运行正常。 再次感谢您的指导。 问候, 占星术
View full article