Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
IMX8MP DDR4 自定义板::你处于紧急模式。 您好, 我使用的是 i.MX8M Plus DDR4 自定义主板。我正在加载Image.gz、DTB 和rootfs (cpio.gz)从 SD 卡到 DDR,然后从 DDR 启动内核和根文件系统。 加载根文件系统后,我看到以下信息: 您已进入紧急模式。登录后,键入"journalctl -xb" 了解详情。 按 Enter 进行维护 (或按 Control-D 继续): [ 12.946854] random: crng init done. 我附上了完整的启动日志供你参考。 以下是我用来将图像从 SD 卡加载到 DDR 的 U-启动 命令: ================== 从 SD 卡加载到 DDR ================== fatload mmc${mmcdev}:1${loadaddr} Image.gz fatload mmc${mmcdev}:1${fdt_addr} imx8mp-ddr4-evk.dtb fatload mmc${mmcdev}:1${initrd_addr} cpio.gz setenv bootargs console=${console},${baudrate} earlycon=${earlycon},${baudrate} rdinit=/sbin/init booti${loadaddr} ${initrd_addr} ${fdt_addr} ============================================================== 我的问题是 如何才能获得正常的 root 登录提示,如: root@imx8mp- ddr4 -evk:~? 为避免进入紧急模式,是否建议修改引导参数? 如能提供任何指导或建议,将不胜感激。 感谢并致意 巴德瓦杰 Re: IMX8MP DDR4 Custom board :: You are in emergency mode. 你好 能否请您分享整个日志? 顺祝商祺! Re: IMX8MP DDR4 Custom board :: You are in emergency mode. 你好@JorgeCas、 请在下面找到随附的完整日志以供您参考。 谢谢!
記事全体を表示
i.MX RT1060 API の LPSPI_MasterTransferEDMA は 24 ビットのフレーム サイズをサポートしていませんか? LPSPI を使用して DMA 経由で 24 ビット フレームを書き込もうとしています。アプリケーションは重要ではありませんが、私の例では、メモリから外部 DAC にデータを送信することです。私はこれを DMA で動作させたいと思っています。なぜなら、最終的には TCD のリンク リストを PIT と一緒に使用して、CPU オーバーヘッドなしで DAC を継続的に更新するためです。これは外部 ADC および DAC を使用する一般的なアプリケーションです。16 ビット DAC/ADC には 24 ビットのフレーム要件があることも一般的です (上位バイトはコマンド用、下位バイトはデータ用)。uint8_t データを使用して転送を 3 バイトに分割するのではなく、uint32_t データを使用して 24 ビットのフレーム サイズで送信し、先頭バイトを無視します。 さて、LPSPI と DMA の構成に移ります。 1.imxRT1060 SDK の API LPSPI_MasterInit 関数の lpspi_master_config_t 構造を使用すると、 bitsPerFrame を 24 に設定できます。DMA を使用せずに標準転送を行う場合、これは問題ではありません。 2. ただし、API の LPSPI_MasterTransferEDMA 関数で DMA を使用する場合、24 ビット フレーム サイズのケースは eDMA ハードウェアによって処理またはサポートされませんか?LPSPI_MasterTransferEDMALite では、DMA 転送幅は edma_transfer_config_t 構造体で設定されます。具体的には、srcTransferSize フィールドと destTransferSize フィールドは、SPI フレーム サイズ (bytesPerFrame) から導出される bytesEachRead 値と bytesLastWrite 値に基づいて構成されます。 /* LPSPI_MasterTransferPrepareEDMALite */ uint32_t bytesPerFrame = ((base->TCR & LPSPI_TCR_FRAMESZ_MASK) >> LPSPI_TCR_FRAMESZ_SHIFT) / 8U + 1U; if (bytesPerFrame <= 4U) { handle->bytesEachWrite = (uint8_t)bytesPerFrame; // for 24bit frames = 3 handle->bytesEachRead = (uint8_t)bytesPerFrame; // .... handle->bytesLastRead = (uint8_t)bytesPerFrame; // .... } /* now back in LPSPI_MasterTransferEDMALite */ switch (handle->bytesEachRead) //bytes each transfer { case (1U): transferConfigRx.srcTransferSize = kEDMA_TransferSize1Bytes; transferConfigRx.minorLoopBytes = 1; if (handle->isByteSwap) { addrOffset = 3; } break; case (2U): transferConfigRx.srcTransferSize = kEDMA_TransferSize2Bytes; transferConfigRx.minorLoopBytes = 2; if (handle->isByteSwap) { addrOffset = 2; } break; case (4U): transferConfigRx.srcTransferSize = kEDMA_TransferSize4Bytes; transferConfigRx.minorLoopBytes = 4; break; default: transferConfigRx.srcTransferSize = kEDMA_TransferSize1Bytes; transferConfigRx.minorLoopBytes = 1; assert(false); break; } デフォルトのケースが発生し、3 バイトのケースは処理されないためエラーが発生します。EDMAハードウェアは3バイト転送をサポートしていますか?基本的に、uint32_tのデータとフレームを3バイトとして扱い、最上位バイトを無視してDMA転送を行いたいのですが、可能ですか? Re: i.MX RT1060 API's LPSPI_MasterTransferEDMA does not support 24bit framesize? こんにちは@azoneさん、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 次のリンクを確認してください。eDMA は 1、2、4、8、16、32、64 バイトの転送サイズをサポートしており、24 ビット (3 バイト) の転送サイズはサポートしていないことが説明されています。 MCUXpresso SDK APIリファレンスマニュアル: EDMA: 拡張ダイレクトメモリアクセス (eDMA) コントローラドライバ よろしくお願いいたします。 メイリュー Re: i.MX RT1060 API's LPSPI_MasterTransferEDMA does not support 24bit framesize? わかりました。確認してくれてありがとう。これで、動作させるために時間を無駄にすることがなくなりました。したがって、唯一の方法は、すべてをuint8_tデータとしてkLPSPI_MasterPcsContinuousで3バイトとして送信することです。これは他のすべてのペリフェラルでも同じ方法で実行しているので問題ありませんが、16ビットDAC実装の場合は不要なオーバーヘッドが発生します。ありがとうございます。
記事全体を表示
S32 Design Studio for Power Architecture v2.1 - 更新 7 现已发布! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />       产品发布公告 汽车微控制器和处理器 面向 Power Architecture 的 S32 设计工作室 v2.1 更新 7          新增内容 集成 S32 SDK,适用于 Power Architecture RTM 3.0.2(参见S32 SDK发行说明) 这是一个累积更新 - 它包含之前更新的所有内容(更新 1 、更新 2 ) 安装说明 此更新可供在线安装 (通过 S32DS 扩展和更新)或 离线安装(直接下载链接)  安装: 进入菜单"帮助" -> "S32DS 扩展和更新" 对话框 从可用项目中选择并点击 "Install/Update" 按钮 离线安装: 前往 S32 Design Studio for Power 产品页面 -> 下载部分或使用直接链接下载更新存档 zip 文件 启动 S32 Design Studio,转到“帮助”->“S32DS 扩展和更新”,然后单击“转到首选项”链接 并添加一个新的站点“添加...”存储库并浏览以选择您在上一步中下载的更新存档 zip 文件 选择“S32 Design Studio for Power Architecture Device Package”和“使用 S32 SDK 3.0.2 更新”对于 Power Architecture 包,然后单击“安装/更新”按钮。 此时将启动更新安装过程。 概述 SDK
記事全体を表示
eIQ 时间序列工作室入门指南 本实验将指导您如何使用 eIQ 时间序列工作室(TSS),这是一款集成于 eIQ 工具包 的全新工具,用于为嵌入式微控制器开发时间序列模型。实验内容涵盖:时间序列数据导入方法、工具如何生成多种机器学习算法,以及如何将生成的模型部署至开发板。本实验基于 FRDM-MCXN947 开发板,但相同步骤适用于所有 eIQ 时间序列工作室 支持的设备。 MCX FRDM-MCXA153 FRDM-MCXN947 MCX-N9XX-EVK i.MX RT i.MXRT685-EVK i.MXRT595-EVK MIMXRT1060-EVK MIMXRT1170-EVK MIMXRT1180-EVK LPC LPC55S69-EVK Kinetis FRDM-K66F FRDM-KV31F FRDM-K32L3A6 DSC MC56F83000-EVK MC56F80000-EVK   您还可以观看下方的视频,以快速了解 Time Series Studio 的流程。 (在 “我的视频” 中查看) 您还可通过 App Code Hub 获取 ML 通用数据记录器 工具,用于收集可与时间序列工作室配合使用的传感器数据。 i.MX RT
記事全体を表示
PCF2131——第二脉冲信号触发错误 Hello, 我是 Ramón,开始使用 PCF2131 和 STM MCU 进行工作。在设备中设置新的时间+日期后,我遇到了脉冲秒信号的问题。 我遵循的方案如下: 1.我将设备设置为无中断,只有秒脉冲信号。控制寄存器设置如下: ** 控制 1:0b0000 0001,控制 2、3、4、5:0b0。-> 仅使用第二脉冲信号。 ** INTA/B Mask1/2: 0b0 -> 所有中断禁用 ** WD 控制:0x20 -> 脉冲秒信号,无 WD。 2. 然后我从 RTC 读取并检查完整性。然后设置我的MCU的时间。 3. 设备定期通过 SNTP 进行同步。问题就来了。 当收到新日期时,我们停止 RTC,清除预分频器,设置新时间(添加操作延迟)并重新启动 RTC。当这个时间接近于秒的变化(大概是920-950ms),并且设置增加延时的时间(这样就使得新的时间设置大约在50-80ms),秒脉冲信号被触发,使得MCU比实际时间提前一秒递增。我们不知道为什么会发生这种情况。尝试禁用、清除和重新启用中断,但情况仍然相同。知道为什么会发生这种情况吗? 我将我们测量的信号与我们发送的 I2C 数据附加在一起。第二个是在此特定帧中设置的日期时间的缩放,您可以看到第 100 秒设置为 4。
記事全体を表示
D1が赤く点灯しているため、S32K146EVB-Q144ボードをフラッシュできません 当初は正常に動作していた S32K146EVB-Q144 評価ボードを持っています。 Lin スタックを実装したデバッグ セッション中に、動作が停止しました。 コントローラをリセットすると、D1 の赤いライトが点灯し続け、他の 2 つの緑のライトも点灯したままになります。 USB ソースからの電源を選択するために、位置 2-3 の J10 と J107 を使用し、OpenSDA アプリのフラッシュ モードを選択するために、位置 2-3 の J104 を使用しました。 現在、私のコントローラは S32DS によってまったく検出されません。 症状はまったく同じであるように思われたので、以下の投稿に記載されている手順を試してみました。 Re: S32K144 D2 赤色 LED が常時点灯 - NXP コミュニティ ここで、P&E Kinetics Recovery Tool を使用して OpenSDA でプロセッサを停止できましたが、それでも新しいアプリケーションをフラッシュすることはできませんでした。 停止に成功しても再度点滅させることができず、赤色のライトが点灯したままになります。 コントローラはジャンパー J104 を調整することでブートローダーモードに入ることもでき、実際にブートローダーアプリをフラッシュすることもできました。しかし、どういうわけか私は再びフラッシュを書き込むことができず、サンプルの.srecをフラッシュしようとするとファイルでは、D2 は定期的に点滅し続けます (通常、正常に点滅すると 1 回点滅してからアプリの実行が開始されます)。 つまり、簡単に言うと: - コントローラがメインに到達できない、または継続的にリセットされる - コントローラはフラッシュに再度書き込むことができません (セキュリティ上の問題である可能性があります)。 私はデバッグ プローブを持っていないため、SEGGER-JLINK に関連するものを除き、上記の Thread で言及されているテクニックを試しました。私は PE Multilink Universal を持っていますが、フラッシュを回復/消去することはできません。 ボードの詳細は次のとおりです。 ボード名: S32K146EVB-Q144 MicroBootカーネルバージョン: 1.08 ブートローダーのバージョンは: 1.13 インストールされたアプリケーション: PEMicro EVB-S32K144 マスストレージ/デバッグアプリ アプリケーションのバージョン: 1.25 DUID は: 39A33939-91818199-37539805-F97AE678 EUID は: 4141A238-1BDB8733-1854BA22-D38368D6 TUID: 74823938-47328196-8576CC9B-0242983E TOAは次のとおりです: 86B6E505-56F042E0-79B2A114-62BA758F TOA2 は: 86B6E505-EB1A8A7C-AF6E54B6-43532420 SUID は: 86B6E505-5BA18877-37239804-8003EC65 MCU は永久にロックされますか? そうでない場合、どうすればボードを回復できますか? ハードウェアに障害があると思われますか?(参考までに、D2とD3が緑色に点灯しているのは、5Vと3.3Vの電源レールが正常に動作していることを意味していると思います) 物理的に大量消去する方法はありますか?(ボードがまったく検出されないため、S32DS 緊急キネティクス オプションは使用できません)。 OpenSDA チップの任意のピンを接地すると、フラッシュ メモリが消去されますか? Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red クリスマス休暇期間中は、サポートの応答時間は通常より長くなる場合がありますのでご了承ください。場合によっては、ご要望への対応が新年以降になることもあります。ご理解のほどよろしくお願いいたします。 Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red ハイ P&E リカバリ ユーティリティがMCU を停止したら、ツールを閉じます。 次にステップ3に進みます または ステップ4 S32K146 を再プログラムします。 これが原因かどうかは分かりませんが、 アプリケーションのバージョン: 1.25 。リセットボタンSW5を押したまま、USBケーブルを挿入して MSD-DEBUG-S32K146EVB-Q144_Pemicro_v121.SDA BOOTLOADER ドライブに挿入します。これにより、 アプリケーションバージョンを1.21に。 また添付しました lpit_periodic_interrupt_s32k146.srec 。 ちなみに、外付けのSegger J-Linkは必要ありません。ステップ6に従う場合: SW5を押しながらJ7を挿入すると、OpenSDAがブートローダーモードになります。そして、 SEGGER J-Linkアプリケーションファームウェア( OpenSDA_V1.bin )をOpenSDA_V1.binにコピーします。 オンボード デバッガーは J-Link になります。 よろしくお願いします、 ロビン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「解決策として承認」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red こんにちは、ロビン。 迅速なご返信ありがとうございます。MSD -DEBUG-S32K146EVB-Q144_Pemicro_v121.SDAにロールバックしてみましたが、 同じように動作します。ブートローダーアプリはフラッシュされますが、D1はまだ赤く点灯しており、.srecをフラッシュできません。kinetis 回復ツールを使用して停止した後のファイル。コントローラが srec をフラッシュしようとしているが、D2 が定期的に点滅するため失敗していることがわかります (通常は 3 ~ 4 回だけ点滅し、アプリがフラッシュされます)。 その後、ブートローダーをOpenSDA_V1.bin に切り替えて、その後 J-Link コマンダーを使用して接続を試みましたが、次のログが表示されました。 SEGGER J-Link Commander V8.94 (2025年12月10日 14:50:47 にコンパイル) DLLバージョンV8.94、2025年12月10日14:49:54にコンパイル USB経由でJ-Linkに接続しています...OK ファームウェア: J-Link OpenSDA コンパイル日: 2023年1月31日 13:42:36 ハードウェアバージョン: V1.00 J-Link の稼働時間(起動以降): 0d 00h 00m 28s シリアル番号: 621000000 VTref=3.300V ターゲット接続を確立するには「connect」と入力し、ヘルプを表示するには「?」と入力します J-Link>接続 デバイス/コアを指定してください。 : S32K146 選択ダイアログに「?」と入力してください デバイス>S32K146 ターゲットインターフェースを指定してください: J) JTAG (デフォルト) S) SWD T) cJTAG TIF>SWD 対象インターフェース速度[kHz]を指定します。 : 4000 kHz 速度>100 デバイス「S32K146」が選択されました。 SWD経由でターゲットに接続する ConfigTargetSettings() の開始 ConfigTargetSettings() 終了 - 22us かかりました InitTarget() 開始 SWDが選択されました。JTAG -> SWD 切り替えシーケンスを実行しています。 CPU の停止中にタイムアウトが発生しました。 InitTarget() 終了 - 392 ミリ秒かかりました ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 APマップをスキャンして利用可能なすべてのAPを見つける AP[2]: APマップの終端に達したため、APスキャンを停止しました AP[0]: AHB-AP (IDR: 0x24770011, ADDR: 0x00000000) AP[1]: JTAG-AP (IDR: 0x001C0000, ADDR: 0x01000000) APマップを反復処理して使用するAHB-APを見つける AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 FPUnit: 6 つのコード (BP) スロットと 2 つのリテラル スロット CoreSight コンポーネント: ROMTbl[0] @ E00FF000 [0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7 [0][1]: E0001000 CID B105E00D PID 003BB002 DWT [0][2]: E0002000 CID B105E00D PID 002BB003 FPB [0][3]: E0000000 CID B105E00D PID 003BB001 ITM [0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU 126976バイトの作業用RAM(0x1FFF0000)を初期化しています リセットタイプ: NORMAL ( https://kb.segger.com/J-Link_Reset_Strategies ) リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: AIRCR.SYSRESETREQ 経由でデバイスをリセットします。 リセット: S_RESET_ST はクリアされません。CPU は永久にリセット状態のままになっているようです。 リセット: フォールバックを使用: ピンをリセットします。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした リセット: コアはリセット後に停止せず、WDT を無効にしようとしました。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした リセット: 失敗しました。リセット ピンを切り替えてリセット戦略を再度試します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: AIRCR.SYSRESETREQ 経由でデバイスをリセットします。 リセット: S_RESET_ST はクリアされません。CPU は永久にリセット状態のままになっているようです。 リセット: フォールバックを使用: ピンをリセットします。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした リセット: コアはリセット後に停止せず、WDT を無効にしようとしました。 リセット: DEMCR.VC_CORERESET によるリセット後にコアを停止します。 リセット: リセットピン経由でデバイスをリセットします リセット: VC_CORERESET は CPU を停止しませんでした。(デバッグ ロジックもリセット ピンによってリセットされますか?)。 リセット: 再接続して CPU を手動で停止します。 ID 0x2BA01477 の SW-DP が見つかりました DPv0が検出されました CoreSight SoC-400 以前 AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) AP[0]: コアを発見 AP[0]: AHB-AP ROMベース: 0xE00FF000 CPUIDレジスタ: 0x410FC241。実装者コード: 0x41 (ARM) Cortex-M4 r0p1、リトルエンディアンが見つかりました。 CPUを停止できませんでした CPUを停止できませんでした CPUを停止できませんでした ****** エラー: CPU を停止できませんでした。 メモリゾーン: ゾーン: 「デフォルト」 説明: デフォルトのアクセスモード Cortex-M4 が識別されました。 J-Link> Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red オシロスコープを使用してリセットピンの波形を観察し、波形を送信してリセット期間とハイレベル幅を教えてください。場合によっては回復不可能となり、S32K1 チップを交換しなければならないこともあります。   接続戦略と回復手順: 目標: デバッガーにコアを停止し、問題のあるファームウェアを無効にする機会を与えます。 A. SWD速度を下げる + 「リセット時に接続」 J-Link Commanderの場合: J-Link> device S32K146 J-Link> if SWD J-Link> speed 1000 ; start at 1 MHz; if still failing, drop to 100 kHz J-Link> connect それでも失敗する場合は、手動の connect‑under‑reset を使用します。 RESET_b を外部的に低く保持し、ボードに電源を投入します。 Commander で connect を実行します。 リセットを解除し、直ちに次の操作を実行します。 J-Link> r J-Link> h J-Link> halt 特に 100 kHz SWD 速度ではタイミングが重要になる可能性があるため、何度か試してください。 B. J-Linkリセット戦略の変更 リセット戦略の値によって動作が異なります。Commander の場合 (正確な ID はバージョンによって異なる場合があります): J-Link> SetResetType = 3 ; a common “connect under reset / halt after reset”; Try 2 / 4 / 12 etc. depending on your J-Link version J-Link> r J-Link> halt または、J-Link Commander で「リセット状態で接続」を選択してみてください。 Re: Unable to flash S32K146EVB-Q144 board as D1 glowing red S32K146EVB-SPF-29844-RB.pdfによると: J104 1-2 OpenSDAからのリセット信号 J10 2-3 P5V0 外部の 9V または 12V 電源がある場合は、 J107 1-2 P5V_SBC を接続することもできます。PEMicro Multilinkなどの外部デバッガーをお持ちの場合は、それを使用して、S32K146 用のプログラムをダウンロードできるかどうかを確認してください。 最後にダウンロードされたプロジェクトは何ですか?CSEc は有効になっていますか? 前回の質問に答えて、オシロスコープを使用して測定したリセット信号を提供してください。
記事全体を表示
88Q9098: 能否在 STA 模式下启用/禁用 ofdma/mu-mimo? 我一直在苦苦寻找答案,但就是找不到。 我想添加启用/禁用功能 下一次连接到接入点时为 DL-OFDMA、UL-OFDMA、DL-MU-MIMO、UL-MU-MIMO 我知道启用这些功能是由接入点完成的、 但我并不关心它以何种形式出现,比如改变能力,或者其他、 我只是想让它以这种方式工作: 当我启用 DL-OFDMA 时,如果接入点尝试使用,它就会工作、 而当我在 STA 中禁用它时,即使 AP 尝试禁用,也不会起作用。 如果可能,那就再好不过了、 但即使不可能,我也会非常感激。 我真的需要你的帮助。 谢谢! Re: 88Q9098: Is it possible to enable/disable ofdma/mu-mimo in STA mode? 感谢您的支持 Re: 88Q9098: Is it possible to enable/disable ofdma/mu-mimo in STA mode? 你好@nhk OFDMA/MU-MIMO 功能只能由 AP 端配置。STA 无法禁用它。STA 将使用 AP 指定的通信协议进行通信。 顺祝商祺! 肖恩
記事全体を表示
GUI Guider v1.7.2 オフライン テンプレートをダウンロードできません。 公式サイトからGUI Guider v1.7.2 オフライン テンプレートをダウンロードできません。ダウンロードしたバージョンは自動的に最新の 1.10.1 バージョンに更新されます。サーバーのリソース パスが正しいかどうかを確認してください。 Re: I can't download the GUI Guider v1.7.2 Offline Template. こんにちは@zzxx 、 この問題を報告していただきありがとうございます。試してみましたが、まさに説明どおりに動作しました。これを社内チームに報告し、修正が提供されるのを待ちます。 BR セレステ Re: I can't download the GUI Guider v1.7.2 Offline Template. こんにちは@zzxx 、 現時点ではこの問題に関してそれ以上の進展はありません。クリスマス休暇および EMEA と AMEC のタイム ゾーン全体の休日期間のため、プロセッシング時間は通常より長くなる場合がありますのでご了承ください。 皆様のご理解とご協力に心より感謝申し上げます。 楽しい一日をお過ごしください! BR セレステ Re: I can't download the GUI Guider v1.7.2 Offline Template. こんにちは@zzxx 、 すべてが順調に進んでいることを祈っています。問題が解決したことをお知らせしたかったのです。   BR セレステ    
記事全体を表示
[滥用] 发布者:@JohnKlug /板:imx-processors/举报人:srbacvj srbacvj 报告了 @JohnKlug 发布的帖子 Could not invoke dnf for external kernel module in Yocto kirkstone ,原因如下: 原因: 详情: < a href="https://tylkoastronomia.pl/node/9904"> http://prosti-proshay.ru/lyudi/pharmacy-online-1"> https://www.siriuspup.com/breeders/pharmacy-online-11"> https://stage.cc.radiant.digital/node/3046"> http://www.pajeroio.com/blog/pharmacy-online-0"> https://www.musicinafrica.net/newsfeed/213463/373133"> http://www.sccu.chula.ac.th/node/933"> < a href="https://www.lawtech.ru/subscribe/26816-16102025"> https://okwiki.ru/catalog/pharmacy-online"> < a href="https://neweddingday.com/your-couple-name-2333"> https://www.siriuspup.com/breeders/pharmacy-online-11"> http://xn--37-6kci4a9aahjr0a.xn--p1ai/pharmacy-online-ivanovo-8"> https://hetnieuweteamwerken.be/forums/forum/pharmacy-online-5"> https://www.jobwebby.ilovemarkso.com/domainasname-anthony-gmbh/pharmacy-online-6"> http://prosti-proshay.ru/lyudi/pharmacy-online-1"> https://www.intimus.pt/pharmacy-online-16"> https://www.intimus.pt/pharmacy-online-16"> https://dev.beautynbrushes.com/services-provided/tree-braids-maroonimmortalep"> https://whs6570.com/node/2099"> http://www.le-cercle-des-sourires.fr/session/3338"> < a href="https://www.jobwebby.ilovemarkso.com/domainasname-anthony-gmbh/pharmacy-online-6"> https://www.danduo168.com/en/artworks/693/pharmacy-online-0"> https://auc.org.ua/faq/29092025-0456"> https://jeunescathos-bxl.org/fr/content/pharmacy-online-54"> https://www.musicinafrica.net/newsfeed/213463/373133"> http://xn--37-6kci4a9aahjr0a.xn--p1ai/pharmacy-online-ivanovo-8"> https://masters.adminskiracing.com/node/413296"> https://slp.millingtonpubliclibrary.org/content/pharmacy-online-9"> < a href="https://tylkoastronomia.pl/node/9904"> https://fo-rum.auc.org.ua/faq/29092025-0042-1"> https://ruckup.org/caregivers-forum/topic/6386"> < a href="https://www.rapidservice.com.ec/es/content/pharmacy-online"> https://www.globalrealtor.co.in/node/4204"> < a href="https://whs6570.com/node/2099"> https://darkmetalmush.net/history/pharmacy-online-23"> https://www.thebiketube.com/f-moser-ann"> http://xn--80aah2bgapnqg.xn--p1ai/story/pharmacy-online-3"> https://stage.cc.radiant.digital/node/3046"> https://masters.adminskiracing.com/node/413296"> https://dev.worldwar1luton.com/forum-topic/pharmacy-online-5"> 发布链接: https://community.nxp.com/t5/i-MX-Processors/Could-not-invoke-dnf-for-external-kernel-module-in-Yocto/m-p/1627964#M203740 帖子作者 @JohnKlug|Email Author 报告人:srbacvj |Email Reporter 报告的帖子有 2 个回复。
記事全体を表示
[S32K344MINI-EVB] 搭載デバッガ機能の確認 (K26 OpenSDA) NXPコミュニティの皆様、こんにちは。 S32K3シリーズの評価のため、S32K344MINI-EVBを購入予定です。 購入する前に、デバッグ インターフェースの要件を再確認して、正しく設定されていることを確認したいと思います。 私の理解: ブロック図とドキュメントによると、このボードにはK26 を使用した搭載デバッグインターフェースが含まれており、OpenSDA を使用する搭載デバッガーとして機能すると考えられます。 質問: S32 Design Studio を使用してS32K344MINI-EVB をフラッシュおよびデバッグするには、USB ケーブルだけが必要であることを意味しますか?(つまり、基本的な評価には Multilink や Lauterbach のような外部デバッガーは必要ありませんか?) この特定のボードには、注意する必要のある「ND (No Debugger)」バリアントや特別なジャンパーがないことを確認したいだけです。ご協力ありがとうございます! Re: [S32K344MINI-EVB] Confirming On-board Debugger Capabilities (K26 OpenSDA) ハイ 先週参加したトレーニング中に、同僚がこのボードの「ND (No Debugger)」バリアントについて言及しているのを聞きませんでした。 以前の S32K3X4EVB-T172 に関しては、当時 K26 が在庫切れだったため、「ND (デバッガーなし)」バリアントが存在していました。 新しく発売されたボードなのでまだ手元にありません。本日、S32K344MINI-EVB を注文しました。よろしければ、商品到着後に確認させていただきます。 よろしくお願いします、 ロビン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「解決策として承認」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: [S32K344MINI-EVB] Confirming On-board Debugger Capabilities (K26 OpenSDA) こんにちは、 ご返信ありがとうございます。返答をお待ちしています。ありがとう。 Re: [S32K344MINI-EVB] Confirming On-board Debugger Capabilities (K26 OpenSDA) 3日前にS32K344MINI-EVBボードを社内で注文しましたが、まだ発送されていません。いつ受け取れるかは不明ですので、お知らせします。 Re: [S32K344MINI-EVB] Confirming On-board Debugger Capabilities (K26 OpenSDA) K26 を備えた搭載デバッグインターフェースを備えた S32K344MINI-EVB を受け取りました。
記事全体を表示
EB Tresos - Ae 模块生成代码时选择了错误的 SPI 模块 RTD 6.0.0 中的 Ae 插件/模块正在生成使用 SPI LSPI0 而非 LSPI1 的代码,这无法配置,而且是错误的,因为 Ae 只能使用 SPI 1。 版本 Ae 中的 SPI 选择不可配置 由于 D2D 连接需要使用 SPI 1 不过,生成的文件使用 SPI 0 作为临时解决方案手动修改 Re: EB Tresos - Ae module generating code with wrong SPI module selected 嗨,@guillermoarb 请核实以下内容: 在配置工具中打开 AeSpiSequence 税务摊销收益。 检查 AeSpiSequenceName 是否分配给了正确的 SpiSequence。 确认该 SpiSequence 的 SpiJobAssignment 已链接到相应的 SpiJob。 确认 SpiJob 的 SpiDeviceAssignment 已设置为 LPSPI1 实例的 SpiExternalDevice。 如果这些说明似乎不清楚或令人困惑,请参考随 RTD 提供的示例项目 Ae_Spi_Example_EB_001_S32M276,因为它有助于验证是否存在错误或遗漏的配置。 BR、VaneB
記事全体を表示
需要指导:NNStreamer (i.MX8MP) 上的 YOLOv8 输出形状不匹配 + 管道设计问题(微型 硬件和软件详情 i.mx8mPlus 和 Linux 电路板支持包 LF6.12.34_2.1.0 目标 我正在i.MX8MP 上构建一个命令行流水线(无图形用户界面),其中推理、叠加和显示均在 GStreamer 和 NNStreamer 中运行。 当前实验(命令行) 我试过这个管道:       gst_debug=gstreamer: 4、tensor_filter: 6、tensor_transform: 6、tensor_decoder: 7\ gst-launch-1.0--no-position\ v4l2src 设备=/dev/video4 num-buffers=200!\ video/x-raw,width=1920,height=1080,format=NV12,framerate=30/1 !\ imxvideoconvert_g2d !\ video/x-raw,width=320,height=320,format=RGBA !\ videoconvert !\ video/x-raw,width=320,height=320,format=BGR !\ tensor_converter !\ tensor_transform mode=arithmetic option=typecast:int8,add:-128 !\ tensor_filter framework=tensorflow-lite model=${MODEL}custom=Delegate:External,ExtDelegateLib:${VX_LIB}!\ tensor_transform mode=arithmetic option=typecast:float32,add:128.0,mul:0.004982381127774715!\ tensor_transform mode=transpose option=1:0:2 !\ tensor_decoder mode=bounding_boxes option1=yolov8 option2=${LABELS}option3=0 option4=1920:1080 option5=320:320 !\ cairooverlay name=overlay !\ videoconvert !\ autovideosink log file link LINK  ❗ 问题 我的 YOLOv8 TFLite 模型输出(1、7、2100),但 i.MX8MP 上的 NNStreamer 却显示7 × 2100 × 1。 我收到了这样的解释: YOLOv8 TFLite 型号的输出为(1,7,2100),而 NNStreamer 的 i.MX8MP YOLOv8 解码器的输出为 7×2100×1。此电路板支持包版本仅支持对四维张量进行转置,因此模型输出需要去量化,重塑为 (1,7,2100,1),然后进行转置。 输入: int8 [1, 320, 320, 3] 输出:int8 [1, 7, 2100] 刻度/零点 输出正确包含 3 个类别 + 4 个 bbox 值 ⚙️ 当前(缓慢)的方法 现在的申请流程是 GStreamer → BGR → OpenCV NPU 推断 OpenCV 后处理 返回 RTSP 管道 这会导致多个软件视频转换,在理想条件下,我们只能达到约 20 FPS,尽管模型本身可以运行 60 多 FPS。 🔄 建议的新方法 我想把管道分开: 路径 A - 推断 仅在此处转换 NV12 → BGR 运行 NNStreamer 路径 B - 叠加 + 显示 保留原始 NV12/YUY2 框架 直接在 NV12 上绘制边界框(最好使用硬件) → 将 NV12 送入编码器/RTSP → 完全避免软件视频转换 我首先想使用纯粹的 gst-launch 来制作这个原型,然后在 Python 中应用这种方法(可能使用 OpenGL 来实现 NV12 叠加层)。 🙏 我需要帮助 如何在 i.MX8MP 上将(1,7,2100) TFLite 输出重塑/转换为 NNStreamer 的 YOLOv8 解码器所需的格式 有只使用张量滤波器/变换/解码器的工作示例吗? 有没有解决三维输出问题的方法? 在 NV12/YUY2 上叠加的最佳做法 有什么 NNStreamer 友好的方法可以直接在 NV12 上绘制方框吗? 推荐元素(NV12 上的 cairooverlay?OpenGL?v4l2convert?imxvideoconvert_g2d 重叠?) 一般建议:在 i.MX8MP 上,分割管道(BGR 上的推理,NV12 上的叠加)是合理的架构方向吗? i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Need guidance: YOLOv8 output shape mismatch on NNStreamer (i.MX8MP) + pipeline design question ( 感谢您的快速回复,我之前曾尝试在 tensor_transform 中使用重塑,但返回错误。 root@imx8mpevk:~# export MODEL=/root/rtsp/testing1/saved_model_Triding_320.tflite root@imx8mpevk:~# export LABELS=/root/rtsp/testing1/labels.txt root@imx8mpevk:~# gst-用上市-1.0 --no-position v4l2src 设备=/dev/video4!video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 !imxvideoconvert_g2d !video/x-raw,width=320,height=320,format=RGBA !视频转换 !video/x-raw,width=320,height=320,format=BGR !张量转换器 !tensor_transform mode=arithmetic option=typecast:int8,add:-128 !tensor_filter framework=tensorflow-lite model=${MODEL} !tensor_transform mode=arithmetic option=typecast:float32,add:128.0,mul:0.004982381!tensor_transform mode=reshape option=1:7:2100:1 !tensor_transform mode=transpose option=1:0:2:3 !tensor_decoder mode=bounding_boxes option1=yolov8 option2=${LABELS} option3=0 option4=1920:1080 option5=320:320 !cairooverlay name=overlay !视频转换 !autovideosink ** 消息:14:56:17.877:accl = cpu **(gst-launch-1.0:1335):CRITICAL **:14:56:17.931:bb_getOutCaps: assertion 'config->info.info[0].type== _NNS_FLOAT32' 失败 ** (gst-launch-1.0:1335):CRITICAL **:14:56:17.931:bb_getOutCaps: assertion 'config->info.info[0].type== _NNS_FLOAT32' 失败 ** (gst-launch-1.0:1335):CRITICAL **:14:56:17.931:bb_getOutCaps: assertion 'config->info.info[0].type== _NNS_FLOAT32' 失败 ** (gst-launch-1.0:1335):CRITICAL **:14:56:17.935:bb_getOutCaps: assertion 'config->info.info[0].type== _NNS_FLOAT32' 失败 ** (gst-launch-1.0:1335):CRITICAL **:14:56:17.938:bb_getOutCaps: assertion 'config->info.info[0].type== _NNS_FLOAT32' 失败 ** (gst-launch-1.0:1335):CRITICAL **:14:56:17.939:bb_getOutCaps: assertion 'config->info.info[0].type== _NNS_FLOAT32'失败 警告:流水线错误:无法在元素"tensor_transform" 中设置属性"mode" ,以"重塑" root@imx8mpevk:~# 您能否建议修改流水线,以符合预期格式,并覆盖到 nv12 上。 或者我需要降级或升级我的 linux 电路板支持包 版本才能匹配它们。 如果可能,请测试管道并提供反馈。 感谢并问候 S Vishnu Re: Need guidance: YOLOv8 output shape mismatch on NNStreamer (i.MX8MP) + pipeline design question ( 你好 问题源于您的 YOLOv8 TFLite 模型输出形状(1,7,2100)与 i.MX8MP 上 NNStreamer 的 YOLOv8 解码器所期望的格式(7×2100×1)不匹配。出现这种情况的原因是: 1.您当前的电路板支持包版本 (LF6.12.34_2.1.0)仅支持 4D 张量的转置操作 2.模型输出需要重塑和转置,以符合解码器的预期 ## Recommended Solution For the tensor transformation, you need to apply: 1. Dequantization (if using quantized model) 2. Reshape the output from (1,7,2100) to (1,7,2100,1) 3. Transpose the tensor to the required format (7×2100×1) ## 管道优化 您建议的架构(拆分管道)是一种合理的方法: - 仅为推理转换 NV12 → BGR - 保留原始 NV12/YUY2 帧用于显示/编码 - 使用硬件加速直接在 NV12 上叠加检测结果 这将消除软件视频转换操作,实现更好的性能。 ## NV12 管道的推荐要素 在 NV12 上直接绘制边界框: - 使用具有叠加功能的 `imxvideoconvert_g2d` - 替代方法: `cairooverlay` 可与 NV12 配合使用,但可能需要格式调整 管道结构示例: ``` v4l2src → NV12 → tee → branch1:转换为 BGR → 推理 → 检测结果 branch2:原始 NV12 → imxvideoconvert_g2d(带叠加) → 编码器/显示器 ``` 通过消除不必要的格式转换,利用 NPU 60+ FPS 的能力,这种方法应能显著提高性能,超过当前约 20 FPS 的限制。 此致 Re: Need guidance: YOLOv8 output shape mismatch on NNStreamer (i.MX8MP) + pipeline design question ( 您好, 是的,你需要降级 Linux 电路板支持包。我想这应该能行,因为我们还没有在 Yolov8 中测试过管道。 此致 Re: Need guidance: YOLOv8 output shape mismatch on NNStreamer (i.MX8MP) + pipeline design question ( 我有一个更新,我在张量_变换元素中使用了模式维度变化(dimchg),以符合张量解码器的预期。 .... tensor_filter framework=tensorflow-lite model=../../vaishnavi/model_calibrated_int8_og_320.tflite custom=Delegate:External,ExtDelegateLib:libvx_delegate.so !tensor_transform mode=arithmetic option=typecast:float32,add:128.0,mul:0.004982381!tensor_transform mode=dimchg option=0:1 !tensor_decoder mode=bounding_boxes option1=yolov8 option2=labels_over.txt option3=0 option4=1920:1080 option5=320:320 !...... 感谢您的回复。 感谢和问候 Siddavatam Vishnu
記事全体を表示
S32DS IDE 是否可以安装 Eclipse Marketplace 我试图为 eclipse 安装 copilot 插件。 我以为 S32DS 是由 eclipse 继承而来的,那么这种操作应该是可行的。 但我发现根本没有日蚀市场。 所以我想知道:是否可以先安装 eclipse marketplace,然后再安装插件(包括 copilot 等)。 或者我们可以说,S32DS 的设计初衷就是不兼容大多数第三方插件? 这个问题应该同时适用于 S32DS-S32PLATFORM 和 S32DS-ARM 第三方(高级)插件 Eclipse IDE 使用和设置 Re: Is is possible for S32DS IDE to install Eclipse Marketplace 你好@noel_0319 在 S32DS 中安装 GitHub Copilot 在技术上是可行的,因为 IDE 是基于 Eclipse 的。不过,由于该功能依赖于 Eclipse,我们不提供官方支持,也不能保证其正常运行。 BR、VaneB Re: Is is possible for S32DS IDE to install Eclipse Marketplace 没关系,我只是想确保恩智浦没有禁止第三方插件的官方限制,否则我的努力都是白费。
記事全体を表示
CIFAR10 TFLM快速搭建指南 目录 一、概述 二、环境准备   2.1 虚拟环境   2.2 使用Google Colab 三、核心步骤   3.1 CIFAR10数据集   3.2 模型创建   3.3 模型训练   3.4 模型转换   3.5 推理验证   3.6 benchmark性能   3.7 完整实现   3.7 简化版本(Colab) 四、TFLite Micro部署 五、快速验证 六、应用示例 七、结论 八、参考 Spoiler (Highlight to read) more details, please see the attachment. more details, please see the attachment. 一、概述 CIFAR-10: 多伦多大学Alex Krizhevsky CIFAR-10公开数据集,也是计算机视觉领域最经典、最常用的入门级基准数据集之一,包含10个类别的6万张32x32彩色图像(5万训练,1万测试),例如飞机、汽车、鸟、猫等。 tflm_cifar10:演示了如何在恩智浦的微控制器上使用TensorFlow Lite Micro框架,实时运行CIFAR-10图像分类模型。即将一个预先训练好的、针对CIFAR-10数据集的卷积神经网络模型部署到MCU上,让其具备了识别10类常见物体(飞机、汽车、鸟、猫等)的能力。 模型:一个轻量级CNN模型,包含3个卷积层、ReLU激活层、池化层和一个全连接层。 输入: 32x32像素的彩色图像。 输出:图像属于CIFAR-10中10个类别的概率。 本文档:提供针对CIFAR10数据集搭建的完整流程,从数据集、模型训练转换、部署推理的快速实现方案,可作为示例tflm_cifar10(推理为主)的前置补充,本文不涉及到端侧的部署与优化。  ... """ CIFAR10 快速训练、测试、部署与推理完整流程 """ import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # 减少TensorFlow日志 import tensorflow as tf import numpy as np import time import matplotlib.pyplot as plt print(f"TensorFlow版本: {tf.__version__}") print(f"NumPy版本: {np.__version__}") class CIFAR10QuickPipeline: def __init__(self): """初始化管道""" self.model = None self.tflite_model = None def load_data(self, sample_size=1000): """加载简化数据集""" print("\n1. 加载CIFAR10数据集...") (x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data() # 预处理 x_train = x_train.astype('float32') / 255.0 x_test = x_test.astype('float32') / 255.0 # 使用少量数据(快速训练) x_train_small = x_train[:sample_size] y_train_small = y_train[:sample_size] x_test_small = x_test[:200] y_test_small = y_test[:200] # 转换为独热编码 y_train_onehot = tf.keras.utils.to_categorical(y_train_small, 10) y_test_onehot = tf.keras.utils.to_categorical(y_test_small, 10) print(f"训练数据: {x_train_small.shape}") print(f"测试数据: {x_test_small.shape}") return (x_train_small, y_train_onehot), (x_test_small, y_test_onehot) def create_simple_model(self): """创建简化CNN模型""" print("\n2. 创建简单CNN模型...") model = tf.keras.Sequential([ # 输入层 tf.keras.layers.Input(shape=(32, 32, 3)), # 卷积层1 tf.keras.layers.Conv2D(8, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 卷积层2 tf.keras.layers.Conv2D(16, (3, 3), padding='same', activation='relu'), tf.keras.layers.MaxPooling2D((2, 2)), # 全连接层 tf.keras.layers.Flatten(), tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) model.compile( optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'] ) model.summary() self.model = model return model def train_model(self, x_train, y_train, x_test, y_test, epochs=10): """训练模型""" print("\n3. 训练模型...") # 回调函数:早停 callbacks = [ tf.keras.callbacks.EarlyStopping( monitor='val_loss', patience=3, restore_best_weights=True ) ] history = self.model.fit( x_train, y_train, epochs=epochs, batch_size=32, validation_data=(x_test, y_test), callbacks=callbacks, verbose=1 ) # 评估模型 test_loss, test_acc = self.model.evaluate(x_test, y_test, verbose=0) print(f"\n测试准确率: {test_acc:.4f}") return history def convert_to_tflite(self): """转换为TFLite格式""" print("\n4. 转换为TFLite格式...") # 转换为TFLite converter = tf.lite.TFLiteConverter.from_keras_model(self.model) # 优化配置 converter.optimizations = [tf.lite.Optimize.DEFAULT] converter.target_spec.supported_types = [tf.float32] # 转换 tflite_model = converter.convert() # 保存模型 with open('cifar10_model.tflite', 'wb') as f: f.write(tflite_model) # 保存为字节数组(用于嵌入式部署) self.save_as_c_array(tflite_model) self.tflite_model = tflite_model model_size = len(tflite_model) / 1024 print(f"模型大小: {model_size:.1f} KB") return tflite_model def save_as_c_array(self, tflite_model): """保存为C数组格式""" c_array = '// 自动生成的CIFAR10模型数组\n' c_array += '#include \n\n' c_array += 'const unsigned char cifar10_model_tflite[] = {\n' # 每行显示12个字节 for i in range(0, len(tflite_model), 12): line_bytes = tflite_model[i:i+12] c_array += ' ' + ', '.join(f'0x{b:02x}' for b in line_bytes) + ',\n' c_array += '};\n\n' c_array += f'const unsigned int cifar10_model_tflite_len = {len(tflite_model)};\n' with open('cifar10_model_array.h', 'w') as f: f.write(c_array) print("C数组已保存: cifar10_model_array.h") def test_tflite_inference(self, x_test, y_test, num_tests=10): """测试TFLite推理""" print(f"\n5. 测试TFLite推理 ({num_tests}个样本)...") if self.tflite_model is None: with open('cifar10_model.tflite', 'rb') as f: self.tflite_model = f.read() # 加载TFLite模型 interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() output_details = interpreter.get_output_details() # 类别名称 class_names = ['飞机', '汽车', '鸟', '猫', '鹿', '狗', '青蛙', '马', '船', '卡车'] correct = 0 times = [] for i in range(min(num_tests, len(x_test))): # 准备输入 input_data = x_test[i:i+1] # 推理 start_time = time.perf_counter() interpreter.set_tensor(input_details[0]['index'], input_data) interpreter.invoke() inference_time = time.perf_counter() - start_time times.append(inference_time) # 获取输出 output = interpreter.get_tensor(output_details[0]['index']) predicted_class = np.argmax(output[0]) actual_class = np.argmax(y_test[i]) # 检查是否正确 if predicted_class == actual_class: correct += 1 print(f"样本 {i+1}: 预测={class_names[predicted_class]:<5} " f"实际={class_names[actual_class]:<5} " f"时间={inference_time*1000:.1f}ms " f"{'✓' if predicted_class == actual_class else '✗'}") accuracy = correct / num_tests avg_time = np.mean(times) * 1000 print(f"\n推理统计:") print(f" 准确率: {accuracy:.1%} ({correct}/{num_tests})") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return accuracy, avg_time def benchmark_performance(self, x_test): """性能基准测试""" print("\n6. 性能基准测试...") interpreter = tf.lite.Interpreter(model_content=self.tflite_model) interpreter.allocate_tensors() input_details = interpreter.get_input_details() # 预热 test_input = x_test[0:1] for _ in range(10): interpreter.set_tensor(input_details[0]['index'], test_input) interpreter.invoke() # 基准测试 num_runs = 100 start_time = time.perf_counter() for _ in range(num_runs): interpreter.invoke() total_time = time.perf_counter() - start_time avg_time = total_time / num_runs * 1000 print(f"基准测试结果:") print(f" 总推理次数: {num_runs}") print(f" 总时间: {total_time*1000:.1f}ms") print(f" 平均推理时间: {avg_time:.1f}ms") print(f" 推理速度: {1000/avg_time:.0f} FPS") return avg_time def save_model_summary(self): """保存模型摘要""" summary = [] self.model.summary(print_fn=lambda x: summary.append(x)) with open('model_summary.txt', 'w') as f: f.write('\n'.join(summary)) f.write(f"\n\n模型信息:") f.write(f"\n参数数量: {self.model.count_params():,}") f.write(f"\n保存时间: {time.ctime()}") print("模型摘要已保存: model_summary.txt") def main(): """主函数""" print("=" * 60) print("CIFAR10 快速训练、测试、部署管道") print("=" * 60) # 创建管道 pipeline = CIFAR10QuickPipeline() # 1. 加载数据 (x_train, y_train), (x_test, y_test) = pipeline.load_data(sample_size=2000) # 2. 创建模型 pipeline.create_simple_model() # 3. 训练模型 history = pipeline.train_model(x_train, y_train, x_test, y_test, epochs=15) # 4. 保存模型摘要 pipeline.save_model_summary() # 5. 转换为TFLite pipeline.convert_to_tflite() # 6. 测试推理 pipeline.test_tflite_inference(x_test, y_test, num_tests=20) # 7. 性能测试 pipeline.benchmark_performance(x_test) print("\n" + "=" * 60) print("流程完成!生成的文件:") print(" 1. cifar10_model.tflite - TFLite模型") print(" 2. cifar10_model_array.h - C数组格式") print(" 3. model_summary.txt - 模型摘要") print("=" * 60) if __name__ == "__main__": main() ... 七、结论 本文旨在以常见图像分类场景(CIFAR10)为例,让读者快速了解从数据搭建、模型创建、训练、推理和验证的完整流程,可作为示例tflm_cifar10(端推理为主)的前置补充,本文不涉及到端侧部署与优化。
記事全体を表示
用于 RTD 的 S32K3xx NXP RTOS 7.0.0 队员们好 我看到SW32K3_S32M27x_RTD_R21-11_5.0.0_D2410 正式支持S32K3xx NXP RTOS 0.4.3 版本。 从那时起,更新的 RTD 版本(6.0.0 和 7.0.0)已经推出。 这些 RTD 版本与 NXP RTOS v0.4.3 兼容吗? 如果不是,我们什么时候可以期待与RTD 7.0.0正式兼容的新恩智浦实时操作系统版本? 谢谢! BR,丹尼尔 RTD 实时操作系统 Re: S32K3xx NXP RTOS for RTD 7.0.0 队员们好 客户希望明天之前得到答复。 您能对此发表评论吗? 谢谢 Re: S32K3xx NXP RTOS for RTD 7.0.0 嗨,丹尼尔 恩智浦实时操作系统和K3xx设备的最后一个版本是在2025年5月发布的,它与RTD 6.0.0 RTM一致(该版本已经发布并由模板团队进行了测试)。从理论上讲,下一个版本计划于2026年11月发布,但由于PL走廊,该版本很可能会被取消。 适用于K3xx设备的恩智浦实时操作系统是演示版,仅用于启用,因此优先级较低。如果有客户提出要求,必须与 PL 讨论。
記事全体を表示
Lauterbach FCCU_Utility 插件 - S32K3xx Lauterbach FCCU_Utility 插件 - S32K3xx MPC57xx_FCCU_Utility_rev0.pdf 这个 Lauterbach 调试插件允许用户直接从调试器界面使用 FCCU 配置。这将加快开发速度,并且无需每次更改 FCCU 配置时重新编译和编程项目。 @Smartling Language Service 所提供的文档描述了如何使用 Lauterbach FCCU(故障收集和控制单元)外围扩展功能用于 S32K3xx 设备。期望用户对 FCCU 机制有深入了解,以便有效使用此扩展。 在这种情况下,这个调试器插件在多种使用场景中都可能非常有价值,例如 FA 或开发过程中的调试。 顺祝商祺! Peter
記事全体を表示
i.MX6DL PCIe x1 Gen1 链路训练失败 我们使用的是运行内核 5.10.235 的 i.MX6DL,出现了 PCIe Gen1 链路训练问题。日志显示,链接训练从未完成--链接在不断地重新训练。Debug0 寄存器显示链路不稳定,表明某些东西正在触发信号再训练。 观察到的 LTSSM 过渡: L0 → S_POLL_CONFIG → S_RCVRY_RCVRCFG → S_CFG_LINKWD_START → S_POLL_CONFIG 我们还注意到,尽管 pcii-imx6.c 和 pcii-imx6.c 寄存器的 LnkCap 寄存器值(每个电源周期)都会发生变化,但 LnkCap 寄存器的值并没有改变。和 pcie-designware.c为 Gen1 明确配置链路。还有什么可能会修改这个寄存器? 示例: 情况 1:0x1ffc07c = 值 0x0011cc12 LnkCap:端口 #0,速度 5GT/s,宽度 x1,ASPM L0s/L1,退出延迟 L0s<1us,L1<8us LnkCtl2:目标链接速度 2.5GT/s 情况 2:0x1ffc07c = 值 0x00100001 LnkCap:端口 #0,速度 2.5GT/s,宽度 x1,ASPM L0s/L1,退出延迟 L0s<1us,L1 无限制 LnkCtl2:目标链接速度 2.5GT/s 此外,禁用加扰器似乎能稳定链路: devmem2 0x1ffc710 w 0x00010122 查找以下信息: 1.最初达到 L0 后会触发信号链路再训练什么? 2。还有哪些硬件/软件部分可能会修改 LNKCap? 详情请见附件。 Re: i.MX6DL PCIe x1 Gen1 Link Training Failure 你好 1。关于达到 L0 状态后可能触发链路重新训练的因素: -PCIe 通道上的信号完整性问题可能导致链路不稳定 -电源波动或噪声影响 PCIe PHY -时钟抖动或 PCIe 参考时钟不稳定-与 PCIe 走线阻抗或长度匹配 相关的硬件设计问题 -可能引发不必要的重新训练的软件/驱动程序错误 2. 对于波动的 LnkCap 寄存器值: -寄存器可以通过硬件初始化序列和软件驱动程序进行修改 -在 i.MX6 PCIe 实现中,都是 pci-imx6.c和 pcie-designware.c尝试配置链路参数 -链路能力协商在训练期间进行,值可能会根据终端设备报告的内容进行调整。 您观察到禁用加扰器会稳定链路 (devmem2 0x1ffc710 w 0x00010122),这表明存在潜在的信号完整性或时钟问题。这与之前通过硬件调整解决 i.MX6 平台 PCIe 链路稳定性问题的情况一致。 我建议查阅 i.MX 6Dual/6Quad 和 i.MX 6Solo/6DualLite " 的应用笔记 AN4784 " PCIe 认证指南,其中包含专门针对 i.MX6DL 平台的详细PCIe SERDES 设置信息。本文档提供全面的 PCIe 认证指导,有助于解决间歇性链路培训故障。 对于特定的持续再训练问题,请考虑: -验证 PCIe 参考时钟信号质量和抖动 -检查 PCB 设计中的走线长度是否匹配-确认 PCIe 通道上的端接和阻抗正确 -检查负载条件 下的电力轨道 稳定性您看到的 LNKCap 寄存器修改可能与初始化序列期间的硬件级寄存器访问有关,可能受到 PHY 校准变化的影响。 此致 Re: i.MX6DL PCIe x1 Gen1 Link Training Failure 再补充一些细节。 根据下面的观察结果,禁用加扰器时 Gen1 链路是稳定的。有没有办法强制主机只进行第一代训练,而不尝试第二代? * LnkCap is 5GT/s root# lspci -s 00:00.0 -vv |grep LnkCap LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 root# devmem2 0x1ffc07c /dev/mem opened. Memory mapped at address 0xb6f5c000. Read at address 0x01FFC07C (0xb6f5c07c): 0x0011CC12 <<< gen2 root# ltssm_debug.sh |grep curr LTSSM current state | 0x7 | S_CFG_LINKWD_START LTSSM current state | 0x11 | S_L0 LTSSM current state | 0x7 | S_CFG_LINKWD_START LTSSM current state | 0xf | S_RCVRY_RCVRCFG * Setting Lnkcap to gen1 but value is getting overwritten root# devmem2 0x1ffc07c w 0x00100011 root# devmem2 0x1ffc07c /dev/mem opened. Memory mapped at address 0xb6fb1000. Read at address 0x01FFC07C (0xb6fb107c): 0x0011CC12 root# ltssm_debug.sh |grep curr LTSSM current state | 0x7 | S_CFG_LINKWD_START LTSSM current state | 0xf | S_RCVRY_RCVRCFG LTSSM current state | 0x7 | S_CFG_LINKWD_START * Disable scrambler root# devmem2 0x1ffc710 w 0x00010122 root# devmem2 0x1ffc710 /dev/mem opened. Memory mapped at address 0xb6f66000. Read at address 0x01FFC710 (0xb6f66710): 0x00010122 * LnkCap was set to Gen1 again, and the value remains stable. root# devmem2 0x1ffc07c w 0x00100011 root# devmem2 0x1ffc07c /dev/mem opened. Memory mapped at address 0xb6f0a000. Read at address 0x01FFC07C (0xb6f0a07c): 0x00100011 * Gen1 changes reflected here root# lspci -s 00:00.0 -vv |grep LnkCap LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM not supported root:~# ltssm_debug.sh |grep curr LTSSM current state | 0x11 | S_L0 LTSSM current state | 0x11 | S_L0 Link stable. 谢谢! Re: i.MX6DL PCIe x1 Gen1 Link Training Failure 你好 感谢您的指点。 但是,如果我们强制将链路速度设为 Gen1,那么在什么情况下,硬件仍能将链路能力宣传为 Gen2 并启用ASPM 相关选项? 例如,我们看到 LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <8us 我们还在训练序列中观察到5 GT/s和自主变化 TS1。 TS1/TS2 日志附后。 谢谢!
記事全体を表示
错误:设备是安全的。清除至不安全状态 你好,团队、 我正在使用 A12323 文档测试 S32K144 上的 A/B 分区。 首先,我将 S32K144_Memory_Partition 项目闪存到 RAM 中。 然后,我将 S32K144_FOTA_Gateway_example 闪存到 Flash 中。 在同一个板上,我尝试刷新 CAN 应用程序。第一次就成功了。 但是,当我再次尝试刷新同一个应用程序时,它失败了,错误是:“设备是安全的。擦除到不安全的地方。” 现在我无法闪烁任何东西。 谢谢。 Re: error: Device is secure. Erase to unsecure 你好@纳维娜 正如我在前一个主题中所写的那样: 您有读取 MDM-AP 的 Segger J-Link 探头或劳特巴赫调试器吗?遗憾的是,Pemicro 无法做到这一点。 在极少数情况下,设备可以被锁定。请查看此主题: https://community.nxp.com/t5/S32K/Unbricking-S32K146/m-p/937227 要确认这一点,有必要阅读 MDM-AP。
記事全体を表示
使用 testpmd 的 DPDK LX2162A SoM 全部 TX 0 你好 我们目前正在开发一款由 SolidRun(ClearFog LX2162A LX2-Lite 开发平台)开发的基于 LX2162A SOM 的板,最终目标是让 Open vSwitch 与 DPDK 一起运行。软件方面,我们使用的是厂家提供的基于 Ubuntu 22.04(内核 5.15)或 Ubuntu 24.04(内核 6.6)的镜像。我们使用 nxp-qoriq/dpdk 编译了正确的内核版本。我们使用提供的 dynamic_dpl.sh 脚本使用该板提供的两个 25G 接口创建了一个 DPRC(我们还尝试了两个 10G 端口和 1G 端口,它们都有如下所述的相同问题)。 我们想使用 dpdk-testpmd 测试 DPDK 下的转发是否有效。我们用同一根电缆连接了两个 25G 端口,使它们直接相连。我们使用该命令进行了测试: dpdk-testpmd -l 0-3 -n 1 -- --portmask 0x3 --nb-cores=1 --txq=1 --rxq=1 --tx-first --auto-start 我们在装有英特尔网卡的 x86 系统上测试了相同的设置,使用相同的命令,我们看到数据包被正确转发。 然后,我们还尝试使用带有 dpni-dpni 参数的 dynamic_dpl.sh 脚本来创建两个直接连接的 dpni 对象,而不使用任何 dpmacs,但结果仍然一样。在尝试用 OVS 配置此设置时,我们无法与测试系统建立任何链接。使用带有内核驱动程序的 OVS 时,我们可以成功配置桥接器,但速度上限大约为 5 GBit/s 如果您能就此事提供任何指导,我们将不胜感激。 Re: DPDK LX2162A SoM all TX 0 with testpmd 您在同一板上背靠背连接 25G 端口。因此,testpmd 应使用 "先发送 "或 "仅发送 "模式生成流量。 PFA 附带日志;此场景在 LX2160ARDB 板上正常运行,没有任何问题。 Re: DPDK LX2162A SoM all TX 0 with testpmd 在 DPDK 环境中,执行" dpdk-testpmd -c 0xf -n 1 -- -i --portmask 0x3 --forward-mode=io", 在 testpmd 提示符下,请键入命令"show port info all" 查看以太网端口的链路状态。 testpmd> show port info all
記事全体を表示
供客户端写入 iMX8MP 的自由 OTP 寄存器 你好 , 我 需要 能 写 的 OTP 寄存器 阅读 主 板 IMX8MP 的 PCBA 修订版 。 例如,我需要在寄存器 XX 中写一个数字 1、3 或 5,具体取决于生产线上板的版本。 并将其读入 uboot/kernel 以使用相应的 DTS 我是否正确理解我可以将通用熔丝寄存器 #9 用于我的目的?   i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Free OTP registers for writing by client to iMX8MP 您好, 是的,你可以使用通用熔丝来实现你的目的。 此致 哈维
記事全体を表示