Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
i.MX93 - 1PPS入力とPTP 目標: GPS レシーバからの Pulse-Per-Second (PPS) 信号と GPRMC ログを使用して、ENET_QoS イーサネット コントローラ内で PTP 時間の同期を検証する ハードウェア: i.MX 93 ビルドルート: 2025.11.1 Linux: 6.12.16 Linuxptp : 4.4 デバイスツリーオーバーレイの変更: eqos のステータスを「無効」から「正常」に変更します usdhc2 pinctrl-* エントリから pinctrl_usdhc2_gpio および pinctrl_usdhc2_gpio_sleep エントリを削除します。 pinctrl_eqos と pinctrl_eqos_sleep に「MX93_PAD_SD2_CD_B__ENET_QOS_1588_EVENT0_IN 0x31E」エントリを追加します。 usdhc2 cd-gpiosエントリを削除し、broken-cdに置き換えます pinctrl_usdhc2_gpio ノードと pinctrl_usdhc2_gpio_sleep ノードを削除します。  ターゲット上のソフトウェアの場所: eMMCからの起動 LinuxカーネルとptpアプリをubootingしてSDカードから実行する  Linux PTPソフトウェアを実行中: ptp4l -E4H -i eth1 ts2phc -c /dev/ptp1 -s nmea --ts2phc.nmea_remote_host10.128.240.54 --ts2phc.nmea_remote_port3001 --ts2phc.ピンインデックス0 -l 7 -m PPS入力: 現在、GPS レシーバからの PPS 信号を受け入れるように FRDM i.MX 93 ボードに変更を加える前に、あらゆるイベントのタイムスタンプを検証しようとしています。これらのイベントを生成するために、SD カード ソケットの機械式スイッチの脚の間に絶縁体を挿入しています。SD2_nCD に接続された IO ピンを GPIO 入力として手動で設定し、このアクションによってピンの入力電圧が変化することを確認しました。ハードウェアによるイベント情報のタイムスタンプは、特定の周期性に依存すべきではないと私は想定しています。 テスト結果: ts2phcはGPRMCログを受信していますが、ログにはポーリングで常にゼロイベント情報が返されることが示されています。 devmem プログラムを使用したスクリプト経由でレジスタを調べると、次のようになります。 SW_MUX_CTL_PAD_SD2_CD_B 0x00000001 SW_PAD_CTL_PAD_SD2_CD_B 0x0000031E MAC_SYSTEM_TIME_SECONDS 0x69AB35B0 MAC_SYSTEM_TIME_NANOSECONDS 0x10642013 MAC_TIMESTAMP_STATUS 0x00000000 MAC_補助制御 0x00000010 MAC_AUXILIARY_TIMESTAMP_NANOSECONDS 0x00000000 MAC_AUXILIARY_TIMESTAMP_SECONDS 0x00000000 システム時間レジスタが適切に時間をカウントしていることがわかります 補助タイムスタンプ レジスタにはゼロ以外の値が表示されることはありません。リファレンス マニュアルでは、FIFO が空のときには常にゼロが読み取られるのか、それとも最新のタイムスタンプが返されるのかは明確ではありません。 SW_MUX_CTL_PAD_SD2_CD_B レジスタの SION ビットを 0 と 1 の両方に設定してこれを試しましたが、結果に違いはありませんでした。 pin_index マッピングが予想どおりでなかった場合に備えて、MAC_AUXILIARY_CONTROL レジスタの 4 つの ATSEN ビットをすべて設定してみましたが、結果に違いはありませんでした。 i.MX 93 アプリケーションプロセッサリファレンスマニュアル、Rev. 6、2025-07-01 を読んだときに生じた追加の質問: 第 43 章 TSN 対応イーサネット コントローラ (ENET_QoS)、セクション 43.5、表 417 には、2 つの異なるイベント入力 1588_EVENT_AUX_IN と 1588_EVENT_IN がリストされています。これら 2 つの信号はどの外部ピンまたは内部デバイス ポートに接続されますか?1588_EVENT_IN ポートは ENET_QoS 内で何に接続しますか?1588_EVENT_AUX_INはptp_aux_trig_i[0]に接続され、ATSEN0ビットによって制御されていると推測します。(これはカーネルと ts2phc が期待していることでもあるようです。)それは正しいですか? 第43章、セクション43.5、表417には、1つのイベント出力1588_EVENT_OUTがリストされています。この信号はどの外部ピンまたは内部デバイス ポートに接続されますか?1588_EVENT_OUT ポートは ENET_QoS 内で何に接続しますか?PPS 出力の 1 つに関連付けられていますか? 第 43 章では、タイムスタンプをトリガーするために ptp_aux_trig_i 入力のどのエッジ (立ち上がり/立ち下がり/両方) が使用されるかが指定されていないようです。 Re: i.MX93 - 1PPS input and PTP こんにちは、 NXP Semiconductors製品にご興味をお持ちいただきありがとうございます。 AUX_IN 信号は、現在の時刻 (この時刻は、どのアプリケーションでもタイムスタンプ値として使用されます) をタイムスタンプ FIFO にラッチすることをトリガーするために使用されます (以前のトリガー イベントから複数のタイムスタンプ値がある場合があります)。 EVENT_IN はメディア クロック生成および回復ブロックへの入力であり、次のトリガーに使用されます。 アプリケーションから読み取られたターゲットプレゼンテーション時間のキャプチャは、リカバリモードが有効になっている場合は MAC_PPSn_Target_Time_Seconds に結果を生成します。 生成モードが有効になっている場合、サンプリングされたトリガーで現在のプレゼンテーション時間をキャプチャします。 1588_EVENT_OUT は、プロセッサによって PPS 出力を駆動するために使用されます。 よろしくお願いします。 Re: i.MX93 - 1PPS input and PTP AUX_IN という用語を使用する場合、それは表 417 の 1588_EVENT_AUX_IN という用語と同じですか? もしそうなら、どの特定の ATSEN* ビットにマップされますか? AUX_IN (1588_EVENT_AUX_IN) は、SW_MUX_CTL_PAD_SD2_CD_B の ENET_QOS_1588_EVENT0_IN モードに接続しますか? Re: i.MX93 - 1PPS input and PTP こんにちは@Kevin_M はい、1588_EVENTx_AUX_IN です。次のフィールドを確認してください。これが AUX の使用法です。 PTGE プレゼンテーション時間生成の有効化 このビットが設定されると、プレゼンテーション時間生成が有効になります。 0 - プレゼンテーション時間生成が無効 1 - プレゼンテーション時間生成が有効 ... MAC_PPS0_ターゲット時間秒 PPS ターゲット時間秒レジスタ このフィールドには、時間を秒単位で格納します。 PPSターゲットタイム秒レジスタ このフィールドには時間が秒単位で保存されます。タイムスタンプ値が両方のターゲット タイムスタンプ レジスタと一致するかそれを超えると、MAC は PPS 信号出力を開始または停止し、MAC_PPS_CONTROL レジスタの対応する PPS 出力に対して選択されたターゲット タイム モードに基づいて割り込み (有効な場合) を生成します。 ... 43.7.9.1 メディアクロック生成のプログラミングガイドライン 1. PPSインスタンスをメディアクロック生成モードに設定するには、適切なプレゼンテーションタイムコントロール(サポートされている生成モード「1001-1011」)をMAC_PPS_CONTROLレジスタのPPSCMD(0番目のインスタンスの場合)/PPSCMD#i(1、2、3番目のインスタンスの場合)にプログラムします。 2. 選択されたPPSインスタンスに基づいて、アプリケーションは対応するmcg_pst_trig_i[#i]に適切なトリガー信号を駆動する必要があります。 ... 43.7.9.2 メディアクロックリカバリのプログラミングガイドライン 1. MAC_TIMESTAMP_CONTROL レジスタの PTGE フィールドを設定して、現在のプレゼンテーション時間 (CPT) カウンタを有効にします。システム時間の初期化値をプログラムすることに加えて、同等のプレゼンテーション時間の初期値で MAC_PRESN_TIME_UPDT レジスタを更新します。その後、MAC_TIMESTAMP_CONTROL レジスタの TSINIT フィールドが設定されます。 2. システム時間に使用される増分値は、現在のプレゼンテーション時間にも使用されます。これは、増分値がサブ秒およびサブナノ秒単位であるためです。 1.各ATSENはそれぞれのEVENTにマッピングされます 2. 正解です。ここでAUX_INを確認できます。https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8mp-pinfunc.h#L54 よろしくお願いいたします。 Re: i.MX93 - 1PPS input and PTP @JosephAtNXP私は PPS 出力を設定しようとしているわけではなく、IEEE 1722 と関係のあることもしようとしているわけではありません。ENET_QOS_1588_EVENT0_IN の状態が変化した瞬間にタイムスタンプを付けようとしています。 Re: i.MX93 - 1PPS input and PTP @JosephAtNXP さん、ENET_QoSで1588 PPSの入力がうまく機能しない理由について、まだ調査中でしょうか? Re: i.MX93 - 1PPS input and PTP @Kevin_Mこの問題の解決に何か進展はありましたか?私も同じ問題に直面しています。ENETインスタンスではPTPをPPS入力と同期させることはできますが、リファレンスマニュアルやドライバでEVENT0_INピンをENET_QOSで使用する方法が見つかりません。 Re: i.MX93 - 1PPS input and PTP ケビンさん、ありがとうございます。確かにそれが唯一の方法のようですが、stmmacドライバではまだ対応していないようなので、追加する必要がありますね。 Re: i.MX93 - 1PPS input and PTP NXPは、ENET_QoSのAUX TIMESTAMP機能がi.MX93チップの内部または外部のいずれにも接続されていないことを確認しました。 私は、1588_EVENT0_IN モードで SD2_CMD を介して PPS をルーティングし、MAC_PPS_CONTROL をプレゼンテーション時間制御オプション 0001 を使用するように設定して、PPS 信号の立ち上がりエッジでプレゼンテーション時間をキャプチャし、MAC_PPS0_TARGET_TIME_SECONDS でキャプチャされた時間を読み取ることに成功しました。まだ解決すべき細かい点はたくさんありますが、これは有望な解決策のように思えます。
記事全体を表示
DDR4 calibration issues on LS1046 custom board Good day! We are trying to bring up our custom LS1046-based board up and stucked with DDR4 calibration procedure. SPD data of the modules is red successfully, calibration process starts successfully too, but after that it fails with this reason(log from CodeWarrior 😞  ############################### Run 1 Result for: wrlvl_searcher  ###################################### Test result: [ ============================================================ Updated: WRLVL_CNTL = 0x8655F605, WRLVL_CNTL_2 = 0x00000000, WRLVL_CNTL_3 = 0x00000000, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F60A, WRLVL_CNTL_2 = 0x0B0B0C0F, WRLVL_CNTL_3 = 0x0F10110D, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F60A, WRLVL_CNTL_2 = 0x0B0B0C0F, WRLVL_CNTL_3 = 0x0F101115, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F60A, WRLVL_CNTL_2 = 0x0B0B0C0F, WRLVL_CNTL_3 = 0x0F10111D, SDRAM_CLK_CNTL = 0x02800000 Write Leveling start values are correct and require no further modification, but the test failed due to other issues. Most common failure causes: -incorrect values configured in DDR4 DQn_MAP registers -incorrect ODT values -incorrect driver strength selected -incorrect timing values selected for Timing Configuration 0 properties (TIMING_CFG_0 register) < > {{Write Leveling start values are correct and require no further modification, but the test failed due to other issues.}} Err. capture registers: 0xE20, 0xDEADBEEF 0xE24, 0xDEADBEEF 0xE28, 0x00000000 0xE40, 0x00000000 0xE44, 0x00000000 0xE48, 0x0000001D 0xE4C, 0x60FF2001 0xE50, 0x00001FC0 0xE54, 0x00000000 0xE58, 0x00010000  ############################################ DQ mapping seems to be OK - we have 1:1 mapping from CPU to DDR slot, so we use DQ mappings from DDR module SPD without changing. What can be the problem?  Re: DDR4 calibration issues on LS1046 custom board Is there available RCW on the customer board? Has the ASLEEP led turned on and off? What's the frequency of the DDR clock? Thanks Re: DDR4 calibration issues on LS1046 custom board DDR calibration is performed using a hardcoded RCW. System clock - 100 MHz  DDR bus clock - 800 MHz, DDR data rate - 1600 mt/s Memory module - non-ECC. One interesting thing - from timer to time the 1 st stage of calibration (wrtlvl search) is successfully passed. For example: Test result: [ ================================================= Updated: WRLVL_CNTL = 0x8655F605, WRLVL_CNTL_2 = 0x00000000, WRLVL_CNTL_3 = 0x00000000, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F10110D, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F101115, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0F, WRLVL_CNTL_3 = 0x0F10111D, SDRAM_CLK_CNTL = 0x02800000 < > Err.capture registers: 0xE20, 0x00000000 0xE24, 0x00000000 0xE28,0x00000000 0xE40,0x00000000 0xE44,0x00000000 0xE48, 0x0000001D 0xE4C, 0x00000000 0xE50,0x00000000 0xE54,0x00000000 0xE58, 0x00010000 Dump: 0xF00,0x00000000 0xF04, 0x00000002 0xF08, 0x0000000F 0xF0C,0x14000C20 0xF10, 0x00000000 0xF14, 0x00000000 0xF18, 0x00000000 0xF1C, 0x00000000 0xF20, 0x00000000 0xF24, 0x2F003000 0xF28, 0x32003400 0xF2C, 0x39003B00 0xF30, 0x3C003E00 0xF34, 0x00005000 0xF38, 0x00000000 0xF3C, 0x00000000 0xF40, 0x00000000 0xF44, 0x00000000 0xF48, 0x00000001 0xF4C, 0xD4000000 0xF50, 0x13001500 0xF54, 0x17001900 0xF58, 0x1D001F00 0xF5C, 0x21002200 0xF60, 0x3A000000 0xF64, 0x00009000 0xF68, 0x00000020 0xF6C, 0x00000000 0xF70, 0x0070006F 0xF74, 0x00000000 0xF78, 0x00000000 0xF7C, 0x00000000 0xF80, 0x00000000 0xF84, 0x00000000 0xF88, 0x00000000 0xF8C, 0x00000000 0xF90, 0x00000000 0xF94, 0x80000000 0xF98, 0x00000000 0xF9C, 0x34043104 0xFA0, 0x35043304 0xFA4, 0x31043304 0xFA8, 0x2F043104 0xFAC, 0x04040000 0xFB0, 0x00000003 0xFB4, 0x1F1E1F21 0xFB8, 0x1E1C1F1D 0xFBC, 0x1F1B1D1E 0xFC0, 0x1C1B1C1C 0xFC4, 0x1F1E1F22 0xFC8, 0x1F1F2120 0xFCC, 0x1F1E1F20 0xFD0, 0x1C1D201F 0xFD4, 0x1F1B1B1E 0xFD8, 0x1F1D1E1C 0xFDC, 0x1F1F1D1F 0xFE0, 0x1F1D1E1C 0xFE4, 0x1F1C191A 0xFE8, 0x1C1D1C1A 0xFEC, 0x1F1E1C1E 0xFF0, 0x1E1F1E1A 0xFF4, 0x1F1F1F1F 0xFF8, 0x1F1F1F1F 0xFFC, 0x1F000000 Data: 0x00000009 0x0000000a 0x0000000b 0x0000000c 0x0000000f 0x0000000f 0x00000010 0x00000011 0x0000001d   Just after that I start calibration process again(without any changes in settings) and get a fail: ########## Result for: wrlvl_searcher ######  Test result: [ Updated: WRLVL_CNTL = 0x8655F605, WRLVL_CNTL_2 = 0x00000000, WRLVL_CNTL_3 = 0x00000000, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F10110D, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F101115, SDRAM_CLK_CNTL = 0x02800000 ============================================================ Updated: WRLVL_CNTL = 0x8655F609, WRLVL_CNTL_2 = 0x0A0B0C0E, WRLVL_CNTL_3 = 0x0F10111D, SDRAM_CLK_CNTL = 0x02800000 Write Leveling start values are correct and require no further modification, but the test failed due to other issues. Most common failure causes:   - incorrect values configured in DDR4 DQn_MAP registers  - incorrect ODT values  - incorrect driver strength selected  - incorrect timing values selected for Timing Configuration 0 properties (TIMING_CFG_0 register) < > {{Write Leveling start values are correct and require no further modification, but the test failed due to other issues.}} Err. capture registers: 0xE20, 0xDEADBEEF     0xE24, 0xDEADBEEF     0xE28, 0x00000000     0xE40, 0x00000000      0xE44, 0x00000000     0xE48, 0x0000001D     0xE4C, 0x60FF2001     0xE50, 0x00001FC0      0xE54, 0x00000000     0xE58, 0x00010000      Dump: 0xF00, 0x00000000     0xF04, 0x00000002     0xF08, 0x0000000E     0xF0C, 0x14000C20      0xF10, 0x00000000     0xF14, 0x00000000     0xF18, 0x00000000     0xF1C, 0x00000000      0xF20, 0x00000000     0xF24, 0x2F003100     0xF28, 0x33003400     0xF2C, 0x3A003A00      0xF30, 0x3C003E00     0xF34, 0x00005000     0xF38, 0x00000000     0xF3C, 0x00000000      0xF40, 0x00000000     0xF44, 0x00000000     0xF48, 0x00000001     0xF4C, 0xD4000000      0xF50, 0x13001500     0xF54, 0x17001900     0xF58, 0x1D001F00     0xF5C, 0x21002200      0xF60, 0x3A000000     0xF64, 0x00009000     0xF68, 0x00000020     0xF6C, 0x00000000      0xF70, 0x0070006F     0xF74, 0x00000000     0xF78, 0x00000000     0xF7C, 0x00000000      0xF80, 0x00000000     0xF84, 0x00000000     0xF88, 0x00000000     0xF8C, 0x00000000      0xF90, 0x00000000     0xF94, 0x80000000     0xF98, 0x00000000     0xF9C, 0x31022F02      0xFA0, 0x33023102     0xFA4, 0x30023102     0xFA8, 0x2E022F02     0xFAC, 0x02020000      0xFB0, 0x10000003     0xFB4, 0x46444650     0xFB8, 0x45445142     0xFBC, 0x51445052      0xFC0, 0x46454544     0xFC4, 0x45434651     0xFC8, 0x44455045     0xFCC, 0x46455051      0xFD0, 0x45455146     0xFD4, 0x52505052     0xFD8, 0x52505246     0xFDC, 0x50464546      0xFE0, 0x51465042     0xFE4, 0x53464650     0xFE8, 0x52515145     0xFEC, 0x50454546      0xFF0, 0x45505142     0xFF4, 0x46464646     0xFF8, 0x52515350     0xFFC, 0x00000000        Data:  0x00000009 0x0000000a 0x0000000b 0x0000000c 0x0000000e 0x0000000f 0x00000010 0x00000011 0x00000025  ######################################################## Also I' ve noticed that Lane 8 is probed during calibration process, despite to that fact that ddr module is non-ecc and ecc is disabled in project settings.   Re: DDR4 calibration issues on LS1046 custom board 1.The QCVS does not support hardcoded RCW official, valid RCW has to be presented in the RCW source flash or SD card. Would you kindly program the RCW into the flash first, and then do the QCVS DDR validation. 2.Run the command below in the CCS: (bin) 42 % delete all (bin) 43 % config cc cwtap (bin) 44 % show cc (bin) 45 % ccs::config_chain {ls1043a dap sap2} (bin) 46 % display ::ccs::get_config_chain (bin) 47 % ccs::reset_to_debug Send the logs to me. 3.would you kindly share the schematics and confirm the layout follow the AN5097, Hardware and Layout Design Considerations for DDR4 SDRAM Memory Interfaces Thanks Re: DDR4 calibration issues on LS1046 custom board The problem was solved by updating to new version of QCVS(4.27.0)
記事全体を表示
Flexera 许可加密狗 你好 我们使用 Flexera 许可证密钥使用 CodeWarrior 5.2 和 11.1 已经有一段时间了。本来一切正常,但突然之间,CodeWarrior Suites 似乎再也无法识别加密狗了。 lmtools 可以正确显示 FLEXid: 我的 license.dat 文件位于以下路径: C:\Program Files (x86)\Freescale\CWS12v5.2 C:\Freescale\CW MCU v11.1\MCU 在 CodeWarrior 5.2 中,我遇到了以下错误: 而在 11.1 版中,我得到的是 我使用的电脑运行的是 Windows 11。我们有一些使用 Windows 10 操作系统的旧笔记本电脑,在使用时没有任何问题。 如有任何帮助,我们将不胜感激! 谢谢! 扎克
記事全体を表示
How to enable LVDS panel at uboot on iMX8M PLUS Hi, NXP Support Specialist. We're currently working on enabling an LVDS display in L6.12.20 yocto for an IMX8MP custom board. The LVDS display works well in kernel but uboot doesn't display logo, so we follow this website (https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Add-i-MX8MP-LVDS-driver-in-uboot/ta-p/1434826) to add patch to uboot 2025.04 and still cannot display. Is there any advices or patch for L6.12.20 yocto bsp? The attachments below are current uboot log we get and dm tree. Graphics & Display Linux Re: How to enable LVDS panel at uboot on iMX8M PLUS Thank you for reply and suggestion, we can see the uboot logo now! Re: How to enable LVDS panel at uboot on iMX8M PLUS Hi @Mikw  Please make sure that you have defined the display timing in simple_panel.c if you are referring the 0001-L6.1.55-Add-i.MX8MP-LVDS-panel-demo.patch. The uboot log you provided shows that the ldb driver can't decode display timing. Best Regards, Zhiming
記事全体を表示
CAN UDSアップデートのためのS32K144統合ブートローダ構成 こんにちは、 私は、S32 Design Studio を使用して、S32K144 EVB 上の NXP Unified Bootloader ソース コードを操作しています。私の目的は、MCU にブートローダを統合し、UDS を使用して CAN 経由でアプリケーション ファームウェアを更新することです。ブートローダーをフラッシュする前に、ソース ファイルまたは構成を変更する必要があるかどうかを確認したいと思います。たとえば、CAN ID やボーレートなどの CAN パラメータを設定したり、S32K144 EVB の HAL/ドライバー移植ファイルを変更したりしますか?または、ブートローダーを何も変更せずにそのまま EVB にフラッシュして評価することはできますか? ブートローダをプログラミングした後、それが正しく実行されていることを確認し、CAN 経由でアプリケーションのフラッシュをテストしたいと思います。ブートローダ モードを強制する方法、ブートローダの実行を確認する方法 (UART ログ、CAN 応答、デバッガなど経由)、ブートローダがアプリケーションにジャンプする方法など、推奨される検証手順について説明していただけますか? さらに、正しいアプリケーション フラッシュ開始アドレス、リンカー設定、ベクター テーブルの場所、必要なスタートアップ コードの変更など、ブートローダーで動作するようにアプリケーション プロジェクトを構築する方法に関するガイダンスも必要です。最後に、S32K144 を使用した UDS フラッシュに使用される一般的な PC 側ツールと、CAN 経由で統合ブートローダをテストするための推奨 CAN インターフェース ハードウェアについて知りたいと思います。 Re: S32K144 Unified Bootloader Configuration for CAN UDS Update こんにちは@padmaja 、 残念ながら、コミュニティで共有されている統合ブートローダーは非公式のデモ版のみ提供されています。 現状のまま 保証もサポートもありません。現在、このデモをサポートするリソースがありません。ドキュメントを通じてご質問にお答えするよう努めますが、フォローアップが表示された場合は、代わりにサポート ページにお問い合わせください。 アプリケーションを MCU にフラッシュし、ECU-BUS 機能のテストを開始できます。CAN ID、ボーレートなどを変更する必要はありません。両方を参照できます 統合ブートローダ – ユーザーガイドとUDS ブートローダ実装ガイド。 Open Bus Toolを使用する前に、CANブートローダをMCUにダウンロードする必要があります。これは、S32DSを使ってプロジェクトをコンパイルすることで実行できます。また、コミュニティ投稿「 HOWTO: S32 Design Studioを使用してマイクロコントローラに個別のelf/srec/hexファイルをダウンロードする」に記載されているように、elf/binaryファイルをアップロードすることもできます。 Open Bus Toolを使用すると、CANバス経由でアプリケーションをダウンロードできます。PEAK CANバスインターフェースをサポートしています。APPプロジェクトは統合ブートローダパッケージに含まれています。 ツールで読み込む必要があるJSONファイルも存在します。このJSONファイルには、フラッシュドライバ(flash_api.bin)とAPPファームウェア(APPファームウェアのフォーマットはS19/hex/binary)に関する情報が含まれています。 よろしくお願いします、 ジュリアン
記事全体を表示
威【xins4698】老街腾龙公司注册游戏获取代码账号申请下载官网 威【xins4698】老街腾龙公司注册游戏获取代码账号申请下载官网 General graphics lpc2000 LPC3xxx LPCOpen Peripherals USB User Content 中国用户论坛
記事全体を表示
iMXRT1060 マイクロコントローラのマニュアルの一部の情報が不正確または不完全である可能性があります。 最近、i.MX RT1060 プロセッサ リファレンス マニュアル、Rev. 3、07/2021 の情報を考慮して、FlexPWM によって生成されたハードウェア トリガーを使用して取得シーケンスを実装するように ADC (iMXRT1062 - Teensy 4.1) をプログラミングしていました。 コミュニティによって確認され、マニュアルの次のバージョンで更新される可能性のある 2 つの問題に気づきました。 1 つ目は、XBAR1 でトリガーをルーティングするための構成を指します。マニュアルの 62 ページの表 4-5 - XBAR1 入力割り当てによると、トリガー信号 FlexPWM4_SM2_TRIG0 と FLEXPWM4_PWM2_OUT_TRIG1 は XBAR1_IN53 入力に関連付けられていますが、私のコードは XBAR1_IN54 入力を使用してのみ動作しました。コードはhttps://ernane-aac.github.io/Teensy-4.1--How-to-Configure-the-ADC-System/で入手できます。 2 番目の問題は、ユーザーがビット B2B = 0 を使用することを決定した場合の ADC_ETC_TRIG0_COUNTER レジスタのサンプル間隔構成に関係します。マニュアルでは、間隔遅延を次のように設定しています: Interval_delay = (SAMPLE_INTERVAL+1)*(PRE_DIVIDER+1)*ipg_clk。SO、アプリケーションのニーズを満たす SAMPLE_INTERVAL と PRE_DIVIDER のさまざまな組み合わせが存在します。このCASE、PRE_DIVIDER=0 を考慮すると、SAMPLE_INTERVAL は 271 以上である必要がありますが、コードは PRE_DIVIDER=0 では機能しませんでした。PRE_DIVIDER=1、SAMPLE_INTERVAL=136 に変更すると、コードは動作します。このコードは PRE_DIVIDER=1 以上の組み合わせでは機能しますが、PRE_DIVIDER=0 では機能しないことに注意してください。マニュアルに記載されているこれらのビットの機能に関する単なる説明を超えた何かがあるようです。コードはhttps://ernane-aac.github.io/Teensy-4.1--How-to-Configure-the-ADC-System/で紹介されているものと同じです。B2B (コメント) からサンプル間隔 (サンプル間隔と事前分割定義のコメント解除) に変更するだけです。 異なる結果になった場合はお知らせください。 Re: Some information in the iMXRT1060 microcontroller manual may be incorrect or incomplete. こんにちは@Ernane 、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 これら 2 つの質問をお寄せいただきありがとうございます。詳細を共有していただき感謝いたします。社内で確認させていただき、さらにご要望があればご連絡させていただきます。   よろしくお願いいたします。 メイリュー
記事全体を表示
PCIe:i.MX 95:分配多个 MSI IRQ 向量 您好, 我们在基于 i.MX95 的系统上使用 ATH12K Wi-Fi 模块,通过 PCIe2 实例连接。 在基于 linux-imx lf-6.12.y 的内核上,这个设置失败了,而在基于 lf-6.6.y 的内核上,它却能正常工作。 内核驱动程序成功请求并接收了 16 个 MSI 中断。但是,它随后无法启动 Wi-Fi 模块: [ 5.888139] ath12k_pci 0001:01:00.0:添加到 iommu 组 5 [ 5.888506] ath12k_pci 0001:01:00.0:BAR 0 [mem 0xa10000000-0xa101fffff 64bit]: assigned [ 5.888553] ath12k_pci 0001:01:00.0:启用设备 (0000-> 0002) [5.889315] ath12k_pci 0001:01:00.0:MSI 向量:16 [ 5.889334] ath12k_pci 0001:01:00.0:硬件名称: wcn7850 hw2.0 [ 6.475718] ath12k_pci 0001:01:00.0:chip_id 0x2 chip_family 0x4 board_id 0xff soc_id 0x40170200 [ 6.475743] ath12k_pci 0001:01:00.0:fw_version 0x110cffff fw_build_timestamp 2025-06-25 09:26 fw_build_id QC_IMAGE_VERSION_STRING=WLAN.HMT.1.1.c5-00302-QCAHMTSWPL_V1.0_V2.0_SILICONZ-1.115823.3 [ 7.647106] ath12k_pci 0001:01:00.0:无法接收控制响应完成,轮询... [8.675241] ath12k_pci 0001:01:00.0:服务连接超时 [ 8.681002] ath12k_pci 0001:01:00.0:连接 HTT 失败: -110 [ 8.692180] ath12k_pci 0001:01:00.0:未能启动核心:-110 在使用不同的 PCIe 设备的内核邮件列表 [1] 上进行了相关讨论,但尚未确定我们系统的有效配置。 最好的办法是什么? 感谢您的支持。 最大值 [1]https://lore.kernel.org/all/1819305.VLH7GnMWUR@steina-w/ Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors 你好 i,MX95 还处于早期阶段,某些配置还没有设计出来。然而,您的 i.MX95(带 ATH12K,通过 PCIe2)在下列情况下出现故障 lf-6.12.y 但可在 lf-6.6.y 上运行提示新内核的 PCIe 或 Wi-Fi 堆栈存在回归或驱动程序交互变化,可能涉及 ATH12K 的 PCIe 电源管理单元 (ASPM)、MSI 映射或 PCIe 特定 PCIe 端点异常,通常可通过内核补丁或在较新内核的启动参数中禁用 ASPM 来解决;检查 dmesg 中是否有 PCIe 错误,比较设备树,并在 NXP/Linux 内核邮件列表中查找相关提交。  以下是潜在原因和故障排除步骤的详细介绍: 1.检查内核日志 (dmesg) 查找 PCIe 错误: 在失败的 lf-6.12.y 内核的 dmesg 中搜索"PCI","MSI","ATH12K","Error","Firmware", 或"Timeout" 消息。 固件加载:验证是否正确加载了 ath12k 固件,以及初始化过程中是否出现任何错误。  2。PCIe 电源管理单元 (ASPM) 常见问题:较新的内核通常默认启用主动状态电源管理 (ASPM),这可能会导致嵌入式系统上的 ATH12K 等 PCIe 设备出现问题,尤其是较旧的固件/硬件。 尝试禁用 ASPM:将 p cie_aspm=off 添加到内核启动参数(例如,在 U-Boot 或 GRUB 中),然后再次测试。  3.Devicetree/DTB 的差异 比较 DTB: 生成并比较两个内核(.dtb 文件)中使用的设备树 Blob (DTB)。 查看 p ci2 的 PCIe 节点的变化,尤其是与中断、功率域或兼容性特性相关的变化。  4.内核驱动程序/固件回归 特定提交: lf-6.12.y 中的 ATH12K 驱动程序 ( ath12k)、 mac80211 或核心 PCIe/ARM 代码可能引入了一项破坏设置 的更改。 搜索邮件列表:查看 Linux 内核邮件列表 (LKML) 和恩智浦列表,了解相关补丁或有关 ath12k 、 i.MX95 和较新内核(6.12 以上)的讨论。  5.微星处理 中断重映射:在接收中断的同时,处理中断的方式(MSI-X 与 MSI、中断重映射)可能会发生微妙的变化。 检查 proc/interrupts 中的中断:查看不同内核的中断分布或计数是否不同。  6.固件 Blob 固件版本:确保为 ATH12K 使用正确的固件,并与较新内核的驱动程序兼容。有时,更新的驱动程序需要更新的固件。  总之,从 dmesg 开始,尝试禁用 ASPM;这些是导致嵌入式平台上较新内核出现 PCIe Wi-Fi 故障的最常见原因   此致 Re: PCIe: i.MX 95: Allocate Multiple MSI IRQ Vectors 虽然这些建议是调试问题的好指导,但我找不到解决方案,也就是说,并非所有的 MSI IRQ 向量都触发了驱动程序中的 IRQ 例程。 最后,我改变了 ath12k 驱动程序,只请求一个 MSI IRQ,从而解决了这个问题。 请注意,当前的 Linux 主版本不存在这个问题。 此致 最大值
記事全体を表示
i.MXRT1064 カスタム ボードをデバッグできません。 こんにちは、 デバッグ モードでコードを実行しようとすると、「アドレス "0x20d102" でブレークしましたが、デバッグ情報が利用できません」というメッセージが表示されます。 私は i.MXRT1064 カスタム ボードを使用し、LinkServer LPC-Link2 を使用してプログラミングしています。 このボードは以前は問題なく動作していましたが、突然このメッセージが表示されます。 リリースモードを試してみました。リリース コードを使用してボードを正常にフラッシュすることはできますが、その後プログラムが実行されないようです。シリアル端末からもディスプレイからも出力が表示されません。 また、Secure Provisioning Tool を使用してこのボードをプログラミングしようとしましたが、まだ動作しません。 この問題に関して、どこに焦点を当てるべきか、または何か手がかりとなるものについて、どなたか助言をいただけませんか? Re: Unable to debug i.MXRT1064 custom board. こんにちは、MayLiuさん。 ご返信ありがとうございます。 以前、ご提案いただいた設定を試しましたが、デバッグしようとすると IDEs でエラー (MI コマンドの実行に失敗しました: -target-download) が表示されました。参考までに、そのエラーのスナップショットを添付しました。 前のメッセージに戻って、現在のプログラムが実行されているアドレスをチェックしたところ、コードが ROM 領域 (アドレス 0x20E35A) にあることが示されていたことを付け加えておきます。SO、何らかの理由で、コードはアプリケーション コードに到達/起動できず、ROM 内で停止します。私の仮定は正しいでしょうか?そんなシナリオがあり得るのでしょうか? Re: Unable to debug i.MXRT1064 custom board. こんにちは@nxpsachveさん、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 1: 「アプリケーションを RAM にリンク」を選択して再度デバッグしてみてください。 アプリケーションが RAM から正常に実行できる場合は、ボードをシリアル ダウンローダー モードに設定し、セキュア プロビジョニング ツールを使用して UART1 または USB1 でボードをプログラムしてください。   アプリケーションの実行に失敗した場合は、オシロスコープを使用してボードの電源投入シーケンスを確認することをお勧めします。   お役に立てれば幸いです。 よろしくお願いいたします。 メイリュー Re: Unable to debug i.MXRT1064 custom board. こんにちは@nxpsachveさん、 MCUXpresso IDE は BOOT 構成を変更するとは思いません。NXP RT 上のブート動作は、ハードウェア ブート構成とブート モード ピンによって決まります。 シリアル ダウンローダー モードでターゲットを検出できるため、ROM がまだ正常に実行されていることがわかります。次のステップとして、次のことが考えられます。 チップ全体の消去を実行します。 ボードを内部ブートモードに切り替え、 デバッグのためにMCUXpresso IDEに再接続してみてください。 あるいは、MCUXpresso Secure Provisioning Tool を使用してアプリケーション イメージをプログラムすることもできます。 よろしくお願いいたします。 メイリュー Re: Unable to debug i.MXRT1064 custom board. こんにちは@nxpsachveさん、 最新情報をありがとうございます。 提供された情報に基づくと、CPU は現在、アプリケーション コードではなく、Boot ROM からのコードを実行している可能性があります。   BOOT CFG と BOOT モード ピンの設定をチェックして、デバイスがユーザー フラッシュから起動するように構成されていることを確認することをお勧めします。   ボードをシリアル ダウンローダー モードに設定し、J-Link 経由で接続して、デバッガーがターゲットを検出して通信できるかどうかを確認することもできます。   よろしくお願いいたします。 マトリウ Re: Unable to debug i.MXRT1064 custom board. こんにちは、MayLiuさん。 ご提案ありがとうございます。 MCUXpresso 内に、BOOT Conf を変更したり影響を与えたりするような設定や構成があるかどうかを確認したいのですが。IDE を除外するためです。 リンク サーバーは、シリアル ダウンロード モードのときにターゲットを検出できます。
記事全体を表示
LED code example does not work I was following this example on my s32k116: https://www.nxp.com/design/design-center/training/TIP-GET-TO-KNOW-THE-USER-FRIENDLY-MBDT-D0609 I did exactly what was shown in the video to get the LED working. My code builds too. But the LED wont turn on when I turn the potentiometer. I have attached a picture of the board for reference. Kindly guide me on where I might be going wrong Re: LED code example does not work Hello, Please note that the video you mentioned uses another evaluation kit (S32K144EVB) and the pins might not be the same for S32K116. Did you check the schematic to see the pins used by the potentiometer and the LED? As a recommendation, try to use the FreeMASTER tool to visualize the data on the board. You have to add data store memory blocks to save the data from the ADC and the state of the LED. Please set them to Volatile (in order to see them in FreeMASTER).  Another variant is to use the S32 Design Studio to directly debug the application, by placing breakpoints at specific lines and see the values read from the potentiometer. Best regards, Sorin Bancila  Re: LED code example does not work I tried doing that but when I try to start a session on freemaster, it cannot detect the board information. And I set the block state ("pot_adc") as Volatile which is why is shows up as a symbol when I go to the symbol table preview . Here is the screenshot. I am not sure why the board is not responding
記事全体を表示
EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 这个McuPGOOD_POLARITYControl配置项在该路径下找不到 Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 我不确定你是否可以下载,你可以尝试一下,如果不可以,请联系你的代理商或者FAE来获取评估权限。 https://www.nxp.com/design/design-center/software/automotive-software-and-tools/real-time-drivers-rtd:AUTOMOTIVE-RTD Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 在哪可以下载30.0.0吗?30.0.0能打开29.0.0的工程吗? Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 我看这个版本适配的EB Tresos版本应该是30.0.0,不是你所使用的版本。 Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 你这界面的风格不对阿,新版本的风格和之前旧的完全不一样的,你的界面还是老版本的风格。 Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh ok,不客气 Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 Hi@WeiCh 在下载界面有这样的提示,你要修改后缀 Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 好像有点问题,运行setup提示没有安装包,可以解压EBtresosStudio_EBtresosStudio.zip后直接打开应用,但应用界面还是旧的: Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 这是30.0.0的界面,好像还是没有这个配置项。 Re: EB更新RTD 7.0.0_QLP03时报告McuPGOOD_POLARITYControl配置错误 已经可以了,感谢!
記事全体を表示
用于非 PSA 操作的 MbedTLS3 和 CAAM 驱动程序 亲爱的各位 我们根据 mbedTLS 2 的弃用说明,更新了 mbedTLS3。我们发现恩智浦有两个 mbedTLS 存储库。 (ver 2.x deprecated) https://github.com/nxp-mcuxpresso/mbedtls (ver 3.x) https://github.com/NXP/nxp_mbedtls 我们通过阅读 sdk 使用的 yaml 文件找到了它 - 我们想知道,如果我们选择 ver 3x,而不使用 PSA API,是否会降低性能? 版本 2 通过 port/ksdk 提供了一组替代函数,可用于将加密操作委托给 CAAM 驱动程序,如 ksdk_mbedtls: https://github.com/nxp-mcuxpresso/mbedtls/blob/release/25.06.00/port/ksdk/ksdk_mbedtls.c 我们通过 fsl_caam 使用原始 CAAM 驱动程序进行 aes256 加密,我们想使用 mbedtls 来生成一对 ecdsa 密钥。我们的目标是拥有 mbedTLS3 并将所有可能的工作委托给 CAAM 硬件 ——如果有人知道应用笔记/端口已经完成,或者知道如何设计这样的指南,那就太好了。 感谢您的支持 🙂 Re: MbedTLS3 and CAAM driver for Non-PSA operations 还有一个小信息,我们正在使用 imxrt1176 并在其上安装了 FreeRTOS,我们是否正确读取了 mbedtls_ksdk.c 中的端口? 672 - 674 https://github.com/nxp-mcuxpresso/mbedtls/blob/release/25.06.00/port/ksdk/ksdk_mbedtls.c #endif /* MBEDTLS_THREADING_C */ if (ctx->mode == MBEDTLS_DES_ENCRYPT) { status = CAAM_DES_EncryptEcb(CAAM_INSTANCE,&s_caamHandle, input, output, 8, key); 这个端口使用阻塞操作吗?这样,其他 FreeRTOS 线程就会被阻断 - 我们发现在 mbedtls 的 freertos 示例中使用了这个端口,所以这对我们来说是个惊喜 Re: MbedTLS3 and CAAM driver for Non-PSA operations 您好, SDK 中似乎有 mbedtls 和 mebedtls 3.x,如下所示,还有 CAAM(加密加速和保障模块)示例。 https://mcuxpresso.nxp.com/mcuxsdk/latest/html/examples/driver_examples/caam/readme.html https://mcuxpresso.nxp.com/mcuxsdk/latest/html/examples/mbedtls3x_examples/index.html https://mcuxpresso.nxp.com/mcuxsdk/latest/html/examples/mbedtls_examples/index.html 是的,这是一个阻塞操作。
記事全体を表示
Hello NPU! Running a TFLite model on i.MX 9 The following is a guide on training a simple model in Pytorch and Tensorflow and deploying it on an application using the i.MX93 Ethos-65 Neural Processing Unit (NPU). After following this guide you will accomplish: Training a simple CNN on the MNIST dataset Convert the model to tflite, quantize it and compile it for the i.MX93 NPU (Ethos-65). Run a simple application where a digit can be drawn and identified by our model. Prerequisites To follow this guide you will need: Yocto image, GTKMM3 support is needed for the C++ example, for the python example a pre-built image can be used. An i.MX93 board Running Python example The application implementation is provided in both Python and C++, if using the python application, pre-built full image can be used instead, simply copy the python scripts to the target and execute as follows: # Running quantized example on the CPU ./run.py -m cnn_tf_quant.tflite # Running example on the Ethos NPU ./run.py -m cnn_tf_quant_vela.tflite -d /usr/lib/liblitert_ethosu_delegate.so Pre-built models are provided in the attachment however steps and scripts used to train and generate the models are also included (see below). Building image with GTKMM3 support (C++ example only) The GUI application used for demonstration has been written in GTKMM3 (C++ wrapper of the GTK library) therefore an image with GTKMM3 support is needed, luckily there is already a recipe we can use to easily integrate this into our yocto image. To build the image simply follow the instructions in the Yocto User's guide, as of the time of this writing the latest BSP is 6.12.49_2.2.0 so we will use that. Once you have setup all the requirements in your host and installed repo, you can setup your build enviroment as follows: repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml repo sync Depending on your target you can now setup your build directory, we will use wayland graphics with X11 support, and the iMX93 Freedom board as example: DISTRO=fsl-imx-xwayland MACHINE=imx93-11x11-lpddr4x-frdm source imx-setup-release.sh -b 93-frdm-xwayland Simply select the MACHINE configuration that matches your board. Now we're almost ready to start the build, we still need to add GTKMM3 support to our image, simply modify your local.conf file under conf/local.conf and add the following: IMAGE_INSTALL:append = " gtkmm3" Make sure the space in front of gtkmm3 is there to avoid issues on the build. Since the build is very resource intensive out of memory issues can arise during the build, to limit the amount of concurrent recipes attempted to build at once it is recommended to add the following as well: BB_NUMBER_THREADS="8" PARALLEL_MAKE="-j8" BB_PRESSURE_MAX_CPU ?= "50000" BB_PRESSURE_MAX_IO ?= "100000" BB_PRESSURE_MAX_MEMORY ?= "25000" After this your local.conf should look similar to this:  NOTE: Make sure to have plenty of storage available on your machine since the build requires upwards of 500GB to complete. The build can now start, if you want to build the GTKMM application from source it is required to have an available SDK create it as follows: bitbake imx-image-full -c populate_sdk And to create the image simply do: bitbake imx-image-full We require the full image since it contains all the Tensorflow Lite libraries and different examples. After the build completes the toolchain can be installed and the image flashed onto the board. To install the toolchain: ./tmp/deploy/sdk/fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93-11x11-lpddr4x-frdm-toolchain-6.12-walnascar.sh And afterwards every time you want to use the toolchain: source /opt/fsl-imx-xwayland/6.12-walnascar-full-gtkmm3/environment-setup-armv8a-poky-linux To flash the image to an SD card: zstdcat imx-image-full-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst | sudo dd of=/dev/mmcblk0 bs=1M conv=fsync And now you are ready to build the application, train some models and deploy them. Building the GTKMM3 application (C++) The source for the application can be found here, a prebuilt binary is also provided and attached here.  The application contains a drawing area where one can simply draw a digit with the mouse or touch display, and two buttons one to clear the drawing area and one to trigger the execution of the model and predict the digit. To build from scratch CMake is required, as well as a toolchain with support for GTKMM3 (see above), the following steps can be followed to build the project: sudo apt install cmake git clone https://github.com/ManRod2982/drawing_window_imx cd drawing_window_imx/drawing_window_cpp/ source /opt/fsl-imx-xwayland/6.12-walnascar-full-gtkmm3/environment-setup-armv8a-poky-linux cmake -B build -DCMAKE_TOOLCHAIN_FILE=$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake cmake --build build After this a binary called window will be created under the build directory, now it can be simply copied to the target SD card. If using linux the filesystem will be mounted, so you can simply copy the binary to the root directory: sudo cp build/window /media/user/root/root/ SCP can also be used if a connection to the board is already established: scp build/window root@192.168.x.x:/root And after this on the target the application can be started as follows: ./window -m model_path [optional] -d delegate_path [optional] -v Three parameters are accepted by the application: Path to the model: -m or --model_path [Optional] Path to the delegate if any: -d or --delegate_path, if none is provided the model will be attempted to be run on the CPU using the XNN delegate [Optional] Verbosity flag, if present the model will output more information Now we need a model to run. Training a simple CNN model Looking at the Machine Learning User's guide for this release. The following is the support for the different frameworks with respect to the available compute engines in each device: Tensorflow Lite and LiteRT (latest release of Tensorflow Lite and the only one moving forward) are the frameworks that are widely supported for most compute engines in the i.MX9 family, this guide will use Tensorflow lite since the example uses C++ and the current release of LiteRT only supports Python, however the interface and process it's pretty much the same. Setting up the environment The example repository contains different python scripts used to train the models and convert them to the tflite format. In order to follow the next steps a python3 installation is necessary. It is recommended to setup a virtual environment: python3 -m venv myenv source myenv/bin/activate pip install -r requirements.txt This will install all the required packages for both Tensorflow and Pytorch. Training a model with Tensorflow Tensorflow allows an straightforward path to quantize and convert the model to Tensorflow Lite, our Convolutional Neural Network (CNN) architecture looks as follows: model = tf.keras.models.Sequential([ tf.keras.layers.Input(batch_shape=(1, 28, 28, 1)), tf.keras.layers.Conv2D(16, 5, padding='same', activation='relu'), tf.keras.layers.Conv2D(32, 3, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.MaxPool2D(2, strides=(2,2)), tf.keras.layers.Flatten(), tf.keras.layers.Dense(100, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation='softmax') ]) We can train the model by running the script train_tf.py, it takes around 2min to train on a normal laptop and achieves 99.05% accuracy on the test dataset. For details on the framework please refer to the official Tensorflow documentation. After running the script we can visualize our model using the eIQ toolkit model visualizer or the Netron.app: The i.MX93 features an ARM Ethos-65 NPU which requires the weights, biases and inputs to be integers and our current model uses float32, therefore we need to quantize the model, to achieve this we can run tf2quant_tflite.py which will quantize the model and convert it to tflite: Which we can now see takes integer inputs and outputs, the weights and biases have also been quantized and we can easily see the difference in size of the files: The quantized model is 555kB whereas the float32 model is 2.2MB, since float32 requires 4 bytes to store each weight and bias, whereas the quantized model requires only one byte. You now have a model than can be used on the target, however as it is right now it will be run on the CPU using the XNN delegate, to run the model simply do: ./window -m cnn_tf_quant.tflite We can now compile our quantized model for the ARM Ethos NPU. The eIQ toolkit will be used. Open the model through the model tool: Navigate to the folder with your quantized model, cnn_tf_quant.tflite in this case and open it, you should be able to visualize the model, now we can click on the options menu to select convert: We select the i.MX93 converter, we will prompted to select the destination folder as well: After selecting the destination folder if all goes well the conversion finalizes and we should be able to visualize the model optimized to be run on the Ethos, any operations not supported by the NPU will be shown and carried out by the CPU, in the case of this simple example all the operations are carried out by the NPU: And we can now run the model on the target as follows: ./window -m cnn_tf_quant_vela.tflite -d /usr/lib/libethosu_delegate.so Training a model with Pytorch The repository contains a sample model using Convolutional Neural Networks to train on the MNIST data set, the model structure is as follows: NeuralNetwork( (cnn): Sequential( (0): Conv2d(1, 16, kernel_size=(5, 5), stride=(1, 1), padding=(2, 2)) (1): ReLU() (2): Conv2d(16, 32, kernel_size=(3, 3), stride=(1, 1)) (3): ReLU() (4): Dropout(p=0.2, inplace=False) (5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (6): Flatten(start_dim=1, end_dim=-1) (7): Linear(in_features=5408, out_features=100, bias=True) (8): ReLU() (9): Dropout(p=0.2, inplace=False) (10): Linear(in_features=100, out_features=10, bias=True) ) ) Pytorch models can be easily converted to Tensorflow lite (without quantization) to be run on the CPU, as well as the Open Neural Network Exchange  model (ONNX) however Executorch has recently been released, which is an inference model for pytorch models on embedded devices, support for it is currently in the works. The Pytorch model is defined under pytorch_model.py: #!/usr/bin/env python3 import torch from torch import nn # Define model class NeuralNetwork(nn.Module): def __init__(self): super().__init__() self.cnn = nn.Sequential( # Input 28x28x1, after padding 32x32x1, output 28x28x16 nn.Conv2d(in_channels=1, out_channels=16, kernel_size=5, padding=2), nn.ReLU(), # Input 28x28x16, output 26x26x32 nn.Conv2d(in_channels=16, out_channels=32, kernel_size=3), nn.ReLU(), nn.Dropout(p=0.2), # Input 26x26x32, output 13x13x32 nn.MaxPool2d(kernel_size=2, stride=2), nn.Flatten(), nn.Linear(13*13*32, 100), nn.ReLU(), nn.Dropout(p=0.2), nn.Linear(100, 10) ) def forward(self, x): logits = self.cnn(x) return logits  And the training is carried out by executing train_pytorch.py, the training achieves 99.3% accuracy on the test dataset and it takes around 7 min to complete on a normal laptop. For details on the framework itself and the training process refer to the official pytorch documentation. The pytorch model is then saved under pytorch_model.pth however pytorch does not save the graph information only the weights and biases, if we visualize the saved model on netron or the eIQ toolkit model visualizer we can observe the disconnected weight and biases: To better visualize our model we can simply convert it to the ONNX format by using the script pytorch2onnx.py, and now we can visualize the graph of our model on Neutron: NOTE: ONNX might also provide a way to quantize and convert the quantized model to tflite however in my tests of onnx-tf the tool seemed to be out of sync with the latest Tensorflow framewok, it was easier to create a similar model on Tensorflow and then quantize and export. We can now export our model to tflite, since the model is not quantized it will be run on the CPU (XNN delegate), to export it we run pytorch2tflite.py and we can now visualize the exported model: And we can run this model on the target as follows: ./window -m pytorch_cnn.tflite Deploying and running the model We now have an application where we can draw the digits, a model capable of detecting those digits, but our application needs to be able to execute that model and get the results, this is our next step. In order to be able to run the model on the target we need to: Load the model Create a tflite interpreter Load external delegates if any Allocate the tensors C++ example A minimal example is provided here, however it doesn't include the loading of the external delegate, which we will need in order to be able to run our model on the NPU. The required headers are the following: #include "tensorflow/lite/delegates/external/external_delegate.h" #include "tensorflow/lite/interpreter.h" #include "tensorflow/lite/interpreter_builder.h" #include "tensorflow/lite/kernels/register.h" #include "tensorflow/lite/model_builder.h" We can now load our model as follows using the TFLite API: std::unique_ptr<:flatbuffermodel> model = tflite::FlatBufferModel::BuildFromFile(model_path); An interpreter needs to be created now, for this an operation resolver is needed as well as our model: tflite::ops::builtin::BuiltinOpResolver resolver; std::unique_ptr<:interpreter> interpreter; tflite::InterpreterBuilder(*model, resolver)(&interpreter);  If a delegate is required we now need to create it and update our execution graph so that the interpreter knows to call the delegate on the supported operations: // Create external delegate option and pass the delegate library TfLiteExternalDelegateOptions external_delegate_options = TfLiteExternalDelegateOptionsDefault(delegate_path); // Create the External Delegate. This will load the delegate. TfLiteDelegate *external_delegate = TfLiteExternalDelegateCreate(&external_delegate_options); // Add External Delegate into TFLite Interpreter to automatically delegate nodes. if (interpreter->ModifyGraphWithDelegate(external_delegate) != kTfLiteOk) { std::cerr << "Failed to add delegate" << std::endl; } We can now allocate the tensors for our model: // Allocate tensors for the model if (interpreter->AllocateTensors() != kTfLiteOk) { std::cerr << "Failed to allocate tensors" << std::endl; } And at this point we are ready to run the inference using our model! The last step is to fill the input buffers with our data, invoke the interpreter and retrieve the results from the output buffer, in the following example with a float model: // Fill input buffers // Note: The buffer of the input tensor with index `i` of type T can // be accessed with `T* input = interpreter->typed_input_tensor (i);` float *input_tensor = interpreter->typed_input_tensor (0); std::memcpy(input_tensor, input.data(), input.size() * sizeof(float)); // Run inference if (interpreter->Invoke() != kTfLiteOk) { std::cerr << "Failed to invoke Interpreter!" << std::endl; return {}; } // Read output buffers // Note: The buffer of the output tensor with index `i` of type T can // be accessed with `T* output = interpreter->typed_output_tensor (i);` float *output_tensor = interpreter->typed_output_tensor (0); std::memcpy(output, output_tensor, output.size() * sizeof(float)); In our example application the interpreter creating and inference calling is wrapped in a class called NnModel, it's implementation can be seen on the repository but it can handle both the float models and int8 models without any modification. The class is instantiated inside the main routine and the inference is called every time the predict button is clicked. // Create model with parsed parameters NnModel nn(model_path, delegate_path, verbose); void Window::on_predict_clicked() { // Save screen to file std::cout << "Predict clicked!" << std::endl; // Call inference on NnModel depending on the type // the model expects int number; auto data_type = nn_.get_dtype(); switch (data_type) { case kTfLiteFloat32: { std::vector drawing = mouse_drawing.export_to_vector (28, 28, 255.0); std::vector output_vec_f = nn_.infer (drawing); number = get_max_index (output_vec_f); break; } case kTfLiteInt8: { std::vector drawing = mouse_drawing.export_to_vector (28, 28, 255.0); std::vector output_vec_int = nn_.infer (drawing); number = get_max_index (output_vec_int); break; } default: std::cerr << "Cannot handle input type: " << std::to_string(data_type) << std::endl; break; } std::string display = "You drew a: " + std::to_string(number); std::cout << display << std::endl; text_view.set_text(display); } Python example The process for creating an interpreter in Python is pretty similar, we still need to load a delegate if any is used and load the model as well as allocate the tensors. In this example LiteRT is used instead however the API remains the same, the only change needed is where the interpreted is imported from. The following minimal code can be used to load the model and any external delegates: from ai_edge_litert.interpreter import Interpreter # Create interpreter if delegate_path is not None: # attempt to load external delegate if provided (platform specific) try: from ai_edge_litert.interpreter import load_delegate delegate = load_delegate(delegate_path) self.interpreter = Interpreter(model_path=model_path, experimental_delegates=[delegate]) except Exception as e: raise RuntimeError(f"Failed to load delegate: {e}") else: self.interpreter = Interpreter(model_path=model_path) self.interpreter.allocate_tensors() We now have an interpreter we can use, we just need to fill the input tensors, invoke the interpreter and retrieve the output tensors with the results from our model: # Set input input_details = self.interpreter.get_input_details()[0] self.interpreter.set_tensor(input_details['index'], input_data) # Run inference self.interpreter.invoke() # Get results out_details = self.interpreter.get_output_details()[0] output_data = self.interpreter.get_tensor(out_details['index']) These steps are contained in a wrapper class under nn_model.py.  Benchmarking the models A prebuilt benchmarking tool is provided in the release it generates random inputs and measures the time it takes to run the inference on the model, the following are the results running the different models on the i.MX93: ./benchmaark_model --graph=model --num_threads=num_cores   CPU 1 core CPU 2 cores NPU pytorch_cnn.tflite 1559.61 us 1023.22 us NA cnn_tf_quant.tflite 585.37 us 379.69 us NA cnn_tf_quant_vela.tflite NA NA 221.84 us This is of course a toy example but it can be observed how running on the dedicated hardware provides a significant improvement on inference speed. The following is a guide on training a simple model in Pytorch and Tensorflow and deploying it on an application using the i.MX93 Ethos-65 Neural Processing Unit (NPU) and the i.MX95 eIQ Neutron NPU.
記事全体を表示
FS32K144HAT0MMHT用セーフティ周辺ドライバ(SPD)に関するお問い合わせ – 入手状況と無料ソース こんにちは、チームの皆さん FS32K144HAT0MMHT MCU を使用して新しい ISO 26262 (ASIL-B) プロジェクトを開始しており、セーフティ ペリフェラル ドライバ (SPD) がどのように動作するかを理解したいと考えています。 SPD パッケージはどこからダウンロードできますか? また、NXP ソフトウェア ライセンス & サポート ポータルでは、SW32K1-SPD-D のような特定のパッケージ名が必要ですか? SPD は無料ですか、または標準の RTD/SDKs ダウンロードに含まれていますか、それとも別のライセンスが必要ですか? 初期開発で SPD ドライバを研究できるサンプルや無料ソースはありますか? SPD または関連リソースの検索に関するガイダンスがあれば幸いです。 ご回答をお待ちしています。 Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 S32K1 – セーフティ ペリフェラル ドライバ (SPD)には、次のドライバのみが含まれています。 S32K1用拡張MCEMドライバ、バージョン1.0.1 https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-SPD-D&_gl=1*ao7djc*_ga*M... 。 ドライバは、無料で入手できる S32K1xx 標準ソフトウェア パッケージに含まれています。 S32K1/S32M24x リアルタイム・ドライバ、ASR R21-11、バージョン 2.0.0 P04 と互換性があります。 ただし、このドライバの機能例は提供されていません。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 この SPD は生産をサポートします。実稼働環境での使用に適しているかどうか確認していただけますか? Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 はい、そうです。リリースノートを参照してください。 このバージョンは RTM (製造準備完了) レベルです。 よろしくお願いいたします。 ダニエル Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは、 ご返答ありがとうございます。 最新の S32 Design Studio IDE をインストールし、リリースノートに記載されているように RTM (Ready to Manufacture) RTD SDK を使用しました。CAN サンプル プロジェクトは、提供された SDK と構成ツールを使用して直接生成されました。 ただし、この設定でも、次のビルド エラーが発生します。 致命的なエラー: Port_Ci_Port_Ip_Types.h:そのようなファイル、又はディレクトリはありません エラー発生場所: ボード/Port_Ci_Port_Ip_Cfg.c:56 #include "Port_Ci_Port_Ip_Types.h" Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc こんにちは@KAVINKUMAR7 、 これは互換性の問題のようです。 正しい S32DS IDE バージョンでは、互換性のある RTD と、SPD リリース ノートに指定されている SPD のみをインストールする必要があります。追加の RTD バージョンは存在しない必要があります。複数の RTD バージョンが必要な場合は、個別の IDEs をインストールすることをお勧めします。 追加の質問は SPD とは関係がなくなったため、さらにサポートが必要な場合は新しいThreadを作成してください。 よろしくお願いいたします。 ダニエル
記事全体を表示
S32K5 SAF 版本时间表 嗨,团队、 客户 PATAC 正在评估我们的 S32K5 SAF。他们知道,目前的 S32K5 SAF 只能提供非常有限的功能,无法满足他们的实际使用要求。因此,他们要求我们提供 S32K5 SAF 的详细时间表。 大概的版本发布时间。 下一个版本将支持哪些功能和模块? 谢谢& ,致以最崇高的敬意、 理查德 优先级:中等 SAFETY_SW 资料来源直接客户 Re: S32K5 SAF release schedule 你好@RaduBraga、 是否有任何更新? BR 理查德 Re: S32K5 SAF release schedule 嗨 @RichardLi,计划 在 2026 年 7 月版本 K5 PRC,我们的目标是涵盖所有 SAF 模块的全部功能。 亲切的问候, Radoslav Re: S32K5 SAF release schedule 嗨 @RichardLi, 我们今年 1 月没有任何 EAR 版本。 EAR 0.8.0 已于 2025 年 12 月发布,功能非常有限,直到 7 月 26 日 PRC 才有其他计划。 亲切的问候, Radoslav Re: S32K5 SAF release schedule 你好@RadoslavB、 感谢您的反馈。计划于今年1月底发布的SAF EAR版本有任何范围吗?它能涵盖大部分功能吗? BR 理查德
記事全体を表示
MCXW716Cの高温動作 こんにちは、 私は #mcxw71 を使用していますが、データシートによると動作温度範囲は–40 °C ~ +125 °Cです。無線と CAN PHY の両方を含むテストを実行しましたが、約 85 °C を超えると安定した動作を実現できません。マイクロコントローラは保護モードに入るか、またはその機能を制限しているようです。 また、SDKs API には、内部温度を NBU に送信する関数があることに気付きました。 私の質問は、NBU は温度調節を実行したり、適切なシステム動作を維持するために温度情報を必要とするのかということです。 より一般的には、MCXW716C が最大定格温度まで適切に動作することを保証するために必要な特定の手順 (構成、キャリブレーション、必要な API 呼び出しなど) はありますか? ご協力をよろしくお願いいたします。 開発ボード Re: MCXW716C operation at high temperature こんにちは。お元気でお過ごしでしょうか。 FRDM ボードとカスタム ボードのどちらを使用していますか?どのようなテストを実行し、どのような動作を観察しましたか? どの SDKs を参照しているのかも教えていただけますか?特定の例またはアプリケーションに取り組んでいますか? よろしくお願いします、 アナ・ソフィア。 Re: MCXW716C operation at high temperature こんにちは@sofiauruetaさん、 参照番号 #MCXW716CMFTAT のカスタム ボードを使用しています。私のテストと設定について説明します ワイヤレス アプリケーション用に、MCXW716CMFTAT を使用して PCB を設計しました。私はソフトウェアを作成し、「connectivity_test」というサンプル プログラムのロジックを使用して無線プロトコルを使用しました。 私は SDK SDK_2.X_MCXW716CxxxA バージョン 25.09.00 を使用しています。 2 つのボードが連携して動作しています。すべてのモジュールを実装しました。テストではヒートガンを使用し、80℃の温度を加えました。15 秒後、マイクロコントローラは動作を停止しました。ブロックされたようで、GPIO がロックされ、通信バスがデータの送信を停止しましたが、30 秒後、温度が下がると、マイクロコントローラは通常の動作に戻りました。 SO、私は、問題を理解するために温度を監視する機能について調査しました。SDK の fwk_platform_sensors ファイルから関数 PLATFORM_StartTemperatureMonitor() を使用しました。 私の目標は、マイクロコントローラがブロックされる正確な温度を知ることでしたが、驚いたことに、これで問題は解決しました。今では +120 °C でテストを実行でき、マイクロコントローラは完璧に動作します。問題がソフトウェア関連であるかどうかを確認するためにこの機能を削除してみましたが、確かに問題は再発しました。 CAN説明していただけますか?この機能を使用して温度を読み取ると、データがさまざまなコアに配布され、特定のパラメータが調整されますか? Re: MCXW716C operation at high temperature こんにちは、 この動作が FRDM ボードを使用した場合にも発生するかどうかを確認できますか?何も変更せずに connectivity_test の例を実行すると問題が発生しますか? また、PLATFORM_StartTemperatureMonitor 関数を呼び出した後は変化しますか? よろしくお願いいたします アナ・ソフィア。
記事全体を表示
K344 中心点対 PWM 中心点起動 ADC BCTU サンプリング https://community.nxp.com/t5/S32K-Knowledge-Base/RTD400-K344-Center-Aligned-PWM-Trigger-ADC-BCTU/ta-p/2034211に基づき、BCTU ウォーターマークをトリガーするのに 3 つの BCTU トリガー割り込みが必要な理由を知りたいです。割り込みを 1 回だけトリガーし、その後、割り込み内で PWM 周期の変更、ADC 値の読み取りなどを実行したいと考えています。EB MCAL 開発に基づいて、同じ機能を実現するための優れたソリューションやサンプルルーチンは何ですか? Re: K344中心对齐PWM中心点触发ADC BCTU采样 当社製品にご興味をお持ちいただき、また当社コミュニティに貢献していただき、ありがとうございます。 投稿に直接返信して、投稿の所有者からのフィードバックを得ることができます。 一方、単一の BCTU トリガーを使用した別のアプローチを参照することもできます。 S32M27x/S32K3 – eMIOS/BTCU/ADC/DMA – [RTD600] -> https://community.nxp.com/t5/S32M-Knowledge-Base/S32M27x-S32K3-eMIOS-BTCU-ADC-DMA-RTD600/ta-p/2155542 MCAL 実装については、ハードウェア抽象化レイヤーのADC から PWM の例を参照してください。 S32K3ページへ移動-> 設計リソース -> ソフトウェア -> S32K3リファレンスソフトウェア -> オートモーティブソフトウェア - S32K3 - ハードウェア抽象化レイヤー -> S32K3 HAL統合例 2025.07 次の ADC トリガーを実行します。 同時に、キャプチャされた ADC 値に応じてデューティ サイクルを更新します。 この情報が役に立つことを願います。 Re: K344中心对齐PWM中心点触发ADC BCTU采样 解決策をありがとうございます。複数のトリガー中断が発生する理由と、そのような中断を回避する方法を知りたいです。または、設定によってこの割り込みソースを無効にすることは可能ですか? Re: K344中心对齐PWM中心点触发ADC BCTU采样 こんにちは、 BCTU トリガー通知が有効になっている場合、BCTU が ADC をトリガーしたときに呼び出されます。例では、BCTU CL に 3 つの項目が含まれているため、ADC は入力 (eMIOS) トリガーごとに 3 回トリガーされます。 この通知を無効にするには、トリガー通知オプションに NULL を設定します。 BR、ペトル
記事全体を表示
How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hi, I have the i.MX 8M Mini LPD4-EVK up and running, and I would like to perform power consumption measurements on specific independent power rails, such as VDD_1V8 and NVCC_DRAM_1V1. I have located the corresponding PMIC outputs (BUCK8 and BUCK7) on the schematic, but I noticed that there are no onboard shunt resistors (sense resistors) for these lines. Could you please advise on the best method to measure the current (or power) for these rails? Thanks! Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Hello, In the case of i.MX8MM we do not have a board to do the power measurement in each power rail as occurs in other boards such as i.MX 8M Plus Evaluation Kit Enabling Power Measurement. If you need to measure this you need to design a new SOM board to include these shut resistors or maybe you could try to rework the board to add a shunt resistor in a trace. You can use the schematics of the mentioned board as reference to add the resistors and do the measurement. i.MX 8M Plus Power Measurement Board Design Files Best regards. Re: How to measure power consumption for individual power rails on the i.MX 8M Mini LPD4-EVK? Okay, thanks.
記事全体を表示
S32 Design Studio for ARM 2.2 – Windows/Linux アクティベーションコードメール こんにちは! 「S32 Design Studio for ARM 2.2 – Windows/Linux」をダウンロードして、アクティベーション コードをメールで受け取ろうとしています。 NXP の Web サイトで「S32 Design Studio for ARM 2.2 – Windows/Linux」の「ダウンロード」ボタンをクリックすると、NXP の「プロファイル」ページに移動し、ダウンロードが実行されません。 私はいつもの NXP アカウントにサインインし、手順を数十回実行しました。 お時間いただきありがとうございました! -リッチ S32K1 用 S32 SDK Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email こんにちは、ピーターさん。一度ダウンロードしましたが、アクティベーション コードを受け取っていません。 アクティベーション コードがメールで送信されていた場合、受信できませんでした。電子メール フィルターに問題があった可能性がありますが、現在は NXP の電子メールを問題なく受信しているようです。 アクティベーションコードを再送信してもらえますか?お時間をいただきありがとうございました! 心から、 リッチ・マレン Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email こんにちは、 SW チームと再度話をしたところ、ダウンロードは正常に完了し、アクティベーション キーも割り当てられているようだと言われました。 この問題はまだ有効ですか? よろしくお願いいたします。 ピーター Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email こんにちは、 わかりました、 お使いのマシンのアクティベーションコードは次のとおりです: A07C-4C9E-C3B9-A436 よろしくお願いいたします。 ピーター Re: S32 Design Studio for ARM 2.2 – Windows/Linux activation code email ありがとう、ピーター!コードを入手しました。ご協力いただきありがとうございます。
記事全体を表示
安装 MCUXpresso IDE 和 SDK(日文博客) 这篇文章怎么样? NXP 的微控制器软件开发环境MCUXpresso及其SDK均免费提供,任何人都可以轻松安装并立即开始运行示例代码。😃 这篇博客文章将一步一步地向您展示如何安装MCUXpresso IDE和 SDK。 * 在本文中,我们将使用FRDM-MCXA153作为示例板。 我们发布了一段视频,讲解安装步骤。点击此链接观看。   什么是MCUXpresso IDE? NXP 提供的通用微控制器的各种示例代码旨在MCUXpresso上运行,MCUXpresso 是 NXP 免费提供的软件开发环境。 MCUXpresso 有两个版本:“ MCUXpresso IDE (以下简称 IDE)”和“ MCUXpresso VisualStudio Code (以下简称 VSC)”。IDE 是一个集成了所有功能的应用程序。VSC 是 Microsoft Visual Studio Code 的一个插件。 在本博客中,我们将介绍如何安装 IDE 和 SDK 。 该集成开发环境可在 Windows、macOS 和 Linux 系统上运行,并且在所有操作系统上都可以使用相同的用户界面进行操作。 要尝试在 MCUXpresso 上运行的示例代码,您必须先安装 IDE,然后安装要运行该代码的微控制器/板(目标)的 SDK。 IDE代表集成开发环境,是一款集成开发环境应用程序。该应用程序包含用于编辑源代码的编辑器、编译器和链接器等工具链,以及将代码组织成项目并进行项目管理以及各种设置的软件。 SDK代表软件开发工具包,其中包含每个微控制器芯片所需的驱动程序代码和配置信息。您必须为每个要创建的微控制器芯片或电路板(目标)安装SDK 。 让我们一步一步地学习如何安装这些软件。 本文以 macOS 为例,但使用几乎相同的步骤也可以在 Windows 和 Linux 上进行安装。 登录 nxp.com 要执行以下步骤,您必须先登录nxp.com 。 如果您还没有 nxp.com 帐户,请先注册,然后再登录。 如何注册 MyNXP 账户 安装 MCUXpresso IDE 从MCUXpresso IDE 下载站点下载 IDE 安装程序。此下载需要您在 nxp.com 上注册用户,因此如果您尚未注册,请提前注册。 前往MCUXpresso IDE 下载网站,然后按下“下载”按钮。 页面将滚动并出现一个指向下载页面的链接按钮。点击此“下载”按钮。 点击 MCUXpresso IDE 链接。 使用条款将会显示。如果没有问题,请点击“我同意”按钮。 选择与您的操作系统匹配的安装程序,然后单击链接。 如使用Linux,下载安装程序时请选择文件名末尾带有“.deb.bin”扩展名的文件。如使用Windows,请下载文件名末尾带有“.exe”扩展名的文件。 使用macOS,文件名末尾的扩展名为“.pkg”,但有两种类型:如为M1或更高版本M系列(Arm)处理器的 Mac,请下载“MacOSX-aarch64”;如为配备英特尔CPU的 Mac,请下载“MacOSX-86-64”。 *如果版本号不同,请替换为版本号。 下载完成后,启动安装程序并按照说明完成安装。   安装 SDK   MCUXpresso IDE 启动和工作区 MCUXpresso IDE 安装完成后,启动 MCUXpresso IDE 。 在 macOS 系统中,启动后会询问您要将工作区设置在哪里(在教程视频的 2 分 49 秒左右)。工作区是指您进行工作的文件夹。 默认情况下,将在用户文件夹内的“文档”文件夹内创建一个新文件夹。 * 下图显示了默认设置示例。在本例中,用户名为“demo”,因此路径指定为“/Users/demo/...”。 您可以在用户文件夹内的任何位置创建工作区(文件夹)。在下面的示例中,在用户文件夹内创建了一个名为“mcux”的文件夹,并在该文件夹内创建了一个名为“project0”的工作区。 安装 SDK 启动应用程序后(启动并指定工作区后),将出现如下所示的欢迎屏幕。在此屏幕中,单击“下载并安装 SDK” 。 服务器查询一段时间后,显示界面将如下图所示。在这种默认显示状态下,屏幕的右侧和底部会被隐藏,因此您需要根据需要放大窗口或滚动屏幕。 扩大窗口尺寸以确保显示区域安全 在显示屏右上角的搜索框中输入您正在使用的电路板或微控制器的型号。 这里,我们将以FRDM-MCXA153为例,所以我们输入了“A153”。结果,FRDM-MCXA153 开发板显示为候选产品。 选择 FRDM-MCXA153 板后, “安装”按钮将高亮显示,点击即可。 安装过程中会弹出对话框。 安装完成后,您将返回欢迎界面。 点击标签页的关闭按钮即可关闭此显示。 这将是IDE的默认显示状态。 已安装的 SDK 显示在底部中央窗格的“已安装 SDK”选项卡中。 准备好! 现在你可以出发了! 在左上角的“项目资源管理器”中,您可以创建一个新项目,或者从 SDK、GitHub 或下载的项目导入并运行项目。 小知识:如需直接测试电路板的运行 SDK包含示例代码。 到目前为止,我们已经以 FRDM-MCXA153 为例安装了 SDK,所以我们将尝试一下其中包含的示例代码。 首先,使用 USB 数据线将开发板连接到计算机。对于 FRDM-MCXA153,请使用标有“MCU-Link”的 USB 接口(参见照片)。 在 IDE 的左上角窗格中,单击“项目资源管理器”选项卡中的“导入 SDK 示例...” 。 将显示已安装的 SDK,然后单击“下一步>” 。 将显示示例代码列表。 可以在“ driver_examples ”→“ gpio ”→“ gpio_led_output ”中找到闪烁 LED (= 闪烁 L)的示例,因此请按照如下所示的层次结构进行操作,选中相应的复选框,然后按“完成”按钮。 示例代码已导入。 点击蓝色小虫图标(开始调试项目) 。 此时将出现一个选择目标的对话框,请检查显示的电路板信息,然后按“确定”按钮。 代码编译完成后写入微控制器的闪存。然后代码暂停,准备运行。 点击由黄色正方形和绿色三角形组成的图标(继续),即可运行板上的代码。 这段示例代码交替向一个GPIO (通用输入/输出)引脚输出高电平和低电平。该引脚连接到一个红色 LED ,因此 LED会闪烁。 参考资料 教学视频:快来使用MCUXpresso IDE吧! 相关信息:为 VSC 和 SDK 安装 MCUXpresso(日文博客) 变更历史记录: 2025-05-07:第一版 2025-06-26:新增“登录 nxp.com”部分。 2025-10-28:链接更正 2025年11月10日:链接已更新 2025-11-14:添加了安装程序视频的链接/添加了参考资料部分。 2025年11月18日:在开篇图片和所用电路板上添加了注释。更改了视频链接图片。 2026-03-17:更正了“什么是 MCUXpresso IDE?”部分中的图表。 2026-04-05:添加了“启动 MCUXpresso IDE 和工作区”部分。  ========================= 我们目前无法回复此帖子“评论”部分的评论。 对于由此造成的不便,我们深表歉意。如有任何疑问,请参阅“ NXP技术问题-如何联系我们(日语博客) ”。 (如果您已经是恩智浦的分销商或与恩智浦有合作关系,您可以直接询问负责人。) MCUXpresso IDE 可免费用于 NXP MCX 系列微控制器的软件开发。 此外,我们还提供了可与各种 MCUXpresso IDE 配合使用的示例代码。接下来,我们将介绍 IDE 和 SDK 的安装步骤。 读完本文后,任何人都可以轻松安装开发环境和 SDK ,甚至可以运行示例代码! 通用微控制器 MCUXpresso MCUXpresso IDE MCX 日本博客
記事全体を表示