Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
由 nxp_mbdToolbox_s32K3 创建的版本无法通过 Freemaster 与 MCSPTE1AK344 通信 订购了全新的 mcspte1ak344,安装了所需的所有工具/软件(S32DS、RTD、SDK、Freemaster、Minwin)。 成功使用 nxp_mbdToolbox_s32K3\ S32K3_Examples\ mc\ 下的所有模型创建版本并通过 matlab2025a 下载到 MCSPTE1AK344 但是,当打开相应的 freemaster pmpx 文件时,无法与 MCSPTE1AK344 通信、 始终显示错误消息 " 在任何通信端口 UART " 上均未检测到主板。 检查完窗口/设备管理器后,OpenSDA-CDC 串行端口 (http://www.pemicro.com/opensda)(COM10) 检测到,其驱动程序显示为 windows 能找到的最佳驱动程序。 并安装了另一个名为 Jungo 的驱动程序,包括 PEMicro OpenSDA 调试驱动程序和 pemicrowindrvr。 到目前为止,只有从 mcb_open_loop 创建的版本才能让 freemaster 以 115200 bps 的速度找到板,所有使用其他 MBD 模型从示例中构建的版本都无法让 FreeMaster 找到板。 请大家帮忙 Re: Build created by NXP_MBDToolbox_S32K3 fail to communicate with MCSPTE1AK344 via Freemaster 你好@mchuang、 正如我们之前讨论的那样,其中一个问题是由运输引起的,由于运输过程中的振动,GD3000 板与 S32K344-T172 板接触不当。 为了解决这个问题,我们始终建议将 GD3000 板正确插入 S32K344-T172 板的顶部,按压接头并确保其插入良好。 如果连接不良,则 S32K344 可能无法通过 SPI 与 GD3000 芯片通信;如果一切正常,则板载 RGBLED 将亮起,并根据启动/停止/故障情况显示不同的颜色。 MCSPTE1AK344 开发套件入门中有相关信息 | NXP 半导体 顺祝商祺! Stefan V.
記事全体を表示
MIMXRT1021 内部 RTC 振荡器的特性 我正在使用看门狗,我发现它的源时钟是 RTC 时钟。 我没有使用晶体或外部 RTC 时钟源,因此只能依靠内部环形振荡器。 对环形振荡器特性的规定不一致: 在《硬件用户指南》中,它被指定为"...片上 40 kHz 振荡器。公差为 ±50%" (表 4) 在技术数据表的第 4.1.4 节中也有类似的规格说明但是在第 4.2.4.2 节中它说 " 这个方块的频率范围约为 10—45 kHz。" 选择看门狗超时时间有时是一种微妙的平衡行动,必须容许源时钟容差 +/-50%。 我的问题是 1.实际名义振荡频率是多少?如果不是 32 千赫,为什么不是? 2.如果标称频率不是 32kHz,那不就意味着看门狗超时已经出错了吗? 3.它随温度有何变化?热的时候是加速还是减速? 4.+/-50% 是否包括温度变化? 谢谢! 亚历克斯 i.MX RT102x Re: MIMXRT1021 characteristics of internal RTC oscillator 你好@alex_conway,很抱歉这么晚才回复你。 很抱歉造成您的困惑。我想说的是,我之前与你们分享的数据确实是用于生产的: 32kHz +/- 50% -40C 至 105C。 BR Habib Re: MIMXRT1021 characteristics of internal RTC oscillator 嗨,哈比卜 数据表中的所有信息均经过生产测试。 哪个数据表中包含哪些信息?请您回到我的原帖: "在《硬件用户指南》中,它被指定为"...片上 40 kHz 振荡器。公差为 ±50%" (表 4) 在技术数据表的第 4.1.4 节中也有类似的规格说明但是在第 4.2.4.2 节中它说 " 这个方块的频率范围约为 10—45 kHz。" 其中没有任何一项注明在 -40C 至 105C 温度范围内的频率为 32kHz +/- 50% ,也没有任何一项在表格中列出,而这是制造商通常会遵守的规格。 谢谢! 亚历克斯 Re: MIMXRT1021 characteristics of internal RTC oscillator 你好,@alex_conway、 所以,为了明确起见,您是说 +/-50% 包括所有可能的变化,包括初始值和从 -40C 到 105C 的温度? 是。初始值和温度都包含在这个百分比中 是否在生产中进行了测试?- 即所有芯片是否都经过 -40C 至 105C 的测试,以确保振荡器频率在 +/-50% 或 32kHz 范围内? 数据表中的所有信息均经过生产测试。 BR Habib Re: MIMXRT1021 characteristics of internal RTC oscillator Hiabib, 所以,为了清楚起见,您是说 +/-50% 包括所有可能的变化,包括初始值和从 -40C 到 105C 的温度? 是否在生产中进行了测试?- 即所有芯片是否都经过 -40C 至 105C 的测试,以确保振荡器频率在 +/-50% 或 32kHz 范围内? 谢谢 Alex Re: MIMXRT1021 characteristics of internal RTC oscillator 您好@alex_conway, 正在回答您的问题: 既然您声明标称频率为 32kHz,那么无论振荡器运行在什么频率下,看门狗超时时间是否都以标称的 32.786kHz 为参考? WDOG 的时钟频率来自振荡器。如果振荡器的工作频率低于 32 kHz,这一偏差将直接影响 WDOG 的定时。 因此,内部振荡器有助于加快启动速度并提供防篡改保护,但不应成为 32 kHz 时钟的唯一来源。 +/-50% 中有多少是初始值公差,多少是温度变化? 正如我在上一篇文章中提到的,温度导致的频率偏差受多种因素影响,可能无法预测。不过,在 -40°C 至 105°C 的工作温度范围内,变化将保持在 ±50% 之内。 BR 哈比卜 Re: MIMXRT1021 characteristics of internal RTC oscillator 嗨,哈比卜 感谢您的回答,我有几个后续问题: 既然您声明标称频率为 32kHz,那么无论振荡器运行在什么频率下,看门狗超时时间是否都以标称的 32.786kHz 为参考? +/ -50% 中有多少是初始值容差,有多少是温度变化? 谢谢! 亚历克斯 Re: MIMXRT1021 characteristics of internal RTC oscillator 你好,@alex_conway、 对不起,我的回复晚了。回答您的问题 1.实际名义振荡频率是多少?如果不是 32 千赫,为什么不是? 标称频率为 32 kHz,但根据工艺变化和温度条件,其变化幅度可达 ±50% 。 2.如果标称频率不是 32kHz,那不就意味着看门狗超时已经出错了吗? 您能否提供更多细节,说明您目前是如何测试 WDOG 超时的? 3.它是如何随温度变化的? 温度导致的频率偏差受多种因素影响,可能无法预测。不过,在 -40°C 至 105°C 的工作温度范围内,变化将保持在 ±50% 之内。 4.+/-50% 是否包括温度变化? 是的,±50% 公差考虑了温度变化以及工艺变化。 BR Habib Re: MIMXRT1021 characteristics of internal RTC oscillator 你好 Habib, 我没用 RT1020-EVK,我的板没有 RTC 时钟或水晶。RTC_XTALI 引脚连接至接地,RTC_XTALO 引脚开路。 谢谢 Alex Re: MIMXRT1021 characteristics of internal RTC oscillator 你好,@alex_conway、 我在内部询问,以便获得更多有关标称值和温度对该振荡器影响的信息。感谢您的耐心等待。 与此同时,我还有一个问题:能否请您详细介绍一下目前是如何测试 WDOG 超时的?如果您使用 RT1020-EVK,请注意它包含一个 32kHz 的外部振荡器,这意味着它不依赖于内部振荡器: BR Habib
記事全体を表示
#Cannot 使用 s32k396 评估板控制 fs26 pmic gpio1,2 你好,我目前正在使用 fs26 pmic 和 s32k396 评估板。 要知道,fs26 使用 spi 通信来控制多个状态或引脚,如 gpio、trk1,2 等。 我想激活 gpio 1 密码所以我发送寄存器命令 " sbc_fs26_WriteRegister(FALSE、0x11、0x0318);"-我使用的是 s32ds 实时驱动程序。 (我激活了 gpio1、gpio2、trk1、trk2) 我读取了 M_STATUS 寄存器,从中可以了解 fs26 引脚的状态。 但 gpio 1 引脚没有激活。 此外,我停用了"Sbc_fs26_WriteRegister(FALSE, 0x12, 0x0318);" - 停用所有引脚 但 gpio2 引脚没有停用。 因此,我想知道的是,我们不能使用 spi 通信改变 gpio1、gpio2 的状态吗? 根据数据手册,VCORE_PGOOD 信号与 GPIO2 有关。 最初制造 PMIC 设备时,此配置是否设置为默认配置? 除非使用 otp 配置,否则我们不能改变状态吗?(在 s32ds fs26 示例代码中没有改变状态的寄存器地址[除了 gpio 高、低电平],如 gpio 下拉、上拉)。 谢谢。 顺祝商祺! Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 亲爱的 Hyun 欢迎您祝您愉快 致以最崇高的敬意 约瑟夫 Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 感谢您抽出时间回答我的问题。致以最崇高的敬意 上帝保佑你 Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 亲爱的 Hyun 感谢您提供产品编号。根据原理图,FS2633AMDE4AD 已填充。 根据所附的 FS2633AMDE4AD OTP 配置报告,GPIO 引脚被设置为输入。 请查看 S32K396 MCU 的附加软件。 https://www.nxp.com/app-autopackagemgr/automotive-software-package-manager:AUTO-SW-PACKAGE-MANAGER?currentTab=0&selectedDevices=S32K396 如需在 OTP 模式下启用 FS26,请参阅 FS26 完整数据表中的第 21 节。请下载FS26 产品页面的 "安全 "部分。 请注意,您需要与恩智浦签订有效的 NDA(保密协议),才能下载 FS26 数据表和其他机密文件。 如果您还没有保密协议但想签署一份保密协议,请在此处创建一张新票,恩智浦代表将指导您完成整个流程。 致以最崇高的敬意 约瑟夫 Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 我使用的是 s32k396-bga-dc1 评估板。 可以用 s32 design studio 进行 otp 设置吗? 在下面的示例代码中,我看不到任何 otp 寄存器地址 是否有任何软件可以使用 otp 设置? Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 亲爱的 Hyun 请分享完整的评估板产品编号或评估板的链接,这样我就可以查看你在开发板上使用的是哪个 FS26 版本。OTP 寄存器一旦刻录就不能更改。只有将 FS26 设置为 OTP 模式,才能测试 OTP 寄存器设置。 致以最崇高的敬意 约瑟夫
記事全体を表示
MCU Hi Team, Need the Following details for these parts 1:) RT1170 controller 2:)RT1060 Controller 3:)S32K344EHT1VMMST controller for these parts need following details Unit price($) Unit price($) for 100 Qty Unit price($) for 500 Qty Unit price($) for 1000 Qty Lead time for each part  Environmental status (Reach and ROHS) Re: MCU Hi @Akhilesh-Shindhe , Thank you so much for your interest in our products and for using our community. Please open the following link and select the type of MCU you would like to know about. https://www.nxp.com/products/product-selector:PRODUCT-SELECTOR For example, we click on MIMXRT1171AVM8A, and then you will get all the details you need. Wish it helps you. If you still have question about it, please kindly let me know. Wish you a nice day! Best Regards MayLiu
記事全体を表示
i.MX6ULL割り込みが頻繁にトリガーされます(21f4000.serial)。 皆さん、こんにちは。システムの動作中に遅延が発生していました。トラブルシューティングの結果、RS485周辺機器の割り込み回数が異常であることが判明しました。前夜の割り込み回数は3億回を超えていました。 67: 334823120 GPC 30 レベル 21f4000.シリアル 翌日にはさらに増えました。 このシリアル ポートを使用してデータを送受信するプロセスは 1 つだけです。通常の業務操作では、これほど頻繁にデータが送信されることはありません。 異常波形は以下のとおりです。 通常の波形 周辺機器からRS485通信ケーブルを取り外すと、割り込み回数は正常に戻りました。しかし、その後機器を再起動すると、割り込み回数が1秒あたり数万回増加しました。この問題は最終的にUARTプロセスを再起動することで解決しました。3台の機器を同時に稼働させていますが、この現象は突然発生し、この1台のみで発生しました。正常な動作データは下図のとおりです。 なぜこのようなことが起こるのか知りたいです。よろしくお願いします! i.MX6UL Re: i.MX6ULL 中断频繁触发(21f4000.serial) こんにちは@JosephAtNXP 、 この問題に関してのサポートに心より感謝申し上げます。最新情報をお知らせします。UART4 を使用するプロセスを再開すると、デバイスは通常の動作を再開しました。それ以来監視を続けてきましたが、問題は再発していません。 ちなみに、この RS485 バスには 2 つのスレーブ デバイスがあります。当時、スレーブデバイスからのログを確認しましたが、明らかな異常は見つかりませんでした。実際には、異常状態中に元のパケットをキャプチャするためにプロセスのログ レベルを調整していましたが、そのプロセスの一環として UART4 プロセスを再起動すると問題は解決し、残念ながら問題のあるパケットをキャプチャすることはできませんでした。 よろしくお願いします。 Re: i.MX6ULL 中断频繁触发(21f4000.serial) こんにちは@xisuisan222さん この孤立した動作は物理的な問題のように見えますが、回線にはケーブルやもう一方の端、ハードウェア障害などの原因があるはずです。 すべての要素の電源を入れ直した後、何か違いが見られますか? よろしくお願いします。
記事全体を表示
MIMXRT1021の内部RTC発振器の特性 私はウォッチドッグを使用していますが、そのソースクロックは RTC クロックであることがわかりました。 私は水晶や外部 RTC クロック ソースを使用していないSO、内部リング発振器に依存しています。 リング発振器の特性は一貫して指定されていません。 ハードウェア ユーザー ガイドでは、「...オンチップ 40 kHz 発振器」と指定されています。許容範囲は±50%です(表4) 技術データシートのセクション4.1.4に同様の仕様が記載されています。しかし、セクション 4.2.4.2 には、「このブロックの周波数範囲は約 10~45 kHz です」と記載されています。 ウォッチドッグのタイムアウト時間の選択は、時には微妙なバランス調整を必要とするため、ソース クロックの +/- 50% の許容範囲を考慮する必要があります。 私の質問は次のとおりです: 1. 実際の公称振動周波数はいくらですか?32kHz ではない場合、なぜですか? 2. 公称周波数が 32kHz でない場合、ウォッチドッグ タイムアウトがすでに間違っているということではないでしょうか? 3. 温度によってどのように変化しますか?つまり、熱くなるとスピードが速くなるか遅くなるか? 4. +/-50% には温度変化も含まれますか? よろしくお願いします。 アレックス i.MXRT 102x Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは@alex_conway 、返信が遅くなり申し訳ありません。 混乱させてしまい申し訳ございません。私が言いたかったのは、先ほど共有したデータは実際に本番環境向けのものであるということです。 32kHz +/- 50%、-40℃~105℃。 BR ハビブ Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは、ハビブさん。 データシートのすべての情報は生産時にテストされています。 どのデータシートにどの情報がありますか?私の最初の投稿を参照してください: 「ハードウェア ユーザー ガイド」では、「...オンチップ 40 kHz 発振器」と指定されています。許容範囲は±50%です(表4) 技術データシートのセクション4.1.4に同様の仕様が記載されています。しかし、セクション 4.2.4.2 には、「このブロックの周波数範囲は約 10~45 kHz です」と記載されています。 これらのいずれも、-40℃から105℃で32kHz +/- 50%と記載されておらず、また、これらのいずれも、メーカーが保証する仕様を記載する通常の場所である表に記載されていません。 よろしくお願いします。 アレックス Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは@alex_conway 、 SO、+/-50% には、初期値や -40℃ から 105℃ までの温度など、考えられるすべての変動が含まれるということですか? はい。初期値と温度はこのパーセンテージに含まれます これは製造段階でテストされていますか? - つまり、発振器周波数が +/-50% または 32kHz 以内であることを確認するために、すべてのチップが -40℃ から 105℃ までテストされていますか? データシートのすべての情報は生産時にテストされています。 BR ハビブ Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは、ハビブさん。 SO、+/-50% には、初期値や -40℃ から 105℃ までの温度など、考えられるすべての変動が含まれるということですか? これは製造段階でテストされていますか? - つまり、発振器周波数が +/-50% または 32kHz 以内であることを確認するために、すべてのチップが -40℃ から 105℃ までテストされていますか? ありがとう アレックス Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは@alex_conway 、 あなたの質問にお答えします: 公称周波数が 32kHz であると述べているので、発振器がどの周波数で動作しているかに関係なく、ウォッチドッグ タイムアウト時間は公称 32.786kHz を基準にしているのでしょうか? WDOG のクロック周波数は発振器から得られます。発振器が 32 kHz 以外の周波数で動作する場合、この偏差は WDOG のタイミングに直接影響します。そのため、内部発振器は起動の高速化と改ざん防止に役立ちますが、32 kHz クロックの唯一のソースとしては使用すべきではありません。 +/-50% のうち、初期値許容範囲はどのくらいで、温度変動はどのくらいですか? 前回の投稿でも述べたように、温度による周波数偏差は複数の要因の影響を受け、予測できないCANがあります。ただし、動作温度範囲 -40℃~105℃では、変動は±50%以内に収まります。 BR ハビブ Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは、ハビブさん。 回答ありがとうございます。いくつか追加の質問があります。 公称周波数が 32kHz であると述べているので、発振器がどの周波数で動作しているかに関係なく、ウォッチドッグ タイムアウト時間は公称 32.786kHz を基準にしているのでしょうか? +/-50% のうち、初期値許容範囲はどのくらいで、温度変動はどのくらいですか? よろしくお願いします。 アレックス Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは@alex_conway 、 返信が遅くなり申し訳ありません。あなたの質問にお答えします: 1. 実際の公称振動周波数はいくらですか?32kHz ではない場合、なぜですか? 公称周波数は 32 kHz ですが、プロセスの変動や温度条件に応じて最大 ±50% CAN 変化します。 2. 公称周波数が 32kHz でない場合、ウォッチドッグ タイムアウトがすでに間違っているということではないでしょうか? 現在、WDOG タイムアウトをどのようにテストしているか、詳しく教えていただけますか? 3. 温度によってどのように変化しますか? つまり、熱くなると速度は速くなりますか、それとも遅くなりますか? 温度による周波数偏差は複数の要因の影響を受け、予測できないCANがあります。ただし、動作温度範囲 -40℃~105℃では、変動は±50%以内に収まります。 4. +/-50% には温度変化も含まれますか? はい、±50% の許容範囲は、温度による変動とプロセスの変動を考慮しています。 BR ハビブ Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは、ハビブさん。 私は RT1020-EVK を使用していません。RTC クロックや水晶のないボードを持っています。RTC_XTALI ピンは GND にコネクテッド、RTC_XTALO ピンはオープンになっています。 ありがとう アレックス Re: MIMXRT1021 characteristics of internal RTC oscillator こんにちは@alex_conway 、 この発振器の公称値と温度の影響に関する詳細な情報を得るために、社内で問い合わせてみました。ご辛抱いただきありがとうございます。 ところで、質問があります。現在、WDOG タイムアウトをどのようにテストしているのか、詳細を教えていただけますか?RT1020-EVK を使用している場合は、外部 32kHz 発振器が含まれているため、内部発振器に依存しないことに注意してください。 BR ハビブ
記事全体を表示
Intermittent issue with NNAPI Delegate returning identical inference results on imx-5.10.52-2.1.0 an I am working on the i.MX 8M Plus platform with BSP version imx-5.10.52-2.1.0 (Yocto-based Linux). I have occasionally encountered an issue when using the NNAPI Delegate, where the inference results unexpectedly remain the same even when the input images are changed. This problem seems to occur intermittently rather than under a specific condition. Could you kindly explain why this issue occurs, and whether switching to the VX Delegate in imx-6 or later versions would resolve it? Thank you in advance for your support.
記事全体を表示
VSCode CMake環境でLVGLとRT1060マター開発を統合する こんにちは。RT1060 を使用してマターで開発をしています。 現在、私は CMake 開発環境を使用して VSCode で作業しています。 このセットアップに LVGL を統合する必要があります。 ご指導をお願いします。 Re: Integrating LVGL with RT1060 Matter Development in VSCode CMake Environment こんにちは@pooisonner 、 NXP MIMXRTシリーズにご興味をお持ちいただきありがとうございます。 公式の LVGL 移植ガイドはありませんが、SDK には LVGL の例が含まれているため、lvgl_demo_benchmark から始めることができます。 開発環境との一貫性を保つために、デモをインポートする際には MCUXpressoForVscode プラグインも使用する必要があります。 よろしくお願いします、 ギャビン
記事全体を表示
安全启动 IMX8MP 在基于i.MX8MP的设备上实现安全启动时,我们使用hab_status进行了全面的测试。一切按预期进行--没有报告发生有害藻类繁殖事件。我们使用不同的图像签名设置进行了 10 多次测试,在图像正确签名的情况下始终没有发现 HAB 事件(在图像未签名的情况下确实发现了事件)。 完成设置后,我们关闭了设备。但是,使用相同的设备和完全相同的签名映像,启动映像开始被拒绝。 如果图像签名或 SRK 密钥出现问题,本应反映在 hab_status 中,但在测试过程中没有出现此类错误。 我附上了我们的安全启动拒绝日志: SPL_ONLY.txt — 没有 FIT 图像可选的配置的默认配置 SPL_FIT.txt — 带有 FIT 图像可选的配置和 csf_fit.txt Re: SECURE BOOT IMX8MP 你好@xae-abhishek 我已经在您的另一张票中回复了您。如果有,请告诉我。 此致 哈维
記事全体を表示
在 VSCode CMake 环境中将 LVGL 与 RT1060 Matter 开发集成 你好,我正在使用 RT1060 开发 Matter。 我目前使用 VSCode 和 CMake 开发环境。 我需要将 LVGL 集成到这个设置中。 请提供指导。 Re: Integrating LVGL with RT1060 Matter Development in VSCode CMake Environment 你好,我是@pooisonner、 感谢您对 NXP MIMXRT 系列的关注! 虽然没有官方的 LVGL 移植指南,但 SDK 中包含 LVGL 示例,您可以从 lvgl_demo_benchmark 开始。 为了与开发环境保持一致,还需要使用 MCUXpressoForVscode 插件来导入演示程序。 致以最诚挚的问候, Gavin
記事全体を表示
デフォルトの U-Boot スプラッシュ スクリーンを変更する方法 (Yocto BSP imx-6.12.20-2.0.0) 私はYocto BSP imx-6.12.20-2.0.0を使用しています。現在のビルドでは、U-Boot は起動時にデフォルトの 4 ペンギンのスプラッシュ イメージを表示します。 このデフォルトの U-Boot イメージがどこから選択されているか教えていただけますか? また、この画像を Yocto ビルドの一部としてカスタム スプラッシュ スクリーンに置き換えるにはどうすればよいですか? どのソース ファイルまたは Yocto レシピを変更する必要があるかについてのガイダンスがあれば、大変助かります。 グラフィックスとディスプレイ i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M ミニ | i.MX 8M ナノ Linux Yocto Project Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) こんにちは、 アプリケーション用の既製のパッチはありませんが、以前のコミットを参照してソースコードを変更する必要があります。 よろしくお願いします、 志明 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu コミットでは「 logo_linux_clut224.ppm 」を表示することだけが言及されています。 しかし、私の要件は、 logo_linux_clut224.ppmをフルスクリーン(1920 x1080)で4つのタイルではなく、単一の画像として表示することです。 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) こんにちは、 このコミットを参照してください: https://github.com/varigit/linux-2.6-imx/commit/1a3d71c1c38b058daa0d29140a9cff747e5a7f51 よろしくお願いします、 志明 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu ありがとうございます。デフォルトのログを変更CAN。 しかし、4つのペンギンの画像のように、私のカスタム画像は4つのタイルとして表示されます 1920x1080の単一画像として表示できますか? Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu ありがとうございます。デフォルトのログを変更CAN。 しかし、4つのペンギンの画像のように、私のカスタム画像は4つのタイルとして表示されます 1920x1080の単一画像として表示できますか? Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) こんにちは、 カーネルにこのコミットが含まれていない: https://github.com/varigit/linux-2.6-imx/commit/1a3d71c1c38b058daa0d29140a9cff747e5a7f51 SO、logo.ppm は使用されません。 logo.ppmの名前をlogo_linux_clut224.ppmに変更すると、元のlogo_linux_clut224.ppmが置き換えられます。 よろしくお願いします、 志明 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu オリジナルのペンギン画像を表示する logo_linux_clut224.ppm がまだ表示されます。 Yocto イメージのカーネル ブート時に表示されるデフォルトのペンギン ブート ロゴを置き換えようとしています。 https://variwiki.com/index.php/Yocto_Linux_logoの指示に従います。 linux-imx_%.bbappendを作成しましたファイルの場所: >メタフリースケール/レシピカーネル/Linux/ その bbappend 内に、カスタム logo.ppm を追加し、その画像を bbappend の横のファイル ディレクトリの下に配置しました。 次にカーネルとイメージを再構築しました。 $bitbake -c cleanall linux-imx $bitbake Linux-imx $bitbake imx-image-full ただし、再構築後も、起動時にペンギンのロゴが表示されたままになります。ビルディング内を確認しました: >カーネルソース/ドライバ/ビデオ/ロゴ/ 注意: ビルディングする前に、置き換えられることを期待して、drivers/video/logo/ から logo_linux_clut224.ppm を手動で削除しましたが、それでも再び表示され、ロゴは変更されません。 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) こんにちは@binil ロゴを置き換えるにはカーネルソースコードを変更する必要があり、ロゴファイルは.ppmです。ここにファイルしてください。こちらのガイドを参照してください。 https://github.com/nxp-imx/linux-imx/tree/lf-6.12.y/drivers/video/logo yocto レイヤーについては、yocto ガイドを参照してカスタム レイヤーを作成してください。 https://docs.yoctoproject.org/next/dev-manual/layers.html よろしくお願いします、 志明 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) 「sources/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc」という行を見つけました。 [ -e ${UNPACKDIR} /logo_linux_clut224.ppm ]の場合; インストール -m 0644 ${UNPACKDIR} /logo_linux_clut224.ppm ドライバ/ビデオ/logo/logo_linux_clut224.ppm 「l ogo_linux_clut224.ppm 」はデフォルトのペンギン画像を表示していると思います。 もしSOなら、私の「l ogo_linux_clut224 .ppm」ファイルを使って修正するのを手伝ってもらえますCANか?
記事全体を表示
Integrating LVGL with RT1060 Matter Development in VSCode CMake Environment Hello, I am developing with Matter using the RT1060. I am currently working in VSCode with a CMake development environment. I need to integrate LVGL into this setup. Please provide guidance. Re: Integrating LVGL with RT1060 Matter Development in VSCode CMake Environment Hi @pooisonner , Thanks for your interest in NXP MIMXRT series! Although there is no official LVGL porting guide, LVGL examples are included in the SDK and you can start with lvgl_demo_benchmark. To be consistent with your development environment, it is necessary to also use the MCUXpressoForVscode plugin to import the demos. Best regards, Gavin
記事全体を表示
i.MX6ULL interrupts triggered frequently (21f4000.serial) Hi all, the system is running and found to be lagging, through troubleshooting we found that there is an interrupt count abnormality, this peripheral is rs485. it was over 300 million times in the previous night. 67: 334823120 GPC 30 Level 21f4000.serial The next day became more. We only have one process using the serial port to send and receive data, normal business would not send data so frequently The abnormal waveform is as follows normal waveform When unplugging the communication line between the rs485 and the peripheral, the interrupt count increase became normal, and subsequent re-conducting of our device's business increased the interrupt count by tens of thousands of times per second. This was eventually recovered by restarting the process using uart. We have three devices running at the same time, and this is the only one that does this, and it comes out of nowhere. The data for normal operation is shown below We'd like to know why this is happening, please! i.MX6UL Re: i.MX6ULL 中断频繁触发(21f4000.serial) Hi @JosephAtNXP , Thanks so much for your support on this issue. I wanted to provide an update: the device resumed normal operation simply after we restarted the process that uses UART4. We've been monitoring it since then, and the issue hasn't recurred. For context, there are two slave devices on this RS485 bus. At the time, we checked the logs from the slave devices but didn't find any obvious anomalies. We had actually adjusted the process's log level to capture the original packets during the abnormal state, but after restarting the UART4 process as part of that process, the issue was resolved, and unfortunately we weren't able to capture the problematic packets. Regards Re: i.MX6ULL 中断频繁触发(21f4000.serial) Hi @xisuisan222 , This isolated behavior seems like a physical issue, the line must have an agent like the cable, the other end, a hardware fault. Do you see any difference after power cycling all the elements? Regards
記事全体を表示
无法在 Linux 上的 S32DS 3.6.1 中使用 RTD - 缺少头文件(Platform_Types.h、pwm.h) 我在 Linux 上使用S32DS 3.6.1。S32DS 本身的安装是成功的,我能够毫无问题地安装开发包。 但是,当我尝试通过 帮助 → 安装 新软件安装 RTD 时,我为目标控制器系列选择了 RTD 软件包并完成了安装。 安装后,我没有看到插件菜单中列出 RTD 插件,但我可以根据示例创建一个项目。我还在安装目录下的软件文件夹中找到了 RTD 文件和手册,因此我认为安装已经成功。 问题是:当我尝试版本示例(一个简单的 PWM 测试)时,编译器因错误而失败,例如: 13:08:25 **** 为项目 pwm_example_s32K344 版本配置 debug_Flash **** make -j16 all 构建文件: .../src/main.c 构建文件:.../Project_Settings/Startup_Code/exceptions.c 调用:标准 S32DS C 编译器 arm-none-eabi-gcc " @src /main.args "-MMD -MP -MF"src/main.d"-MT"src/main.o"-o"src/main.o""../src/main.c" 调用:标准 S32DS C 编译器 arm-none-eabi-gcc " @Project_Settings /startup_code/exceptions.args "-MMD -MP -MF"Project_Settings/Startup_Code/exceptions.d"-MT"Project_Settings/Startup_Code/exceptions.o"-o"Project_Settings/Startup_Code/exceptions.o""../Project_Settings/Startup_Code/exceptions.c" 构建文件:.../Project_Settings/Startup_Code/system.c 调用:标准 S32DS C 编译器 arm-none-eabi-gcc " @Project_Settings /startup_code/exceptions.args "-MMD -MP -MF"Project_Settings/Startup_Code/system.d"-MT"Project_Settings/Startup_Code/system.o"-o"Project_Settings/Startup_Code/system.o""../Project_Settings/Startup_Code/system.c" ../src/main.c:26:10: 致命错误:Pwm.h:无此文件或目录 26 | #include"Pwm.h" | ^~~~~~~ ../Project_Settings/Startup_Code/exceptions.c:40:10: fatal error:Platform_Types.h:无此文件或目录 40 | #include"Platform_Types.h" | ^~~~~~~~~~~~~~~~~~ ../Project_Settings/Startup_Code/system.c:46:10: fatal error:Platform_Types.h:无此文件或目录 46 | #include"Platform_Types.h" | ^~~~~~~~~~~~~~~~~~ 汇编终止。 汇编终止。 汇编终止。 make:*** [Project_Settings/Startup_Code/subdir.mk:42:项目设置/启动代码/system.o]错误 1 使:*** 等待未完成的工作.... make:*** [Project_Settings/Startup_Code/subdir.mk:42:Project_Settings/Startup_Code/exceptions.o] [项目设置/启动代码/异常.o]错误 1 make:*** [src/subdir.mk:20:src/main.o]错误 1 "make -j16 all" 以退出代码 2 终止。版本可能不完整。 13:08:25 版本失败。7 个错误,0 个警告。(耗时 292 毫秒) 似乎没有正确找到或链接 SDK。有人遇到过这个问题吗?如何解决这个问题,使项目能正确编译? S32K1系列的S32SDK
記事全体を表示
imx-5.10.52-2.1.0 で NNAPI デリゲートが同一の推論結果を返す断続的な問題一つの 私はBSPバージョンimx-5.10.52-2.1.0のi.MX 8M Plusプラットフォームで作業しています。(Yocto ベースの Linux)。NNAPI デリゲートを使用する際に、入力画像が変更されても推論結果が予期せず同じままになるという問題に時々遭遇します。この問題は特定の条件下で発生するのではなく、断続的に発生するようです。 この問題が発生する理由と、 imx-6以降のバージョンの VX Delegate に切り替えると解決するかどうかを説明していただけますか? どうぞよろしくお願いいたします。
記事全体を表示
How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) I am using the Yocto BSP imx-6.12.20-2.0.0. In the current build, U-Boot displays the default 4-penguin splash image at boot time. Could you please let me know from where this default U-Boot image is being picked? Also, how can I replace this image with a custom splash screen as part of the Yocto build? Any guidance on which source files or Yocto recipes need to be modified would be greatly appreciated. Graphics & Display i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) Hi, There is no ready-made patch for your application, but need you to modify the source code referring the previous commit. Best Regards, Zhiming Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu  In the commit it only mention about to show "logo_linux_clut224.ppm",  but my requirement is to show the logo_linux_clut224.ppm as single image instead of 4 tiles in full screen (1920 x1080) Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) Hi, Please refer this commit: https://github.com/varigit/linux-2.6-imx/commit/1a3d71c1c38b058daa0d29140a9cff747e5a7f51 Best Regards, Zhiming Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu Thanks, I can able to change the default log, but like 4 penguin image, it shows my custom image as 4 tiles can we shows it as single image as 1920x1080 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu Thanks, I can able to change the default log, but like 4 penguin image, it shows my custom image as 4 tiles can we shows it as single image as 1920x1080 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) Hi, Your kernel doesn't contain this commit: https://github.com/varigit/linux-2.6-imx/commit/1a3d71c1c38b058daa0d29140a9cff747e5a7f51, so it will not use logo.ppm. You can rename logo.ppm to logo_linux_clut224.ppm, this will replace original logo_linux_clut224.ppm Best Regards, Zhiming Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu still see logo_linux_clut224.ppm showing the original penguin image. I’m trying to replace the default penguin boot logo shown at kernel boot on my Yocto image. Following the instructions from https://variwiki.com/index.php/Yocto_Linux_logo , I created a linux-imx_%.bbappend file under: >meta-freescale/recipes-kernel/linux/ Inside that bbappend, I added my custom logo.ppm and placed the image under a files directory alongside the bbappend. Then I rebuilt the kernel and image: $bitbake -c cleanall linux-imx $bitbake linux-imx $bitbake imx-image-full However, even after rebuilding, the penguin logo is still displayed at boot. I checked inside the build at: >kernel-source/drivers/video/logo/ Note: Before building, I manually deleted logo_linux_clut224.ppm from drivers/video/logo/ hoping it would be replaced — but it still comes back and the logo doesn’t change. Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) Hi @binil  Replacing logo need to modify kernel source code, logo file is .ppm file here. You can refer this guide. https://github.com/nxp-imx/linux-imx/tree/lf-6.12.y/drivers/video/logo For yocto layer, please refer yocto guide to create a custom layer. https://docs.yoctoproject.org/next/dev-manual/layers.html Best Regards, Zhiming Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0)  I found the line "sources/meta-openembedded/meta-oe/recipes-kernel/linux/linux.inc" if [ -e ${UNPACKDIR}/logo_linux_clut224.ppm ]; then install -m 0644 ${UNPACKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm I think the "logo_linux_clut224.ppm " showing the default penguin image, If so, can you please help me to modify it with my "logo_linux_clut224.ppm" file
記事全体を表示
如何更改默认 U-Boot 启动画面 (Yocto 电路板支持包 imx-6.12.20-2.0.0) 我使用的是 Yocto 电路板支持包 imx-6.12.20-2.0.0。在当前版本中,U-Boot 在启动时显示默认的 4 企鹅启动画面。 你能告诉我这个默认 U-Boot 启动映像是从哪里挑选的吗? 另外,作为 Yocto 版本的一部分,我怎样才能用自定义启动画面替换这个图像? 如果能就哪些源文件或 Yocto 配方需要修改提供任何指导,我们将不胜感激。 图形与显示 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) 您好, 您的应用程序没有现成的修补程序,但需要您参照之前的提交修改源代码。 致敬, Zhiming Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu 在提交中只提到要显示"logo_linux_clut224.ppm", ,但我的要求是在全屏(1920 x1080)中以单张图片而不是 4 张图片的形式显示logo_linux_clut224.ppm。 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) 你好, ,请参考此提交: https://github.com/varigit/linux-2.6-imx/commit/1a3d71c1c38b058daa0d29140a9cff747e5a7f51 Best Regards, Zhiming Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu 谢谢,我可以更改默认日志, ,但像 4 张企鹅图片一样,它将我的自定义图片显示为 4 张图片 ,我们能否将其显示为 1920x1080 的单张图片? Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu 谢谢,我可以更改默认日志, ,但像 4 张企鹅图片一样,它将我的自定义图片显示为 4 张图片 ,我们能否将其显示为 1920x1080 的单张图片? Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) 您好, 您的内核不包含此提交:https://github.com/varigit/linux-2.6-imx/commit/1a3d71c1c38b058daa0d29140a9cff747e5a7f51,因此不会使用logo.ppm。 您可以将logo.ppm重命名为 log_linux_clut224.ppm,这样就可以替换原来的 logo_linux_clut224.ppm ,谢谢您的支持, Zhiming。 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) @Zhiming_Liu 仍然可以看到 logo_linux_clut224.ppm 显示原始企鹅图像。 我正在尝试替换 Yocto 映像上内核启动时显示的默认企鹅启动徽标。 根据https://variwiki.com/index.php/Yocto_Linux_logo的指示 , 我创建了一个 linux-imx_%.bbappend文件位于: > meta-freescale/recipes-kernel/linux/ 在那个 bbappend 里面,我添加了我的自定义 logo.ppm 并将图像放在 bbappend 旁边的文件目录下。 然后我重建了内核和镜像: $bitbake-c cleanall linux-imx $bitbake linux-imx $bitbake imx-imx $bitbake imx-image-full 但是,即使在重建之后,企鹅徽标仍在 启动时显示。 我查看了内部版本: > 内核源代码/驱动程序/视频/徽标/ 注意:在构建之前,我手动从驱动程序/视频/徽标中删除了 logo_linux_clut224.ppm,希望它能被替换——但它仍然会回来并且徽标没有改变。 Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) 你好@binil 更换徽标需要修改内核源代码,徽标文件是 .ppm在此存档。您可以参考本指南。 https://github.com/nxp-imx/linux-imx/tree/lf-6.12.y/drivers/video/logo 对于 yocto 层,请参阅 yocto 指南来创建自定义层。 https://docs.yoctoproject.org/next/dev-manual/layers.html 致敬, Zhiming Re: How to change the default U-Boot splash screen (Yocto BSP imx-6.12.20-2.0.0) 我找到了 "sources/meta-openembedded/meta-oe/配方-kernel/linux/linux.inc" if [ -e${UNPACKDIR}/logo_linux_clut224.ppm ]; then install -m 0644${UNPACKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm 我认为"logo_linux_clut224.ppm " 显示的是默认的企鹅图像, 如果是这样,能否请你帮我用我的"logo_linux_clut224.ppm" 文件修改一下?
記事全体を表示
Unable to use RTD in S32DS 3.6.1 on Linux – Missing headers (Platform_Types.h, pwm.h) I’m using S32DS 3.6.1 on Linux. The installation of S32DS itself was successful, and I was able to install the development package without issues. However, when I tried to install RTD via Help → Install New Software, I selected the RTD package for my target controller family and completed the installation. After installation, I didn’t see the RTD plugin listed in the Plugins menu, but I was able to create a project from an example. I also found the RTD files and manuals in the software folder within the installation directory, so I assumed the installation was successful. The problem is: when I try to build the example (a simple PWM test), the compiler fails with errors like: 13:08:25 **** Build of configuration Debug_FLASH for project Pwm_example_S32K344 **** make -j16 all Building file: ../src/main.c Building file: ../Project_Settings/Startup_Code/exceptions.c Invoking: Standard S32DS C Compiler arm-none-eabi-gcc "@src/main.args" -MMD -MP -MF"src/main.d" -MT"src/main.o" -o "src/main.o" "../src/main.c" Invoking: Standard S32DS C Compiler arm-none-eabi-gcc "@Project_Settings/Startup_Code/exceptions.args" -MMD -MP -MF"Project_Settings/Startup_Code/exceptions.d" -MT"Project_Settings/Startup_Code/exceptions.o" -o "Project_Settings/Startup_Code/exceptions.o" "../Project_Settings/Startup_Code/exceptions.c" Building file: ../Project_Settings/Startup_Code/system.c Invoking: Standard S32DS C Compiler arm-none-eabi-gcc "@Project_Settings/Startup_Code/exceptions.args" -MMD -MP -MF"Project_Settings/Startup_Code/system.d" -MT"Project_Settings/Startup_Code/system.o" -o "Project_Settings/Startup_Code/system.o" "../Project_Settings/Startup_Code/system.c" ../src/main.c:26:10: fatal error: Pwm.h: No such file or directory 26 | #include "Pwm.h" | ^~~~~~~ ../Project_Settings/Startup_Code/exceptions.c:40:10: fatal error: Platform_Types.h: No such file or directory 40 | #include "Platform_Types.h" | ^~~~~~~~~~~~~~~~~~ ../Project_Settings/Startup_Code/system.c:46:10: fatal error: Platform_Types.h: No such file or directory 46 | #include "Platform_Types.h" | ^~~~~~~~~~~~~~~~~~ compilation terminated. compilation terminated. compilation terminated. make: *** [Project_Settings/Startup_Code/subdir.mk:42: Project_Settings/Startup_Code/system.o] Error 1 make: *** Waiting for unfinished jobs.... make: *** [Project_Settings/Startup_Code/subdir.mk:42: Project_Settings/Startup_Code/exceptions.o] Error 1 make: *** [src/subdir.mk:20: src/main.o] Error 1 "make -j16 all" terminated with exit code 2. Build might be incomplete. 13:08:25 Build Failed. 7 errors, 0 warnings. (took 292ms) It seems the SDK isn’t being found or linked properly. Has anyone encountered this issue before? How can I fix this so the project compiles correctly? S32 SDK for S32K1
記事全体を表示
RT1170 FLexSPI (NOR) 構成 - フラッシュとブート こんにちは、皆さん。 i.MX RT1170 をベースにしたカスタム ボードの導入を準備中です。MCU には、セカンダリ FlexSPI インターフェース、セカンダリ ピン グループを介して、Micron MT25QL02GCBB QSPI NOR フラッシュが搭載されています。デバッグの目的で MCU-Link デバッグ プローブを接続する予定であり、最終目標は Zephyr RTOS をオペレーティング システムとして実行することです。 PRM に従って、特定のインターフェースと構成についてブート ROM に指示するために、BT_FUSE_SEL、FLEXSPI_INSTANCE、および FLEXSPI_PIN_GROUP のヒューズを焼き付ける予定です。   1170 EVKBがフラッシュされる方法と同様に、LinkServerを利用してEVK jsonファイル(/usr/local/LinkServer/devices/MIMXRT1170-EVKB.json)を観察します。MIMXRT1170_SFDP_QSPI.cfx フラッシュ ドライバ ファイルを参照します。NXP が提供する RT1170 用の QSPI および SFDP ベースのドライバを覗いてみましょう。 $ fd cfx /usr/local/LinkServer | rg 1170 | rg SFDP | rg QSPI /usr/local/LinkServer/binaries/Flash/MIMXRT1170_FlexSPI2_A_SFDP_QSPI.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1170_SFDP_QSPI.cfx   後者は EVK に使用されているようです。リファレンス デザインと比較すると、私たちのデザインは FlexSPI インスタンス、ピン制御グループ、および特定の NOR フラッシュが異なります。問題は、これらの違いそれぞれによって、カスタム フラッシュ ドライバを開発して LinkServer に提供する必要が生じるかどうかです。RT1180 ドライバはより幅広い種類のドライバを提供していることに気づき、これらのいずれかを使用できるかどうか疑問に思いました。 $ fd cfx /usr/local/LinkServer | rg 1180 | rg SFDP | rg QSPI /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI1_A_QSPI.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI1_A_QSPI_S.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI1_B_QSPI.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI1_B_QSPI_S.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_PriGr_A_QSPI.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_PriGr_A_QSPI_S.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_PriGr_B_QSPI.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_PriGr_B_QSPI_S.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_SecGr_A_QSPI.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_SecGr_A_QSPI_S.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_SecGr_B_QSPI.cfx /usr/local/LinkServer/binaries/Flash/MIMXRT1180_SFDP_FlexSPI2_SecGr_B_QSPI_S.cfx   フラッシュが最終的に成功すると仮定すると、ブート ROM によって解析される適切な FlexSPI 構成ブロックも提供する必要があります (EVK バリアントと同等: https://github.com/zephyrproject-rtos/zephyr/blob/main/boards/nxp/mimxrt1170_evk/xip/evkbmimxrt1170_flexspi_nor_config.c )。これまでのところ、この構造の中で最も複雑な部分は LUT です。SFDP は NOR フラッシュでサポートされているので、これらは実際に初期の起動に必要なのでしょうか、それともパフォーマンスの最適化のためだけに必要なのでしょうか?既存の NXP Zephyr/MCUXpresso リポジトリのいずれかからこれらの LUT を見つけることができる可能性はありますか?   ありがとうございます マーティン Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting こんにちは@anbnさん、 はい、その理解は正しいです!この GUI ビューは作業セットの一部であり、これを正しく設定してテスト ボタンをクリックすると、ROM がフラッシュの FCB からそのような情報を取得するのと同様に、ツールは検証のためにそのような情報を ROM に送信します。結果が良好であれば、それを完全な FCB に変換し、SPT がそれをフラッシュ上の FCB のスペースにプログラムし、さらに使用するためにローカル ドライブに bin ファイルとして保存します。 それが意味を成すといいのですが、 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting ボードはまだ届いていない。SO、少なくとも最小限の構成を十分に理解して、起動時間を最小限に抑えるようにしています。 基本を検証するために速度は必要ないため、シングル パッド SPI を使用するとセットアップも簡素化されます。 セキュア プロビジョニング ツールを備えた fcb を作成するには、物理ボード上で構成をテストする必要がありますか? 私は、データシートに一致するシングル パッド spi コマンドを使用して、この最小限の FCB を組み立てようとしました。 正常に動作するセットアップのように見えますか、それとも私が何かを誤解しているのでしょうか? また、ブート ROM は SFDP を使用してこれらの設定を上書きしますか、それともコードのフラッシュ中に cfx ドライバに対してのみ使用されますか? カスタムユニットを受け取るスケジュールが厳しいため、ご協力に大変感謝しています。 const flexspi_nor_config_t mt25ql_minimal_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, // Identifier for FCB .version = FLEXSPI_CFG_BLK_VERSION, // FCB version // Use internal loopback for read sampling (no DQS pad) .readSampleClksrc=kFlexSpiReadSampleClk_InternalLoopback, .csHoldTime = 3, // Chip Select hold time .csSetupTime = 3, // Chip Select setup time // No device mode configuration (no QE bit needed) .deviceModeCfgEnable = 0, .deviceModeType = 0, .deviceModeSeq = {0, 0}, .deviceModeArg = 0, .configCmdEnable = 0, // No extra config commands // Misc options: // - Bit 4: Enable second pinmux group .controllerMiscOption = (1 << kFlexSpiMiscOffset_SecondPinMux), .deviceType = kFlexSpiDeviceType_SerialNOR, // Serial NOR flash .sflashPadType = kSerialFlash_1Pad, // Standard SPI mode .serialClkFreq = kFlexSpiSerialClk_60MHz, // 60 MHz clock .sflashA1Size = 256 * 1024 * 1024, // 256 MiB flash size .dataValidTime = {16, 16}, // Default timing .busyOffset = 0, // Status register offset .busyBitPolarity = 1, // Busy bit is active high // Lookup Table (LUT) for basic SPI commands .lookupTable = { // LUT[0] - Fast Read (0x0B) // 1. Send 0x0B command on 1 pad // 2. Send 24-bit address on 1 pad // 3. Send 8 dummy cycles // 4. Read data on 1 pad [0] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x0B, kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_1PAD, 0x18), [1] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_DUMMY, kFLEXSPI_1PAD, 0x08, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x04), // LUT[4] - Write Enable (0x06) [4] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x06, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0), // LUT[5] - Page Program (0x02) [5] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x02, kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_1PAD, 0x18), [6] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_WRITE_SDR, kFLEXSPI_1PAD, 0x04, kFLEXSPI_Command_STOP, kFLEXSPI_1PAD, 0), // LUT[7] - Sector Erase (0xD8) [7] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0xD8, kFLEXSPI_Command_RADDR_SDR, kFLEXSPI_1PAD, 0x18), // LUT[8] - Read Status Register (0x05) [8] = FLEXSPI_LUT_SEQ( kFLEXSPI_Command_SDR, kFLEXSPI_1PAD, 0x05, kFLEXSPI_Command_READ_SDR, kFLEXSPI_1PAD, 0x01), }, }, .pageSize = 256, // Page size in bytes .sectorSize = 64 * 1024, // Sector size in bytes .blockSize = 256 * 1024, // Block size in bytes .isUniformBlockSize = true, // All blocks are same size }; Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting こんにちは@anbn 、 シリアル ダウンロード モードでカスタム ボードにコネクテッドし、テスト ボタンを押しましたか?結果は合格でしたか?クエリ パッドとコマンド パッドは 1 つであるべきだと思いますが、クアッド モードに設定すると、フラッシュはデータ IO に 4 つのパッドを使用します。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting こんにちは、カン リンクをありがとうございます。理解が深まりました。 Secure Provisioning Tool のテンプレートを使用して FCB を作成しようとしていますが、常にこのメッセージが表示されます。 クアッド モード設定については少し不安です。データシートによると、クアッド I/O モードに入ることはコマンド 35h によって処理されますが、これは利用できないようです。 Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting こんにちは@mns 、 私が言及しているのは、あなたが言及した部分を含む qspiflash_config です。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting 素早い返信をありがとう@Kan_Li 。声明に関して: 「... FCBはそのままにしておきます...」 何を意味しているのか分かりません。「lookupTable」構造を残すことを指しているのでしょうか ( https://github.com/zephyrproject-rtos/zephyr/blob/88de138290b683c26abf81142756621a02169eb5/boards/nxp/mimxrt1170_evk/xip/evkbmimxrt1170_flexspi_nor_config.c#L52 )その間、 'memConfig' の残りの部分を入力します ( https://github.com/zephyrproject-rtos/zephyr/blob/88de138290b683c26abf81142756621a02169eb5/boards/nxp/mimxrt1170_evk/xip/evkbmimxrt1170_flexspi_nor_config.c#L26C3-L26C12 )FCB の基盤となる構造ですか? 再度、感謝します、 マーティン Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting こんにちは@anbn 、 SDK のドライバは EVK で使用する必要があるため、EVK で使用される部分以外のフラッシュを備えたカスタム ボードを設計する場合は、フラッシュ ローダーもカスタマイズする必要があります。そのためのガイドを提供していますので、詳細についてはhttps://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/RT1170-flexSPI1-secondary-QSPI-flash-debug-flashdriver/tac-p/1938828#M222を参照してください。 お役に立てれば幸いです。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting こんにちは、カン 早速のご返信ありがとうございます。私はMartinのチームに所属し、同じプロジェクトに取り組んでいます。 CAN MIMXRT1170_FlexSPI2_A_SFDP_QSPI.cfx をそのまま使用できますか、それともフラッシュ IC に合わせてコードをカスタマイズする必要がありますか?efuse によっても設定されるセカンダリ ピン グループの構成オプションが表示されますが、これは冗長ですか? ドライバでカスタマイズする必要があるものは他に何かありますか? 具体的には、セカンダリ ピン グループを使用するように CONFIG_OPTION1 を設定し、iMXRT117x_FlexSPI_SFDP を再コンパイルする必要がありますか? (また、そのサンプル ドライバにはボード/プロジェクトからの何かが含まれていますか?) MCUXpresso IDE で、pinmux やカスタム ボードと一緒にコンパイルする必要がありますか? フラッシュ IC とボード用の動作する flexspi_nor_config を生成するために使用する CAN ツールはありますか? 私たちは立ち上げ前にできる限り多くの不確実性を排除しようとしている、SOご協力にとても感謝しています。 よろしくお願いします アンダース Re: RT1170 FLexSPI (NOR) Configuration - Flashing and Booting こんにちは@mns 、 はい、その理解は正しいです!あなたのCASE、FlexSPI2 の 2 番目のピン グループを NOR フラッシュとの接続に使用する場合は、リンク サーバーなどのデバッガー用のカスタム フラッシュ ローダーを開発する必要があります。また、前述のとおり、適切な FCB を使用して eFUSE をアプリケーションに適合させる必要があります。FCB は flexspi インスタンスとピン グループの選択も設定するため、eFUSE をプログラムして FCB をそのままにしておくと、ブート ROM は eFUSE の助けを借りてフラッシュを見つけることができますが、FCB 部分をチェックした後、アプリケーションを取得する場所が間違ってしまう可能性があります。 さらに追加したい場合は、アプリケーション コードによって LUT を更新できます。evkmimxrt1170_flexspi_nor_polling_transfer_cm7 の SDKs デモに、このトピックの例が示されています。 それが意味を成すといいのですが、 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 ---------------------------------------------------------------------------------
記事全体を表示
事前割り当てが大きいため、マター PacketBuffer プールが空です 私はマターデバイスFRDM-RW612に取り組んでいます。時々、PacketBuffer プールが空になっていることに気付きました。ログをここに添付しました [29889] [INFO] [IN] CASE Server received Sigma1 message . Starting handshake. EC 0x2005cd68 [29898] [INFO] [SC] Received Sigma1 msg [29901] [TRACE] [SC] Found MRP parameters in the message [29907] [TRACE] [SC] Peer assigned session key ID 582 [29912] [INFO] [DL] KVS, get key id:: f/1/g [29916] [INFO] [DL] KVS, get key id:: f/1/k/0 [29922] [INFO] [SC] CASE matched destination ID: fabricIndex 1, NodeID 0x00000000000022B8 [30054] [INFO] [CSL] LWIP:PacketBuffer::New Request size=870, aAvailable=758, aReserved=112, MaxSize=64000 [30064] [INFO] [EM] <<< [E:14060r S:0 M:111174838] (U) Msg TX from 0000000000000000 to 0:0ED014D28E28AE99 [0000] [TCP:[FE80::FE84:A7FF:FE51:F90A]:40004] --- Type 0000:31 (SecureChannel:CASE_Sigma2) (B:748) [30083] [INFO] [SC] Sent Sigma2 msg [30087] [ERR] [DL] Long dispatch time: 219 ms, for event type 3 [30092] [TRACE] [DL] DeviceEventCallback: 0x8016 [30214] [INFO] [EM] >>> [E:14060r S:0 M:239333775] (U) Msg RX from 0:0ED014D28E28AE99 [0000] to 0000000000000000 --- Type 0000:32 (SecureChannel:CASE_Sigma3) (B:594) [30229] [TRACE] [EM] Found matching exchange: 14060r, Delegate: 0x2005bd74 [30236] [INFO] [SC] Received Sigma3 msg [30288] [INFO] [DL] KVS, get key id:: g/sri [30293] [ERR] [DL] KVS, key not found! [30296] [INFO] [DL] KVS, put key id:: f/1/s/000000000001B669 [30304] [INFO] [DL] KVS, put key id:: g/s/HuzH83xHX2H4MZ6LiDY1cw== [30312] [INFO] [DL] KVS, put key id:: g/sri [30318] [TRACE] [SC] Sending status report. Protocol code 0, exchange 14060 [30325] [INFO] [CSL] LWIP:PacketBuffer::New Request size=120, aAvailable=8, aReserved=112, MaxSize=64000 [30334] [INFO] [EM] <<< [E:14060r S:0 M:111174839] (U) Msg TX from 0000000000000000 to 0:0ED014D28E28AE99 [0000] [TCP:[FE80::FE84:A7FF:FE51:F90A]:40004] --- Type 0000:40 (SecureChannel:StatusReport) (B:30) [30354] [INFO] [SC] SecureSession[0x2005af10, LSID:25190]: State change 'kEstablishing' --> 'kActive' [30363] [TRACE] [IN] SecureSession[0x2005af10]: Activated - Type:2 LSID:25190 [30371] [TRACE] [IN] New secure session activated for device <000000000001B669, 1>, LSID:25190 PSID:582! [30380] [INFO] [IN] CASE Session established to peer: <000000000001B669, 1> [30387] [TRACE] [IN] SecureSession[0x2005aff0]: Allocated Type:2 LSID:25191 [30394] [TRACE] [SC] Allocated SecureSession (0x2005aff0) - waiting for Sigma1 msg [30402] [ERR] [DL] Long dispatch time: 114 ms, for event type 2 [30408] [INFO] [CSL] LWIP:PacketBuffer::New Request size=163, aAvailable=51, aReserved=112, MaxSize=64000 [30418] [INFO] [EM] >>> [E:14061r S:25190 M:250050934] (S) Msg RX from 1:000000000001B669 [578C] to 00000000000022B8 --- Type 0001:08 (IM:InvokeCommandRequest) (B:59) [30433] [TRACE] [EM] Handling via exchange: 14061r, Delegate: 0x2005723c [30440] [TRACE] [DMG] Received command for Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0004 [30449] [INFO] [FS] GeneralCommissioning: Received CommissioningComplete [30455] [INFO] [DL] KVS, put key id:: g/fs/c [30461] [INFO] [DL] KVS, put key id:: f/1/m [30467] [INFO] [FP] Metadata for Fabric 0x1 persisted to storage. [30473] [INFO] [DL] KVS, put key id:: f/1/o [30479] [INFO] [DL] KVS, put key id:: f/1/n [30485] [INFO] [DL] KVS, put key id:: f/1/i [30492] [INFO] [DL] KVS, put key id:: f/1/r [30498] [INFO] [TS] Committing Last Known Good Time to storage: 2024-08-17T05:19:27 [30506] [INFO] [DL] KVS, put key id:: g/lkgt [30510] [INFO] [DL] KVS, put key id:: g/fidx [30516] [INFO] [ZCL] OpCreds: Fabric index 0x1 was committed to storage. Compressed Fabric Id 0x51EB0A41B403578C, FabricId 0000000000000001, NodeId 00000000000022B8, VendorId 0xFFF1 [30532] [INFO] [DL] KVS, deleting key id:: g/fs/c [30538] [INFO] [FS] GeneralCommissioning: Successfully commited pending fabric data [30545] [INFO] [FS] Fail-safe cleanly disarmed [30550] [TRACE] [DMG] Endpoint 0, Cluster 0x0000_0030 update version to e5eec16d [30557] [INFO] [DL] endpointId 0x0000_0000 clusterId 0x0000_0030 attribute ID: 0x0000_0000 Type: 39 Value: 0, length 8 [30568] [INFO] [CSL] LWIP:PacketBuffer::New Request size=63940, aAvailable=63828, aReserved=112, MaxSize=64000 [30578] [ERR] [CSL] PacketBuffer: pool EMPTY. [30582] [ERR] [DMG] Adding response failed: b. Returning failure instead. [30590] [ERR] [DMG] Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0004 status 0x01 (no additional context) [30599] [INFO] [CSL] LWIP:PacketBuffer::New Request size=63940, aAvailable=63828, aReserved=112, MaxSize=64000 [30609] [ERR] [CSL] PacketBuffer: pool EMPTY. [30614] [ERR] [DMG] Failed to add command status: b [30619] [TRACE] [DMG] Decreasing reference count for CommandHandlerImpl, remaining 1 [30626] [TRACE] [DMG] Decreasing reference count for CommandHandlerImpl, remaining 0 [30634] [ERR] [DMG] Failed to finalize command response: 3 [30640] [TRACE] [DMG] Command handler moving to [AwaitingDe] [30645] [ERR] [DMG] Failed to send InvokeResponseMessage [30650] [TRACE] [DMG] Command response sender moving to [AllInvokeR] [30657] [ERR] [DL] Long dispatch time: 249 ms, for event type 3 [30663] [TRACE] [DL] DeviceEventCallback: 0x8018 [30667] [INFO] [SVR] Commissioning completed successfully [30673] [INFO] [DIS] Updating services using commissioning mode 0 [30679] [INFO] [DIS] CHIP minimal mDNS started advertising. [30685] [INFO] [CSL] LWIP:PacketBuffer::New Request size=624, aAvailable=512, aReserved=112, MaxSize=64000 [30695] [INFO] [CSL] LWIP:PacketBuffer::New Request size=1536, aAvailable=1424, aReserved=112, MaxSize=64000 [30705] [INFO] [CSL] LWIP:PacketBuffer::New Request size=624, aAvailable=512, aReserved=112, MaxSize=64000 [30716] [INFO] [CSL] LWIP:PacketBuffer::New Request size=1536, aAvailable=1424, aReserved=112, MaxSize=64000 [30726] [INFO] [CSL] LWIP:PacketBuffer::New Request size=624, aAvailable=512, aReserved=112, MaxSize=64000 [30736] [INFO] [CSL] LWIP:PacketBuffer::New Request size=1536, aAvailable=1424, aReserved=112, MaxSize=64000 [30746] [INFO] [CSL] LWIP:PacketBuffer::New Request size=624, aAvailable=512, aReserved=112, MaxSize=64000 [30757] [INFO] [CSL] LWIP:PacketBuffer::New Request size=1536, aAvailable=1424, aReserved=112, MaxSize=64000 [30767] [TRACE] [DL] Using WiFi MAC for hostname [30772] [INFO] [DIS] Advertise operational node 51EB0A41B403578C-00000000000022B8 [30779] [TRACE] [DIS] Responding with _matter._tcp.local [30784] [TRACE] [DIS] Responding with 51EB0A41B403578C-00000000000022B8._matter._tcp.local [30793] [TRACE] [DIS] Responding with 51EB0A41B403578C-00000000000022B8._matter._tcp.local [30801] [TRACE] [DIS] Responding with C095DA0152EF.local [30806] [TRACE] [DIS] Responding with C095DA0152EF.local [30812] [TRACE] [DIS] Responding with _I51EB0A41B403578C._sub._matter._tcp.local [30819] [INFO] [DIS] CHIP minimal mDNS configured as 'Operational device'; instance name: 51EB0A41B403578C-00000000000022B8. [30830] [INFO] [CSL] LWIP:PacketBuffer::New Request size=624, aAvailable=512, aReserved=112, MaxSize=64000 [30841] [INFO] [CSL] LWIP:PacketBuffer::New Request size=1536, aAvailable=1424, aReserved=112, MaxSize=64000 [30851] [INFO] [CSL] LWIP:PacketBuffer::New Request size=624, aAvailable=512, aReserved=112, MaxSize=64000 [30861] [INFO] [CSL] LWIP:PacketBuffer::New Request size=1536, aAvailable=1424, aReserved=112, MaxSize=64000 [30871] [INFO] [DIS] mDNS service published: _matter._tcp [30877] [TRACE] [DL] CHIPoBLE advertising set to off [30882] [TRACE] [IN] Expiring all PASE sessions [30886] [TRACE] [IN] SecureSession[0x2005ae30]: MarkForEviction Type:1 LSID:25189 [30894] [INFO] [SC] SecureSession[0x2005ae30, LSID:25189]: State change 'kActive' --> 'kPendingEviction' [30903] [TRACE] [IN] SecureSession[0x2005ae30]: Released - Type:1 LSID:25189 [30910] [TRACE] [IN] Clearing BLE pending packets. [30915] [INFO] [BLE] Releasing end point's BLE connection back to application. [30922] [INFO] [DL] Closing BLE GATT connection (ConnId 00) [30930] [TRACE] [ZCL] Commissioning complete, notify platform driver to persist network credentials. [30939] [INFO] [DL] KVS, put key id:: wifi-ssid [30944] [INFO] [DL] KVS, put key id:: wifi-pass [30948] [TRACE] [DL] DeviceEventCallback: 0x800f [30953] [ERR] [DL] Long dispatch time: 286 ms, for event type 32783 [30988] [INFO] [DL] Current number of connections: 0/1 [30993] [INFO] [DL] BLE GAP connection terminated (reason 0x16) [30999] [TRACE] [BLE] No endpoint for connection error [31004] [TRACE] [DL] DeviceEventCallback: 0x8007 注目すべき主な部分は次のとおりです。 [30418] [INFO] [EM] >>> [E:14061r S:25190 M:250050934] (S) Msg RX from 1:000000000001B669 [578C] to 00000000000022B8 --- Type 0001:08 (IM:InvokeCommandRequest) (B:59) [30433] [TRACE] [EM] Handling via exchange: 14061r, Delegate: 0x2005723c [30440] [TRACE] [DMG] Received command for Endpoint=0 Cluster=0x0000_0030 Command=0x0000_0004 [30449] [INFO] [FS] GeneralCommissioning: Received CommissioningComplete [30455] [INFO] [DL] KVS, put key id:: g/fs/c [30461] [INFO] [DL] KVS, put key id:: f/1/m [30467] [INFO] [FP] Metadata for Fabric 0x1 persisted to storage. [30473] [INFO] [DL] KVS, put key id:: f/1/o [30479] [INFO] [DL] KVS, put key id:: f/1/n [30485] [INFO] [DL] KVS, put key id:: f/1/i [30492] [INFO] [DL] KVS, put key id:: f/1/r [30498] [INFO] [TS] Committing Last Known Good Time to storage: 2024-08-17T05:19:27 [30506] [INFO] [DL] KVS, put key id:: g/lkgt [30510] [INFO] [DL] KVS, put key id:: g/fidx [30516] [INFO] [ZCL] OpCreds: Fabric index 0x1 was committed to storage. Compressed Fabric Id 0x51EB0A41B403578C, FabricId 0000000000000001, NodeId 00000000000022B8, VendorId 0xFFF1 [30532] [INFO] [DL] KVS, deleting key id:: g/fs/c [30538] [INFO] [FS] GeneralCommissioning: Successfully commited pending fabric data [30545] [INFO] [FS] Fail-safe cleanly disarmed [30550] [TRACE] [DMG] Endpoint 0, Cluster 0x0000_0030 update version to e5eec16d [30557] [INFO] [DL] endpointId 0x0000_0000 clusterId 0x0000_0030 attribute ID: 0x0000_0000 Type: 39 Value: 0, length 8 [30568] [INFO] [CSL] LWIP:PacketBuffer::New Request size=63940, aAvailable=63828, aReserved=112, MaxSize=64000 [30578] [ERR] [CSL] PacketBuffer: pool EMPTY. [30582] [ERR] [DMG] Adding response failed: b. Returning failure instead. 実際に受信されるメッセージ、InvokeCommandResponse は 59 バイト、または CommissioningComplete コマンドである可能性があります。しかし、なぜここでは約 64 KB が事前割り当て要件となるのでしょうか? トレースのためにPacketBuffer::New関数も追加しました PacketBufferHandle PacketBufferHandle::New(size_t aAvailableSize, uint16_t aReservedSize) { // Sanity check for kStructureSize to ensure that it matches the PacketBuffer size. static_assert(PacketBuffer::kStructureSize == sizeof(PacketBuffer), "PacketBuffer size mismatch"); // Setting a static upper bound on kStructureSize to ensure the summation of all the sizes does not overflow. static_assert(PacketBuffer::kStructureSize <= UINT16_MAX, "kStructureSize should not exceed UINT16_MAX."); // Setting a static upper bound on the maximum buffer size allocation for regular sized messages (not large). static_assert(PacketBuffer::kMaxSizeWithoutReserve <= UINT16_MAX, "kMaxSizeWithoutReserve should not exceed UINT16_MAX."); #if INET_CONFIG_ENABLE_TCP_ENDPOINT // Setting a static upper bound on the maximum buffer size allocation for // large messages. #if CHIP_SYSTEM_CONFIG_USE_LWIP // LwIP based systems are internally limited to using a u16_t type as the size of a buffer. static_assert(PacketBuffer::kLargeBufMaxSizeWithoutReserve <= UINT16_MAX, "In LwIP, max size for Large payload buffers cannot exceed UINT16_MAX!"); #else // Messages over TCP are framed using a length field that is 32 bits in // length. static_assert(PacketBuffer::kLargeBufMaxSizeWithoutReserve <= UINT32_MAX, "Max size for Large payload buffers cannot exceed UINT32_MAX"); #endif // CHIP_SYSTEM_CONFIG_USE_LWIP #endif // INET_CONFIG_ENABLE_TCP_ENDPOINT // Ensure that aAvailableSize is bound within a max and is not big enough to cause overflow during // subsequent addition of all the sizes. if (aAvailableSize > UINT32_MAX) { ChipLogError(chipSystemLayer, "PacketBuffer: AvailableSize of a buffer cannot exceed UINT32_MAX. aAvailableSize = 0x" ChipLogFormatX64, ChipLogValueX64(static_cast (aAvailableSize))); return PacketBufferHandle(); } // Cast all to uint64_t and add. This cannot overflow because we have // ensured that the maximal value of the summation is // UINT32_MAX + UINT16_MAX + UINT16_MAX, which should always fit in // a uint64_t variable. uint64_t sumOfSizes = static_cast (aAvailableSize) + static_cast (aReservedSize) + static_cast (PacketBuffer::kStructureSize); uint64_t sumOfAvailAndReserved = static_cast (aAvailableSize) + static_cast (aReservedSize); // Ensure that the sum fits in a size_t so that casting into size_t variables, // viz., lBlockSize and lAllocSize, is safe. if (!CanCastTo (sumOfSizes)) { ChipLogError(chipSystemLayer, "PacketBuffer: Sizes of allocation request are invalid. (aAvailableSize = " ChipLogFormatX64 ", aReservedSize = " ChipLogFormatX64 ")", ChipLogValueX64(static_cast (aAvailableSize)), ChipLogValueX64(static_cast (aReservedSize))); return PacketBufferHandle(); } #if CHIP_SYSTEM_CONFIG_USE_LWIP // LwIP based APIs have a maximum buffer size of UINT16_MAX. Ensure that // limit is met during allocation. if (sumOfAvailAndReserved > UINT16_MAX) { ChipLogError(chipSystemLayer, "LwIP based systems require total buffer size to be less than UINT16_MAX!" "Attempted allocation size = " ChipLogFormatX64, ChipLogValueX64(sumOfAvailAndReserved)); return PacketBufferHandle(); } #endif // CHIP_SYSTEM_CONFIG_USE_LWIP // sumOfAvailAndReserved is no larger than sumOfSizes, which we checked can be cast to // size_t. const size_t lAllocSize = static_cast (sumOfAvailAndReserved); PacketBuffer * lPacket; CHIP_SYSTEM_FAULT_INJECT(FaultInjection::kFault_PacketBufferNew, return PacketBufferHandle()); if (lAllocSize > PacketBuffer::kMaxAllocSize) { ChipLogError(chipSystemLayer, "PacketBuffer: allocation exceeding buffer capacity limits: %lu > %lu", static_cast (lAllocSize), static_cast (PacketBuffer::kMaxAllocSize)); return PacketBufferHandle(); } #if CHIP_SYSTEM_CONFIG_USE_LWIP // This cast is safe because lAllocSize is no larger than // kMaxSizeWithoutReserve, which fits in uint16_t. lPacket = static_cast ( pbuf_alloc(PBUF_RAW, static_cast (lAllocSize), CHIP_SYSTEM_PACKETBUFFER_LWIP_PBUF_TYPE)); SYSTEM_STATS_UPDATE_LWIP_PBUF_COUNTS(); ChipLogProgress(chipSystemLayer,"LWIP:PacketBuffer::New Request size=%u, aAvailable=%u, aReserved=%u, MaxSize=%u",lAllocSize,aAvailableSize,aReservedSize,PacketBuffer::kMaxAllocSize); #elif CHIP_SYSTEM_PACKETBUFFER_FROM_CHIP_POOL #if !CHIP_SYSTEM_CONFIG_NO_LOCKING && CHIP_SYSTEM_CONFIG_FREERTOS_LOCKING if (!sBufferPoolMutex.isInitialized()) { Mutex::Init(sBufferPoolMutex); } #endif LOCK_BUF_POOL(); lPacket = PacketBuffer::sFreeList; if (lPacket != nullptr) { PacketBuffer::sFreeList = lPacket->ChainedBuffer(); SYSTEM_STATS_INCREMENT(chip::System::Stats::kSystemLayer_NumPacketBufs); } UNLOCK_BUF_POOL(); ChipLogProgress(chipSystemLayer,"CHIP POOL:PacketBuffer::New Request size=%u",lAllocSize); #elif CHIP_SYSTEM_PACKETBUFFER_FROM_CHIP_HEAP // sumOfSizes is essentially (kStructureSize + lAllocSize) which we already // checked to fit in a size_t. const size_t lBlockSize = static_cast (sumOfSizes); lPacket = reinterpret_cast (chip::Platform::MemoryAlloc(lBlockSize)); SYSTEM_STATS_INCREMENT(chip::System::Stats::kSystemLayer_NumPacketBufs); ChipLogProgress(chipSystemLayer,"CHIP HEAP:PacketBuffer::New Request size=%u",lAllocSize); #else #error "Unimplemented PacketBuffer storage case" #endif if (lPacket == nullptr) { ChipLogError(chipSystemLayer, "PacketBuffer: pool EMPTY."); return PacketBufferHandle(); } lPacket->payload = lPacket->ReserveStart() + aReservedSize; lPacket->len = lPacket->tot_len = 0; lPacket->next = nullptr; lPacket->ref = 1; #if CHIP_SYSTEM_PACKETBUFFER_FROM_CHIP_HEAP lPacket->alloc_size = lAllocSize; #endif return PacketBufferHandle(lPacket); } Re: Matter PacketBuffer Pool Empty due to Large Pre-Allocation 例はall-clusters-appです Re: Matter PacketBuffer Pool Empty due to Large Pre-Allocation あなたも元気でいらっしゃることを願っています。 セットアップはUbuntu 22.04、GN+Ninjaビルドです 私は以下のコマンドに従いました ~ git clone https://github.com/NXP/matter.git ~ cd matter ~ scripts/checkout_submodules.py --shallow --platform nxp --recursive ~ source ./scripts/activate.sh ~ ./third_party/nxp/nxp_matter_support/scripts/update_nxp_sdk.py --platform common ~ git submodule update --init --recursive ~ source ./scripts/activate.sh ~ cd examples/all-clusters-app/nxp/rt/rw61x ~ gn gen --args="chip_enable_wifi=true chip_inet_config_enable_tcp_endpoint=true board_version=\"frdm\"" out/debug ~ ninja -C out/debug マターのバージョンは、デフォルトの release/v1.4.0 です。 私はチップツールを大きなペイロードでテストしています chip-tool onoff on --allow-large-payload true [30568] [INFO] [CSL] LWIP:PacketBuffer::New Request size=63940, aAvailable=63828, aReserved=112, MaxSize=64000 [30578] [ERR] [CSL] PacketBuffer: pool EMPTY. [30582] [ERR] [DMG] Adding response failed: b. Returning failure instead. 問題はマター/src/app/CommandHandlerImpl.cpp 内にありました。以下のコード行のように const size_t commandBufferMaxSize = mpResponder->GetCommandResponseMaxBufferSize(); auto commandPacket = System::PacketBufferHandle::New(commandBufferMaxSize); VerifyOrReturnError(!commandPacket.IsNull(), CHIP_ERROR_NO_MEMORY); mpResponder->GetCommandResponseMaxBufferSize() は常に約 63,940 バイトを返し、この PacketBuffer は同じ .cpp 内の InvokeResponse と PrepareStatus の両方の関数で使用されます。ファイル。 これを解決するために、マター/src/system/SystemConfig.hのCHIP_SYSTEM_CONFIG_MAX_LARGE_BUFFER_SIZE_BYTESを64KBから10KBに変更しました。私のメッセージは10KBを超えることはないからです。ただし、ステータス レポートまたは InvokeResponse を送信するために最大サイズの PacketBuffer を割り当てることは、依然として過大評価です。 Re: Matter PacketBuffer Pool Empty due to Large Pre-Allocation こんにちは@farazahmed8さん、お元気でいらっしゃることを願っています。 問題を再現するために、マターと SDKs のリリース バージョン、および使用している例を共有していただけますか?また、MCUXpresso VS Code 拡張機能を使用しているか、Linux で GN/Ninja ビルドを使用しているかを確認してください。
記事全体を表示