Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
フラッシュプログラムターゲットメモリアドレス フラッシュ プログラマーでは、フラッシュ アルゴリズムを見つけるためにターゲット メモリ アドレスを指定する必要があります。このアドレスは通常、フラッシュ アルゴリズムをメモリの先頭、または小さな SRAM メモリ スペースやプロセッサに配置するために 0 になります。PPC ターゲットの場合、例外ベクター (IVOR) テーブルは通常、同じ低メモリ領域に配置されます (スクリプト xx_init_SRAM.tcl に従って)。フラッシュ アルゴリズムは、ターゲット メモリ アドレスを 0 に指定するときに、例外ベクトルによるオーバーレイをどのように回避するのでしょうか。 T1024 プロセッサの IFC にコネクテッドされた NOR デバイスをフラッシュ プログラミングしています。時々、JTAG ログに「コアが応答していません」というエラーが表示され、フラッシュ プログラマーが「メモリ アドレスを読み取れません...」と表示して失敗します。私はシンプルな SRAM 接続を使用しており、T1024 の CPC は 256k です。なぜこのようなエラーが繰り返し発生するのかを理解しようとしています。現在、フラッシュ プログラム アルゴリズムがプロセッサのセットアップに干渉して例外などが発生しているのではないかと疑っていますが、さらに情報が必要です。エラー発生率はフラッシュプログラミング試行の約 50% です。 ここに何らかの助言やアドバイスがあれば感謝します。 よろしくお願いします。 Re: Flash program target memory address AN4948に従ってください。 CodeWarrior Power Architecture用フラッシュプログラマ よろしくお願いします。 Re: Flash program target memory address こんにちは。返信ありがとうございます。私はフラッシュ プログラマーのセットアップ プロセスに精通しています。上記の文書には私の質問に答えるものが何もありません。フラッシュ アルゴリズムと PPC 例外ベクトルの両方がアドレス 0 に固定されている場合、プログラミング中にそれらが互いに干渉しないようにするにはどうすればよいでしょうか。ありがとう Re: Flash program target memory address AN4948、3.1、図 3. ターゲット タスクの詳細、ターゲット RAM -> アドレスを変更しましたか? よろしくお願いします。
查看全文
[ABUSE] Post By: @JohnKlug / Board: imx-processors / Reported by: wsmjdwen wsmjdwen has reported the post Could not invoke dnf for external kernel module in Yocto kirkstone posted by @JohnKlug for the following reasons: Reason: Misleading or False information Details: https://whs6570.com/node/2090"> https://www.e123.hk/zh-hant/e-center/personal-wall/81576/933330"> https://www.danduo168.com/en/artworks/692/pharmacy-online-5"> https://www.albatrosplus.ru/pharmacy-online-9"> https://www.rapidservice.com.ec/es/content/1-carga-pesada-14482"> https://okwiki.ru/catalog/pharmacy-online-4"> https://www.lawtech.ru/subscribe/26814-16102025"> https://www.availcalendar.com/calendar/25583"> https://www.itconnecta.es/pharmacy-online-12"> https://www.musicinafrica.net/newsfeed/213463/373416"> https://www.cableman.ru/node/84341"> https://www.horecascout.nl/vacatures/5441/pharmacy-online"> http://hr-life.ru/node/53784"> http://kalyterizoi.gr/foreis/pharmacy-online-5"> https://auc.org.ua/faq/28092025-2124"> http://lsdsng.com/node/4271"> https://www.jobwebby.ilovemarkso.com/domainasname-anthony-gmbh/pharmacy-online"> https://www.spinsheet.com/century-club-log/pharmacy-online-4"> https://spdm.dambo.me/forums/miscellaneous/news-and-announcements/pharmacy-online-0"> https://ufa-help.ru/content/pharmacy-online-14"> http://pbgpersonnel.ru/forum/pharmacy-online-0"> https://totalhockeymanagement.com/pharmacy-online-11"> https://darkmetal2039.com/history/pharmacy-online-26"> http://lsdsng.com/node/4271"> http://hubram.cz/content/pharmacy-online-12"> http://hr-life.ru/node/53784"> http://ysrp.bnl.bm/review/pharmacy-online-5"> http://ph-ed-plus.nspu.ru/article/17933"> http://www.sccu.chula.ac.th/node/919"> https://reflexologie-cerilly.fr/en/node/4245"> https://satto.vtranet.com/binh-luan-389"> https://dev.beautynbrushes.com/services-provided/marley-twists-maroonimmortalep"> https://www.vgame.ca/node/46849"> https://www.inserthere.me/sitereview/pharmacy-online"> https://www.castnblastadvisor.com/outfitters/pharmacy-online-0"> https://localautosforsale.com/local-autos/tx/96/daihatsu/1500-classic-4wd/2001/8697"> https://darkmetal2039.com/history/pharmacy-online-26"> https://spdm.dambo.me/forums/miscellaneous/news-and-announcements/pharmacy-online-0"> https://reflexologie-cerilly.fr/en/node/4245"> https://enki.ua/advert/16925"> Post link: https://community.nxp.com/t5/i-MX-Processors/Could-not-invoke-dnf-for-external-kernel-module-in-Yocto/m-p/1627964#M203740 Post author: @JohnKlug | Email Author Reported by: wsmjdwen | Email Reporter The reported post has 2 replies.
查看全文
STM32Cube IDEからMCUXpresso IDEへ STアプリケーションのポーティング このセクションでは、STM32Cube IDEで開発されたアプリケーションを、NXP MCU用の互換SDKを使用してNXP MCUXpresso IDEに移行するプロセスについて概説します。 STM32Cube IDEに慣れているユーザーの場合、同様の開発環境を維持することで移行が容易になり、学習曲線を緩和できます。この例では、STM32デバイス用に元々開発されたI2Cベースのアプリケーションを、NXP MCU用に再作成し、適応させます。 移行は、必要なI2Cドライバを含む最小限のプロジェクトをMCUXpresso IDEで作成することから始まります。元のSTアプリケーションは、同じボード上のコンポーネント間の通信に2つのI2Cインスタンスを利用します。この機能を再現するには、2組のI2Cピンを初期化する必要があります。さらに、アプリケーションはプッシュボタン入力とLED出力を使用して動作の変化を示すため、MCUxpressoピン構成ツールを使用して対応するGPIOを設定する必要があります。 移行を開始するには、元のSTプロジェクトのメイン・ソース・ファイルと、STの標準ドライバ・セットに含まれていないカスタム・ソース・ファイルを、新しいNXPプロジェクトに組み込む必要があります。 以下の手順は、MCUXpresso IDEでの初期プロジェクトセットアップの概要を示すものです。 [Create a new C/C++ project(新しいC/C++プロジェクトを作成)]を選択します。 ターゲットとなるMCU(例:MCXA156)を選択します。 [Next(次へ)]をクリックします。 [Drivers(ドライバ)]セクションを展開します。 I2Cを選択してください。 [Next(次へ)]をクリックします。 [Finish(完了)]をクリックします。 プロジェクトを作成すると、基本的な「Hello World」のサンプルが含まれます。このテンプレートを開始点として使用できます。メインソースファイルのすべてのコンテンツ(初期マクロ定義を除く)は、アプリケーションロジックを統合するために段階的に置き換えることができ、モジュール式で制御された移行プロセスを可能にします。 次のステップでは、元のSTプロジェクトから新しく作成したMCUXpressoプロジェクトにメインソースファイルを転送します。このプロセス中、標準なSTは含まれ、ドライバ参照は除外されますが、カスタムヘッダーファイルが必要な場合を除きます。この場合、カスタムヘッダは使用されていないため、コアアプリケーションロジックのみが移行されます。 STソース・ファイル内の関数呼び出しの多くは、STM32固有のHAL APIに依存しています。これらの機能は見直され、NXP SDKの同等の機能に体系的に置き換えられます。このアプローチでは、main()ルーチン内の各関数を解析してその目的を理解し、それをNXP環境の対応する実装に置き換えます。   STプロジェクトの簡単の概要: 割込み優先度の設定 複数の割込みが同時に発生した際に優先度レベルを管理するよう、マイクロコントローラの割込みシステムを設定します。 パワー・ペリフェラル・クロックのイネーブルメント パワーマネージメント設定を構成するための前提条件として、パワー(PWR)ペリフェラル・クロックを有効にします。 パワーマネージメントのセットアップ 内部コンポーネント全体のエネルギー効率とパフォーマンスを最適化するために、STM32U5xxマイクロコントローラのパワーマネージメント機能を初期化します。 System Clock Configuration マイクロコントローラのタイミングシステムを設定し、160 MHzの周波数で動作するように構成します。 ペリフェラルの初期化 ペリフェラルのピン構成や機能設定を確立します。このアプリケーションでは、I2C1がフォロワー、I2C3がリーダーとして構成されています。 LED初期化 LEDを低アクティブ状態で開始し、初期状態または通信フィードバックを示すために点灯するように設定します。 GPIO Polling for Button Press GPIO入力ピンの状態を継続的に監視します。ボタンが押されていないと、LEDは速く点滅します。一度押すと、ループは終了し、LEDは点灯したままです。 I2C通信開始 マスター側からI2C通信プロセスを開始し、2つのI2Cインターフェース間のデータ転送を実行します。 NXP SDKではどのように処理されていますか? 割込み優先度の設定 この機能はCMSISコアNVIC機能を通じてサポートされており、直接再利用できます。必要なプリエンプション優先度レベルを確立するには、マクロを定義する必要があります。 クロックと電源の設定 これらの機能は、boardフォルダ内のclock_config.cにあるBOARD_InitBootClocks関数に統合されています。この関数は、NXP MCUのシステムクロックと電源設定の両方を初期化します。 ペリフェラルとピンの初期化 ペリフェラルのセットアップは2つの関数に分かれています。 BOARD_InitBootPins(pin_mux.c内)はI2CとGPIOのピン設定を処理します。 BOARD_InitBootPeripherals(peripherals.c内)はI2Cペリフェラルの初期化とGPIO割込み設定を管理します。 LEDの初期化 GPIOピンは、希望する初期状態に応じて出力を「ハイ」または「ロー」に設定できます。LEDはGPIO_PinWriteを使用して切り替えたり設定したりできます。 ボタン押下のGPIOポーリング この動作は、GPIO_PinReadを使用してボタンの状態を監視するカスタムポーリング関数を使用して再現できます。 I2C通信開始 I2Cマスター通信はLPI2C_MasterStartを使用して開始され、指定されたスレーブデバイスとのデータ転送プロセスが始まります。 Clock Config Toolを使用したクロックの初期化 MCUXpresso IDEには、統合構成ツールが含まれており、インターフェースの右上にあるドロップダウンメニューから適切なオプションを選択することで、プロジェクトエクスプローラからアクセスできます。 システムクロックを設定するには、MCUXpresso IDE内のクロックツールを開きます。 クロック図は選択したMCUでサポートされている構成を示しています。この例では、デバイスの最大コアクロック周波数は96MHzです。これはアプリケーションの要件を満たしているので、デフォルトのクロック設定を変更する必要はありません。 I2Cインスタンスのペリフェラル・クロックを有効にするには、MCUXpresso Config Tools内のクロック構成図に移動します。図をスクロールして利用可能なペリフェラルを見つけ、適切なクロックソースを選択してI2Cモジュールをアクティブにします。 I2C0およびI2C3ペリフェラルのクロックソースを設定するには、クロック構成図の各インスタンスに関連付けられているCLKSELフィールドをダブルクリックします。このセットアップでは、I2C0およびI2C3の両方のクロックソースとしてFRO_HF_DIVを選択します。 次に、クロック構成図で対応するフィールドを選択してクロック分周器を構成します。詳細はインターフェースの右上パネルに表示されます。I2Cペリフェラルへのクロックパスを有効にするには、「Divider clock is running(クロック分周期が実行中)」オプションが選択されていることを確認してください。 この段階で、I2Cペリフェラルクロックは正常に有効化されています。 構成の変更を適用してプロジェクトに統合するには、「コードの更新」をクリックしてください。このアクションにより、対応するソースファイルが生成され、新しい設定がプロジェクト構造に反映されます。 Pins Config Toolを使用したピンの初期化 MCUXpresso IDEには、統合設定ツールが含まれており、インターフェースの右上にあるドロップダウンメニューから適切なオプションを選択することで、プロジェクトエクスプローラからアクセスできます。 I2Cピンの構成を開始するには、MCUXpresso IDEの構成ツールメニューから「Open Pins(ピンを開く)」を選択します。 フィルタ機能を使用して、I2Cインスタンス0と互換性のある使用可能なピンを検索します。ボードの回路図を確認した後、ヘッダー経由でアクセスできるピンP0_16とP0_17が選択されました。LPI2C0:SDAとLPI2C0:SCLを構成オプションから選択して、これらのピンに適切なI2C機能を割り当てます。 I2Cインスタンス3の構成プロセスを繰り返します。ボードの回路図に基づき、P3_27ピンとP3_28ピンがこのインスタンス用に選択されています。ピン構成ツールでLPI2C3:SDAとLPI2C3:SCLを選択し、適切な機能を割り当てます。 ピンの選択が完了すると、各ピンのルーティングと設定を表示する構成テーブルが生成されます。このテーブル内で、ルーティングの詳細を使用して、必要に応じてピンを設定します。I2Cピンに対して、通信中の適切な信号の整合性を確保するために、内部プルアップ抵抗を有効にしてください。 I2Cピンの構成に加えて、入力用と出力用の2つのGPIOピンを設定する必要があります。このボードでは、SW2(P1_7)がボタン入力機能、P3_0がLED出力に割り当てられています。 ピン構成テーブルのルーティング詳細内で、入力GPIOと出力GPIOの両方の動作を定義します。アプリケーション要件に基づいて、LEDをアクティブにするために、出力ピンをロジック・ロー状態(論理0を選択)に初期化する必要があります。入力ピンに対して、ボタンの押下を正確に登録するために、立ち下がりエッジでの割込み検出を有効にします。 構成を確定し、変更をプロジェクトに統合するには、「Update Code(コードを更新)」をクリックします。これにより、必要なソースファイルが生成され、選択した設定がプロジェクト構造に適用されます。 Peripheral Config Toolを使用したペリフェラルの初期化 MCUXpresso IDEには統合構成ツールがあり、プロジェクトエクスプローラからアクセスできます。これらのツールを起動するには、インターフェースの右上にあるドロップダウンメニューを使用します。 ペリフェラルの構成を開始するには、MCUXpresso IDE内の構成ツールメニューから「Open Peripherals(ペリフェラルを開く)」を選択します。 このビューでは、各インスタンスのGPIOとI2C設定の初期化に集中してください。続行するには、 「Peripheral Drivers(ペリフェラル・ドライバ)」を選択して、対象デバイスで利用可能なサポートされているドライバのリストにアクセスします。 GPIO1設定 利用可能なペリフェラル・オプションを絞り込むには、ペリフェラル・ドライバ・ビューの検索フィールドに「GPIO」と入力します。関連するオプションが表示されたら、「OK」をクリックしてGPIOの設定を進めます。 ボタン入力に割り当てられているP1_7の割込み機能を有効にするには、まず新しいペリフェラル・ドライバを選択します。フィルタを使用してGPIOを検索し、適切なドライバを選択して、GPIO1割込みハンドラをアクティブ化します。 I2C3リーダー/マスター構成 I2Cペリフェラルを構成するには、ペリフェラル・ドライバ・ビュー内の検索フィールドに「I2C」を入力して利用可能なオプションをフィルタリングします。該当するドライバが表示されたら、アプリケーションに適したドライバを選択し、「OK」をクリックして続行します。 I2C3をマスター(リーダー)デバイスとして設定し、割り込み駆動のデータ転送を有効にします。この設定により、I2C3インスタンスは通信を開始し、割り込みメカニズムを使用してデータ送信を処理できるため、応答性と効率が向上します。 さらに、I2C3ペリフェラルの割込みハンドラを有効にします。適切な優先度レベルを設定し、送信データ・レディ・フラグを有効にして、割り込みによるデータ転送をサポートします。 I2C0フォロワー/スレーブの構成 I2C0フォロワー・ペリフェラルを構成するには、ペリフェラル・ドライバ・ビュー内の検索フィールドに「I2C」を入力して、利用可能なドライバをフィルタリングします。該当するドライバが表示されたら、適切なものを選択し、「OK」をクリックして構成を進めます。 I2C0をスレーブ(フォロワー)デバイスとして構成します。割込み駆動型転送方式を有効にし、通信に使用するスレーブアドレスを指定します。この設定により、I2C0インスタンスはマスタ要求に応答し、割込み経由でデータ受信を処理できるようになります。 さらに、I2C0ペリフェラルの割込みハンドラを有効にします。適切な優先レベルを設定し、割り当てられたフォロワーアドレスを検証し、受信データ・レディ・フラグをアクティブにして、割り込み駆動型のデータ受信をサポートします。 設定を適用してプロジェクトに統合するには、「Update Code(コードを更新)」をクリックします。このアクションにより、必要なソースファイルが生成され、すべてのペリフェラルとピンの構成がプロジェクト構造に反映されることを確認します。 Config Toolsが生成したファイル MCUXpresso構成ツールは、選択した設定に基づいて自動的にソースコードを生成し、メインアプリケーションへの統合を効率化します。この生成されたコードには、前のステップで構成されたクロック、ピン、およびペリフェラルの初期化ルーチンが含まれます。生成されたすべてのファイルは、プロジェクト構造内のboardディレクトリ内に整理されます。 board.c NXPの開発ボードを使用してプロジェクトを作成する場合、デフォルト構成には、シリアル端末通信用のデバッグUARTピンの初期化が含まれます。この場合、UART機能は不要であり、board.c内の対応する関数は使用されません。 clock_config.c このファイルには、すべてのシステムクロック設定が含まれています。BOARD_InitBootClocks関数を使用して、クロック周波数と電源モードの設定を初期化します。このアプリケーションでは、システムは96 MHzで動作するように構成されています。 peripherals.c このファイルには、Config Toolsで構成されたペリフェラルの初期化コードが含まれています。この例では、I2CインスタンスとGPIO割込みの両方のセットアップルーチンが含まれています。BOARD_InitPeripherals関数を使用することもできますが、生成されたコードをアプリケーション内の特定の場所に選択的に統合し、必要な実行シーケンスに合わせる方が効果的な場合がよくあります。 pin_mux.c このファイルは、I2CとGPIOの割り当てを含む、アプリケーション用に選択されたすべてのピン構成を定義します。UARTピンはデフォルトで含まれていますが、このプロジェクトでは使用しません。BOARD_InitBootPins機能を使ってピン設定を適用してください。 さらに、元のSTアプリケーションにはキャッシュ初期化機能(mx_ICache_init)が含まれています。NXP SDKでは、キャッシュ構成がスタートアップコード内で処理されます。これは、デバイスフォルダの下にあるSystem_MCU.cのSystemInit関数で確認できます。 初期化関数の置き換え クロックとピンの初期化 NXPベースのプロジェクトの主な機能では、システムクロックとピン構成が、構成ツールによって生成された関数を使用して初期化されます。 BOARD_InitBootClocks BOARD_InitBootPins 周辺機器の初期化 ペリフェラルの初期化コードは、Config Tools によって生成されたperipherals.cから提供されます。コードの最初のブロックは、優先度レベルとNVIC構成を含むGPIO割込みハンドラを設定します。 続いて、I2Cマスタとスレーブのインスタンスが、それぞれの割込みハンドラと優先レベルとともに初期化されます。この段階では、割込みフラグはまだ有効になっていません。割込みフラグは、適切なシーケンスを確保し、早すぎる割込みのトリガを回避するために、データ転送機能において後でアクティブ化されます。 peripherals.cファイルには、スレーブ操作用にLPI2C0ペリフェラルを初期化するためのコードスニペットが含まれています。このコードは、目的の実行フローに合わせて、メイン機能やアプリケーション内の他の適切な場所に選択的に組み込むことができます。 MCUXpresso IDEの構成ツールは必要な初期化コードを効果的に生成しますが、アプリケーション内でこのコードの最も適切な配置するのは開発者の責任です。この決定は、実装される特定のプロトコルやペリフェラルに必要な操作シーケンスに基づいて行う必要があります。 たとえば、I2C通信では、データ転送は割込みによって管理されます。タイミングを考慮せずにLPI2C0_init機能を使用すると、割込みが早期に発生し、トランザクションが不完全になったり、誤って管理されたりする可能性があります。 適切に実行するために、推奨されるシーケンスは以下のとおりです。 ペリフェラルと関連する割り込みハンドラを初期化します。 I2Cトランザクションを開始します。 マスタ操作とスレーブ操作の両方で割込みを有効にします。 このアプリケーションでは、初期化はmain()関数内で実行され、割込みフラグは、正しいタイミングとコントロールを維持するため、後からHandle_I2C_Master関数内で選択的に有効化されます。 アクション関数の置き換え SYSTICKの初期化 SYSTICKタイマは、LED点滅速度の制御など、アプリケーション内での遅延操作をサポートするように構成されています。SYSTICKの初期化に関する詳細な手順は以下のセクションで説明されています。 ボタンポーリングとLED制御 この機能は、ボタン入力を継続的にポーリングするカスタム関数を通じて実装されます。ユーザーの操作を待つ間、LEDが切り替わり、準備完了を示します。ボタンを押すと、LEDが点灯したままになり、I2Cデータ転送フェーズに進んでいることを示します。 I2Cマスタの処理 Handle_I2C_Master関数は、NXP SDKのI2Cペリフェラル用に提供されているドライバAPIを使用して実装されています。この関数はI2Cトランザクションを開始し、通信シーケンスを管理します。 マスターおよびスレーブI2Cインスタンスの割込みハンドラは、ペリフェラルの初期化コードから派生しています。この段階では、アプリケーションが必要とする特定の動作をサポートするために、関連する割込みフラグが選択的にイネーブルされます。 WaitForUserButtonPress 関数 GPIO割り込みハンドラのカスタマイズを開始するには、MCUXpresso IDE内でPeripherals Config Toolを開きます。そこから、自動生成されたGPIO用のIRQハンドラをコピーすることができます。このコードは、アプリケーションの特定の要件に合わせて修正することができます。 ペリフェラルを構成した後、コードエディタに戻るには、MCUXpresso IDEの右上にある「Develop(開発)」ボタンをクリックします。開発環境に入ったら、コピーしたIRQハンドラコードをメインのソースファイル(できれば上部周辺)に貼り付けて、アクセスと整理を容易にします。 修正が加えられ、whileループ内に制御変数が含まれるようになり、アプリケーションはボタンが押されるまで実行を一時停止するようになりました。これにより、プログラムはユーザーの操作後にのみ進行し、アプリケーションの意図したフローに沿うことが保証されます。 WaitForUserButtonPress機能は、GPIOの切り替え操作と書き込み操作を利用してLEDの状態を制御し、遅延メカニズムを使用してポーリングループ中の点滅間隔を管理します。遅延を実装するには、SYSTICKタイマーを初期化し、それに応じて構成します。 さらに、アプリケーション内の時間ベースの操作をサポートするために、対応するSYSTICK割込みハンドラとともにグローバルカウンター変数が導入されました。 main()関数内では、ボタンのポーリングロジックの前にSYSTICKタイマーの初期化を追加する必要があります。これにより、ユーザー入力を待機するループに入る前に、遅延メカニズムが完全に動作することが保証されます。 最終的なWaitForUserButtonPress関数には以下が含まれます。 GPIO操作でLED状態の切り替えと制御を行います。 ボタンの状態を継続的にチェックし、押下イベントが検出されたときにのみ続行するwhileループ。 GPIO_* APIは、NXP GPIOドライバライブラリの一部であり、初期化、ピン制御、割込み処理などのさまざまな操作に使用されます。コード内で強調表示されているマクロ(IDEs内では通常ピンクで表示)は、Config Toolsによって生成され、pin_mux.hで定義されます。 アプリケーションで使用される遅延機能は、前述のカスタムSYSTICKベースの関数によって実装されています。 利用可能なGPIO APIの全セットを見るには、fsl_gpio.hヘッダーファイルを参照してください。このファイルは、ポートとピンレベルの制御、構成、割込み管理など、GPIO操作の包括的なサポートを提供します。 I2C割り込みハンドラのカスタマイズ GPIOハンドラと同様の方法でI2C割込みハンドラをカスタマイズするには、まずMCUXpresso IDEでペリフェラル設定ツールを開きます。次に、I2C0用に自動生成されたIRQハンドラを見つけてコピーします。これは、アプリケーションの特定の要件を満たすように変更できる基本テンプレートとして機能します。 コードエディタに戻るには、MCUXpresso IDEの右上にある「Develop(開発)」ボタンをクリックします。開発環境に入ったら、コピーしたI2C割込みハンドラコードをメインソースファイルに貼り付けます。整理とアクセス性を高めるため、できれば上部に貼り付けてください。 Peripherals Config Toolから自動生成された割り込みハンドラをコピーして、I2C3に対し、同じプロセスを繰り返します。このハンドラはI2C0で採用されている方法と同様に、カスタマイズのベースとして利用できます。 I2C割り込みハンドラの統合 元のSTベースのプロジェクトでは、各I2Cインスタンスは、標準操作用とエラー処理用の2つの割込みハンドラを使用していました。ただし、今回の移行で使用されるNXP MCUは、I2Cインスタンスごとに1つの割込みベクタを提供し、標準状態とエラー状態の両方を処理します。 その結果、元の4つのハンドラの機能を、各I2Cインスタンスに1つずつ、合計2つに統合する必要があります。これには、元の割込みロジックを慎重に確認して、マージされた実装で関連するすべてのフラグと動作が保持されるようにする必要があります。 たとえば、元のプロジェクトのスレーブハンドラは、アドレス一致フラグをチェックし、検出されると、データを受信する準備ができているかどうかを確認します。NXP環境における同等の動作は、統合された割込みハンドラ内で適切なステータスフラグを監視することで実装され、アドレス認識とデータ受信の両方が正しく処理されることを保証します。 スレーブハンドラ I2Cスレーブ割込みハンドラは、マスタデバイスが0x7Eでスレーブにアドレスを指定するときにトリガーされます。このアドレスの一致を検出すると、スレーブは要求を確認し、着信データを受信する準備をします。 ハンドラの2番目の部分はデータ受信プロセスを管理します。マスタから送信された各バイトを処理し、送信終了を示すNACK(Not Acknowledge)状態を監視し、受信したデータを指定されたバッファに保存します。これにより、スレーブは通信シーケンスを正しく処理し、すべてのデータが受信された後にスムーズに転送を終了します。 マスタハンドラ I2Cマスタ割込みハンドラは マスタ転送レディ・フラグを監視し、ペリフェラルが次のバイトのデータを送信する準備ができていることを示します。この状態を検出すると、ハンドラは送信バッファをチェックして、送信すべき追加データが残っているかどうかを判断します。送信の進行状況を追跡するためにカウンタが使用されます。 適切なマスタ送信動作を使用して、ハンドラは次のバイトを送信し、バッファポインタを進めます。最後のバイトが送信されると、ハンドラはSTOP条件を発行して、データ転送シーケンスの完了を通知します。 Handle_I2C_Master関数 Handle_I2C_Master関数は、I2C通信プロセスの開始と管理を担当します。最初に、MasterStartコマンドを発行して、指定されたアドレスのスレーブデバイスとの通信を開始します。スレーブからの確認応答が成功すると、対応する割り込みルーチンを通じてデータ転送が処理されます。 この関数はまた、マスタおよびスレーブの両方のI2Cインスタンスの割込みハンドラを初期化します。前述のように、トランザクションシーケンスを中断させる可能性のある早すぎる割込みトリガを防ぐために、マスタが通信を開始した後に割り込みを有効にすることが重要です。 データ転送が完了し、スレーブが想定されるすべてのバイトを受信すると、関数はLEDを定常状態に設定して終了し、実行の成功とアプリケーションフローの終了を示します。 まとめ MCUXpresso IDEを使用してアプリケーションをSTM32開発環境からNXP MCXプラットフォームに移行するには、構造化された体系的なアプローチが必要です。統合構成ツールを利用し、STM32とNXP SDKコンポーネント間の機能の同等性を理解することで、開発者はパフォーマンスと機能を維持しながらアプリケーションを効果的に移行できます。 このガイドでは、I2Cベースのアプリケーションを複製する際の主要な手順を概説しています。これには、プロジェクトのセットアップ、ペリフェラルの構成、ピンとクロックの初期化、および割込み処理が含まれます。ツールは自動生成されたコードを通じて強力な基盤を提供しますが、信頼性の高い操作を保証するために、初期化とランタイムロジックのシーケンスと統合を慎重に検討する必要があります。 両方の環境を明確に理解し、アプリケーションロジックを慎重に適応させることで、開発者は移行プロセスを合理化し、NXP MCXプラットフォームが提供する機能を最大限に活用できます。
查看全文
无 PHY 的 IMX8MP RGMII 连接 您好, 我正试图在不使用物理层的情况下建立与交换机的以太网 RGMII 连接。根据其他帖子,我将我的设备树配置如下: &fec { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_fec>, <&pinctrl_fec_phy>; phy-mode = "rgmii"; status = "okay"; fixed-link { speed = <1000>; full-duplex; }; }; pinctrl_fec: fecgrp { fsl,pins = , , , , , , , , , , , , , ; }; pinctrl_fec_phy: fecphygrp { fsl,pins = , ; }; ethtool 显示检测到链接:是,ifconfig 显示已分配 IP 地址。但是我无法 ping 到板或从板上执行 ping 操作。您能确认针脚的设置是否正确吗?谢谢。 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: IMX8MP RGMII Connection with No PHY 谢谢您的答复,我已经看过那份文件,它帮我走到了今天。不过,我仍然需要进一步的帮助,才能让事情顺利进行。 Re: IMX8MP RGMII Connection with No PHY 请参阅所附文件,该文件对您的情况非常有用 Re: IMX8MP RGMII Connection with No PHY 对于 RGMII,当前电路板支持包默认支持此功能,你可以参考 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/arch/arm64/boot/dts/freescale/imx8mp-evk.dts#L390
查看全文
PN7642 RF Design-in Tips and Tricks Prerequities:  PN7642 design-in recommendations   1// Impedance tuning  PN76 family antenna design guide The target impedance is chosen based on the target application. If full power is required (e.g., POS terminals). The target impedance of 15-17 Ω is recommended. For lower power applications using ULPCD, the higher impedance is typically preferred, 30-50 Ω (symmetrical tuning).   2// Dynamic power control  PN7642 - Basic RF power limitation using DPC   3// H-Field check  There are given limits, especially for the maximum H-field radiated by the reader. Exceeding these limits might lead to destroying the NFC Card/NFC Tag.   The H-Field can be measured with the help of test equipment, as  ISO 10373-6 Test PICC EMVCo 3.0 Test PICC  For indication only, the customers can use "smart" Field Strength Probes as shown below:      4// HF Attenuator value  Turn on the RF Field with the DPC set and enabled from the previous step  Read the CLIF_RXCTRL_STATUS register and check the HF_ATT_VAL as shown below.  The value for the "unloaded" condition with full power shall be approximately 35-45dec.  If the value is out of this range, the customer is required to adjust the Rx resistors to reach this value.  5// Receiver settings  Check the "Power" range and Communication Range with the default settings provided by NXP.  Power Range -> The distance at which the NFC Tag can still generate its answer, but the NFC Reader does not see it  Communication Range -> The distance at which the NFC Tag can still communitate with the NFC Reader  Ideally, Power Range ≈ Communication Range Also, the NFC Reader should not generate any false communications as e.g., "HAL COLLISION ERROR".  The optimisation of the receiver can be done in the following way:  Enter DPC Calibration  Go to the "ARC" menu and "disable" the ARC algorithm This will force the IC to use the RX settings from the following Register/EEPROM SIGPRO_RM_TECH_REG DGRM_RSSI_REG   5.1// SIGPRO_RM_TECH_REG (RM_MF_GAIN parameter) This parameter basically defines the gain of the input amplifier.  Select SIGPRO_RM_TECH_REG  Switch "operation" to EEPROM and choose the required technology  Increase the RM_MF_GAIN to 0x02 (it depends on the setup).     5.2// DGRM_RSSI_REG (DGRM_SIGNAL_DETECT_TH_OVR_VAL parameter) This parameter defines a threshold from which the internal logic starts to decode the incoming signal.  If the threshold is too low or very close to the noise floor, the system can detect the noise as an NFC Communication.  It is therefore,  Threshold + margin > noise floor The best routine is to perform "Signal Detection Threshold" analysis. This can be done with the help of the NFC Cockpit (described in PN7642 design-in recommendations) As a result, the user can obtain the mean value of the "Noise," and suggested "DGRM_SIGNAL_DETECT_TH_OVR_VAL" threshold based on the inserted "Margin."  Maring (m) + Noise mean value (μ) = Threshold  6+16=23 Then this value shall be written in "DGRM_RSSI_REG" EEPROM as shown below.    6// ULPCD Settings  The default values are typically a very good starting point as such. In the first phase, the user needs to take care of the RSSI Threshold value and ULPCD VDDPA.  ULPCD VDDPA should be chosen in such a way that the HF Attenuator value is not 0x00! The typical value for HF Attenuator in ULPCD is around 0x05-0x0B.   6.1// RSSI Threshold evaluation  For a proper RSSI Threshold selection, it is recommended to perform the ULPCD Calibration, e.g., 20 times, and check the "jitter" of the RSSI signal for your device.  If you see that the RSSI value is jittering, e.g., 5 units as shown above. The absolute minimum threshold for this case is 6. Generally, the margin of 2 units is sufficient. So in this case, the optimum threshold will be 7. 
查看全文
imx95 verdin-evk mlan/moal サポート こんにちは、リストの皆さん 次のボードの Wi-Fi/Bluetooth をサポートするために、Linux-imx カーネルと mwifiex コンポーネントのタグlf-6.6.3-1.0.0 を使用しています。 8<-- U-Boot SPL 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) SOC: 0xa1009500 LC: 0x40010 SYS ブート理由: por、発生元: -1、エラー: -1 SYS シャットダウン理由: por、発生元: -1、エラー: -1 DDRMIXがパワーアップしました 通常のブート MMC1から起動しようとしています プライマリセットが選択されました MMC/SD 0xacc00からイメージをロードする お知らせ: BL31: v2.8(リリース):android-14.0.0-imx95-demo-1-g8dbe28631 通知: BL31: 構築日時: 2024年1月22日 17:57:56 U-Boot 2023.04+gf8a2983ec8+p0 (2024年3月4日 - 07:25:04 +0000) CPU: i.MX95 rev1.1(1800MHz) CPU: オートモーティブ温度グレード (-40℃~125℃)、22℃ LM ブート理由: por、origin: -1、errid: -1 LM シャットダウン理由: por、発生元: -1、エラー: -1 モデル: Toradex i.MX95 19X19 TITAN EVK [..] -->8 私はimx95-19x19-titan.dtbを使用していますが、この dtb にノードがなくても Wi-Fi がどのようにサポートされるのか疑問に思っています。この dtb を逆コンパイルすると、Bluetooth 用のノードが 1 つあります (動作していません)。 8<-- [..] シリアル番号@42590000 { 互換性 = "fsl,imx95-lpuart", "fsl,imx8ulp-lpuart", "fsl,imx7ulp-lpuart"; <0x42590000 0x1000> レジスタ<0x00 0x42 0x04> =; 割り込み<0x11 0x90> =; クロック =; クロック名 = "ipg"; dmas<0x27 0x16 0x00 0x01 0x27 0x15 0x00 0x00> =; dma-names = "rx", "tx"; ステータス = "正常"; pinctrl-names = "デフォルト"; ピンコントロール-0 =<0x2e> �; ファンドル =<0xcf> �; ブルートゥース { 互換性 = "nxp、88w8987-bt"; fw-init-baudrate<0x2dc6c0> =; }; }; [..] -->8 しかし、Wi-Fi のノードがありません。 どうすれば正常に動作するのでしょうか? モジュール mlan と moal をロードすると「正常」になりますが、新しいネットワーク インターフェースがありません。 8<-- root@target-imx95-verdin-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [ 1451.671079] mlan: ツリー外のモジュールをロードするとカーネルが汚染されます。 [ 1451.705854] wlan: MWLANドライバを読み込んでいます [ 1451.709988] wlan: バス ドライバに登録... [ 1451.714385] wlan: バスドライバへの登録が完了しました [ 1451.718855] wlan: ドライバが正常にロードされました -->8 何か手がかりはありますか? ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは@ebio 、 ご反応いただきありがとうございます。 toradex (git://git.toradex.com/linux-toradex.git)からカーネルリポジトリを取得します。ブランチtoradex_6.6-2.2.x-imxを選択し、カーネルをビルドします。 imx カーネル リポジトリとは対照的に、「wifi」を含む dtb ファイル名がいくつかあります。 8<-- % arch/arm64/boot/dts/freescale -iname "imx95*wifi*.dtb" を検索 arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-ivy.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dev.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-mallow.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-nonwifi-yavia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-dahlia.dtb arch/arm64/boot/dts/freescale/imx95-verdin-wifi-yavia.dtb -->8 ご想像のとおり、Toradexから必要なものを抽出し、NXPカーネルリポジトリ(タグ: lf-6.6.3-1.0.0)のDTBを適応させようとしています。😞 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts インデックス ccb88efde3c1..859183be58dc 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts @@ -189,6 +189,20 @@ reg_usdhc2_vmmc: レギュレータ-usdhc2 { アクティブハイを有効にする; }; + /* Wi-Fi を追加 */ + reg_wifi_en: レギュレーター Wifi-en { + 互換 = 「レギュレータ固定」; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_wifi_pwr_en>; + /* PMIC_EN_WIFI */ + gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; + アクティブハイを有効にする; + レギュレータ最大マイクロボルト = <3300000>; + レギュレータ最小マイクロボルト = <3300000>; + レギュレータ名 = "PDn_MAYA-W260"; + 起動遅延時間 = <2000>; + }; + reg_pcie0: レギュレータ-pcie { compatible = "レギュレータ固定"; レギュレータ名 = "PCIE_WLAN_EN"; @@ -676,6 +690,19 @@ &usdhc2 { ステータス = "正常"; }; +/* Wi-Fiサポートを追加 */ +/* モジュール内 Wi-Fi */ +&usdhc3 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + ピンctrl-0 = <&pinctrl_usdhc3>; + ピンctrl-1 = <&pinctrl_usdhc3>; + pinctrl-2 = <&pinctrl_usdhc3_200mhz>; + 電源を停止したままにします。 + 取り外し不可。 + vmmc-supply = <&reg_wifi_en>; + ステータス = "正常"; +}; + &enetc_port0 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc0>; @@ -1142,6 +1169,32 @@ IMX95_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe IMX95_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e >; }; + + + /* WB SKU ではモジュール内 Wi-Fi、それ以外の場合はモジュール固有の SDIO */ + pinctrl_usdhc3: usdhc3grp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA0 */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + ; /* SD3_DATA3 */ + }; + + pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp { + fsl,ピン = , /* SD3_CLK */ + , /* SD3_CMD */ + , /* SD3_DATA1 */ + , /* SD3_DATA2 */ + , /* SD3_DATA3 */ + ; /* SD3_DATA4 */ + }; + + pinctrl_wifi_pwr_en: wifipwrengrp { + /* PMIC_EN_WIFI */ + fsl、ピン = ; + }; + }; &vpuctrl { -->8 ご想像のとおり、動作しません。 nxp カーネル タグ 6.6.3-1.0.0 では、なぜ nxp は dtb を提供しないのでしょうか? ドキュメントhttps://www.nxp.com/docs/en/user-guide/UG10163.pdfに驚きました第11.1章/11.3章wifi/bluetooth カーネル モジュールをロードする方法を説明します。このドキュメントはカーネルタグLF6.12.34_2.1.0に基づいていることを知っていますしかし、同じハードウェア サポートが提供されると期待できます。 また、カーネルと imx95-verdin-wifi-dev.dtb の起動を試みましたが、scmi の非互換性のため失敗しました。 この問題を解決するのに NXP についてが適切な会社なのか、それとも Toradex の方が優れているのか教えてください。 ありがとうございます。よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、 Linux カーネル タグ lf-6.6.3-1.0.0 を使用する i.MX95 プラットフォームの場合、88w8987 モジュールの WiFi サポートには適切なデバイス ツリー構成が必要です。デバイス ツリーには Bluetooth ノードがありますが、WiFi ノードがないためインターフェースが表示されません。 WiFi では、88w8987 モジュールと適切にインターフェースするために、デバイス ツリー内に SDIO ノードが必要です。mlan および moal モジュールをロードすると、ログに「ドライバが正常にロードされました」と表示されるため正常にロードされますが、適切なデバイス ツリー構成がないとハードウェアを検出できないため、ネットワーク インターフェースを作成できません。 1. デバイスツリーファイル(imx95-19x19-titan.dtb)にSDIOノードを追加する必要があります。88w8987 モジュールの WiFi コンポーネントを参照します。 2. ノードには通常、次のものが含まれます。 - SDIOコントローラの互換文字列 - 移動できないプロパティ - システムのサスペンド中も電源をオンにしたままにする - WiFi固有の設定 3. WiFi ノードと Bluetooth ノードの両方を含む i.MX8MM EVK など、88w8987 をサポートする他の i.MX ボードの既存の実装を参照します。 Toradex ボードを使用している場合は、i.MX95 モジュールで WiFi を有効にするために推奨されている特定の実装の詳細については、Toradex のドキュメントも確認することをお勧めします。 よろしくお願いします。 Re: imx95 verdin-evk mlan/moal support こんにちは、リストの皆さん 自分自身に答えています^^。 linux-imx 用のタグlf-6.6.3-1.0.0で WiFi を作成するには、次の手順に従います。 コミット483162118e93に従って、ファイルarch/arm64/boot/dts/freescale/imx95-19x19-titan.dtsを変更します。 8<-- diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts インデックス 38f985d5f87c..3c0a2708114e 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-titan.dts @@ -18,6 +18,18 @@ ダミーレジスタ: ダミーレジスタ { レギュレータ最小マイクロボルト = <3300000>; レギュレータ最大マイクロボルト = <3300000>; }; + + usdhc3_pwrseq: usdhc3_pwrseq { + 互換性 = "mmc-pwrseq-simple"; + リセットgpio = <&i2c7_pcal6524_23 11 GPIO_ACTIVE_HIGH>; + }; + + /delete-node/ reg_serdes_stby; + /delete-node/ レギュレータ MAC スタンバイ; + /delete-node/ reg_m2_pwr; + /delete-node/ reg_slot_pwr; + /delete-node/ レギュレータ-m2-pwr; + /delete-node/ レギュレータスロット電源; }; &reg_can1_stby { @@ -48,11 +60,40 @@ &reg_aqr_en { gpio = <&i2c7_pcal6524_23 21 GPIO_ACTIVE_HIGH>; }; +&reg_pcie0 { + /delete-property/ vin-supply; + gpio = <&i2c7_pcal6524_23 18 GPIO_ACTIVE_HIGH>; +}; + +&pcie0 { + リセットgpio = <&i2c7_pcal6524_23 17 GPIO_ACTIVE_LOW>; +}; + +&pcie1 { + /delete-property/ vpcie-supply; + リセットgpio = <&i2c7_pcal6524_23 16 GPIO_ACTIVE_LOW>; +}; + +&pcie1_ep { + /delete-property/ vpcie-supply; +}; + &reg_serdes_en { vin-supply = <&dummy_reg>; gpio = <&gpio4 28 GPIO_ACTIVE_LOW>; }; +&usdhc3 { + pinctrl-names = "default"; + ピンctrl-0 = <&pinctrl_usdhc3>; + mmc-pwrseq = <&usdhc3_pwrseq>; + vmmc-電源 = <&reg_pcie0>; + バス幅 = <4>; + 電源を停止したままにします。 + 取り外し不可。 + ステータス = "正常"; +}; + &enetc_port1 { pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_enetc1>; @@ -161,4 +202,15 @@ pinctrl_pwm_3_dsi_hpd_gpio: dsihpdgrp { IMX95_PAD_GPIO_IO12__GPIO2_IO_BIT12 0x31e >; }; + + pinctrl_usdhc3: usdhc3grp { + fsl、ピン = < + IMX95_PAD_SD3_CLK__USDHC3_CLK 0x158e + IMX95_PAD_SD3_CMD__USDHC3_CMD 0x138e + IMX95_PAD_SD3_DATA0__USDHC3_DATA0 0x138e + IMX95_PAD_SD3_DATA1__USDHC3_DATA1 0x138e + IMX95_PAD_SD3_DATA2__USDHC3_DATA2 0x138e + IMX95_PAD_SD3_DATA3__USDHC3_DATA3 0x138e + >; + }; -->8 リポジトリhttps://github.com/nxp-imx/mwifiex/からドライバをコンパイルします。タグ lf-6.6.3-1.0.0で、 mlan.ko moal.koをターゲットディレクトリ /usr/lib/modules/6.6.3-gccf0a99701a7/updates/ にコピーします。 https://github.com/nxp-imx/imx-firmware.gitからタグ lf-6.6.3-1.0.0のファームウェアを取得し、 sduart_nw61x_v1.bin.se をターゲットディレクトリ /lib/firmware/nxp/ にコピーします。 ターゲットにモジュールをロードするには 8<-- root@imx95-19x19-lpddr5-evk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf drvdbg=0x7 [..] [ 2690.237289] NXP 802.11 アダプタ uap0 を登録 [ 2690.250018] NXP 802.11 アダプタ wfd0 を登録 [ 2690.254421] wlan: バージョン = SDIW612---18.99.2.p66.17-MM6X18437.p3-GPL-(FP92)-dbg [ 2690.267643] wlan: バスドライバへの登録が完了しました [ 2690.272323] wlan: ドライバが正常にロードされました [..] --->8 新しいネットワーク インターフェースmlan0、uap0、wfd0が作成されます。 チケットを閉じることができます。 これが役に立つことを願います。 よろしくお願いします。
查看全文
无法安装S32K3xx开发包和FreeMASTER串行通信驱动程序版本1.3.0 我已经收到了S32K3X4EVB-T172。 问题 1 :当我尝试安装 S32DS 3.5.9 时,我无法通过SW32_S32DS_3.5.9_D2312.zip安装S32K3xx 开发包,仅显示S32 Design Studio 平台包和S32 Design Studio 平台工具包。 2.获取软件:2.2 安装S32K3xx开发包 打开关于 S32 平台的 S32 设计工作室对话框(菜单 → 帮助 → 关于 S32 平台的 S32 设计工作室)显示以下内容: 面向 S32 平台的 S32 设计工作室 版本:3.5 版本号:231219(更新 9) 问题 2 :我已经在步骤“2.4获取运行时调试工具”,但我无法在S32DS 扩展和更新对话框(菜单 → 帮助 → S32DS 扩展和更新)上安装“FreeMASTER 串行通信驱动程序版本 1.3.0”。 错误信息如下: 操作详情 正在安装的软件:com.nxp.s32ds.s32k3.sdk.freemaster.feature.feature.group 1.3.0.202312191400缺少要求:com.nxp.s32ds.s32k3.sdk.freemaster.feature.feature.group 1.3.0.202312191400 需要“org.eclipse.equinox.p2.iu;com.nxp.s32ds.s32k3.dev.feature.feature.group 1.0.0”但找不到。 安装详情: 软件包:适用于 Arm 嵌入式处理器 12.1 Build 1702 的 GDB 客户端;版本:1702;构建 ID:202309251304 软件包:S32 Design Studio 平台软件包;版本:3.5.9;版本号:202312191958 软件包:S32K3 RTD AUTOSAR R21-11 版本 3.0.0;版本:3.0.0;版本号:202303311831 软件包:S32K3.P01 RTD AUTOSAR R21-11 版本 3.0.0;版本:3.0.0;版本号:202304031555 软件包:GNU ARM PEMicro 接口调试支持;版本:5.1.7;版本号:202112141853 软件包:S32 Design Studio 平台工具包;版本:3.5.9;版本号:202312191958 软件包:NXP GCC for Arm Embedded Processors Build 1620;版本:1620;版本号:202005201521 软件包:S32 Design Studio Debugger Core;版本:3.5.9;版本号:202312191723 回复:无法安装S32K3xx开发包和FreeMASTER串行通信驱动程序版本1.3 我已经安装了FreeMASTER 1.3.0 RTM (FMASTERSW32.exe),之后我从 SW32K3xx_S32DS_3.5.0_D2303.zip 安装了 S32K3xx 开发包(从以前的版本 S32DS 3.5.3 上传)。
查看全文
S32K3xx FlexCAN 传统和增强型 RXFIFO DMA 我正在研究 S32K344 FlexCAN,在使用 FlexCAN 时我遇到了一些问题。 1.DMA在S32K344中实际上是如何工作的?以及如何使用它? 2. 如何将传统 FIFO 与 DMA 以及增强型 FIFO 与 DMA 集成 3. 使用 DMA 会产生什么后果?
查看全文
RT1052のSDRAMチップの交換に関する問題 私の RT1052 ボードは IS42S16160 32MB SDRAM を使用しており、完璧に動作します。しかし、IS42S16400 8MB SDRAMに交換した後、正常に動作しなくなりました。どのような設定を変更する必要がありますか? i.MX RT Re: Issues with Replacing SDRAM Chips on RT1052 わかりました。私の質問に対する答えをありがとうございます! Re: Issues with Replacing SDRAM Chips on RT1052 2 バンクまたは 8 列の SDRAM デバイス タイプはサポートされていません。 よろしくお願いします、 オマール Re: Issues with Replacing SDRAM Chips on RT1052 RT1052 は 8 ビットの row_addr をサポートしていますか?SEMC_SDRAM_COL8() は CAN ませんか? Re: Issues with Replacing SDRAM Chips on RT1052 sdramconfig 変数でデバイスの memsize を変更する必要があります。これは、2 つの違いがサイズのみであるCASEです。タイミングにさらに違いがある場合は、データシートの仕様に従って残りのパラメータを調整する必要があります。 両方のピン配置は似ていますか? よろしくお願いします、 オマール
查看全文
PCA9539 RESET 问题取决于 I²C 连接状态 你好 我正在使用 PCA9539 I/O 扩展器,遇到了意外的 RESET 问题,这似乎取决于 I2C 连接状态。 问题如下: 我通过 I²C 通信将 PCA9539 的所有输出端口配置为高电平。 输出引脚按预期保持高电平。 但是,当我移除 SDA/SCL 探头(用于监控 I2C 总线)时,PCA9539 似乎 RESET 了——输出引脚恢复到默认状态。 在此过程中,VCC 保持稳定,持续供电,RESET 引脚通过上拉电阻器保持高电平。 MCU 没有故意发出 RESET 信号或电源重启 其他说明: 在相同的测试条件下,PCA9538 没有出现这个问题。 存在 I2C 上拉电阻。 电源稳定,可与电容解耦。 RESET 引脚在事件期间未显示异常活动。 我怀疑,断开探测器连接时出现故障或启动/停止状态不完整可能会导致 PCA9539 的内部 I2C 状态机进入故障状态,从而导致类似RESET的行为。但是,我没有找到任何文件可以确认 PCA9539 是否可以在不明确 RESET 或重新通电的情况下清除其输出寄存器。 据我所知,就 I2C I/O 扩展器而言,只要有电源供应,无论是否连接了 I2C 探头,它都应保持其配置。您能确认这种理解是否正确吗? 问题 在任何情况下,PCA9539 可以在没有 RESET 引脚断言或电源循环的情况下 RESET 其输出寄存器或 I2C 逻辑? 拆除探头期间 SDA/SCL 出现的故障是否会导致设备进入故障状态并丢失其配置的输出? 既然 PCA9539 和 PCA9538 的功能相似,为什么 PCA9539 会出现这种行为,而 PCA9538 却不会? 不管 I²C 总线连接如何,只要有电源,I2C I/O 扩展器都应保持其配置,这是否正确? 如果您对此行为有任何见解或官方文件,我们将不胜感激。 谢谢!
查看全文
ADC startup time for S32K3 I'm using S32K3 ADC, and my test found that it takes about 30ms from powering up to initialize the ADC, performing calibration, turning on conversion, and completing the acquisition for the first time, is this normal? How to shorten this time? Re: S32K3的ADC启动时间 Hi RTD Quality packages的ProfileReport.xlsx列了各个APIs的执行时间。 (比如...\SW32K3_S32M27x_RTD_R21-11_5.0.0 _D2410_QualityPackage\ADC\RTD_ADC_ProfileReport.xlsx) 建议检查一下具体是哪个函数的执行时间过长导致的。 另外请问Adc_Calibrate的返回结果是什么?如果超时了的话,建议修改超时设置: Best Regards, Robin ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "ACCEPT AS SOLUTION" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
查看全文
S32K314 HSE ADKP こんにちは、NXP ADKP(UID多様化によるHSE静的パスワード)機能を開発しています。質問が2つあります。 1、ADKP パスワードを設定するためにインターフェース HSE_ProgramAdkp() を呼び出すと、応答は HSE_SRV_RSP_OK です。HSE_CalculateAdkpHash() を実行した後、インターフェース HSE_ReadAdkp() を呼び出すと、今度は応答が HSE_SRV_RSP_NOT_ALLOWED です。なぜかわかりません。 2、JTAG セキュア デバッグが有効になっている場合、消去して再プログラムしたいです。この時点では、最初に S32DS PE デバッグまたは Trace32 を使用して JTAG のロックを解除し、次に Jlink を使用して対応する操作を実行することしかできませんか?CANロック解除プロセスはプログラムフラッシュ内で実行できますか? ご返信をお待ちしております! よろしくお願いいたします! Re: S32K314 HSE ADKP ご返信ありがとうございます! 1、これは「S32K3_HSE_DemoExamples_1_0_0」、具体的にはそのファイル内のS32K344_DemoAppTemplateに基づいています。 Re: S32K314 HSE ADKP 1) これはどのサンプルコードに基づいていますか? 2) 決してそうではありません。セキュア デバッグを適用すると、リセットのたびにパスワードを入力する必要があり、永続的なロック解除はできなくなります。これはデバッガーでサポートされる必要があります。私は PeMicro と TRACE32 を認識しています。Segger については、サポートに問い合わせてください。サポートされているかどうかはわかりませんが、次のThreadではサポートされていないと言われています。 https://community.nxp.com/t5/S32K/s32k3-secure-debug-interface/mp/1954589
查看全文
小さな非セキュアパーティションとセキュアパーティションを持つmcuboot用のファームウェアを生成する こんにちは、 このテストには frdm_rw612 ボードを使用しています。私の IDE は、MCUxpresso プラグインを備えた vscode です。私はファームウェアを「mcuboot 対応」になるようにコンパイルしようとしています。つまり、それを使用して OTA を実行できるようにしたいと考えています。 まず、このチュートリアルに従いました: https://community.nxp.com/t5/Zephyr-Project-Knowledge-Base/Zephyr-app-with-MCUboot-in-VS-Code/ta-p/2089541 期待通りに動作しています。現在のパーティション構成は、boards\nxp\frdm_rw612\frdm_rw612_common.dtsi ファイルで確認したとおりです。 partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; /* * Partition sizes must be aligned * to the flash security sub-region size of 128KB. */ boot_partition: partition@0 { label = "mcuboot"; reg = <0x00000000 DT_SIZE_K(128)>; }; slot0_partition: partition@20000 { label = "image-0"; reg = <0x00020000 DT_SIZE_K(640)>; }; slot0_ns_partition: partition@C0000 { label = "image-0-non-secure"; reg = <0x000C0000 DT_SIZE_M(3)>; }; slot1_partition: partition@3C0000 { label = "image-1"; reg = <0x003C0000 DT_SIZE_K(640)>; }; slot1_ns_partition: partition@460000 { label = "image-1-non-secure"; reg = <0x00460000 DT_SIZE_M(3)>; }; storage_partition: partition@760000 { label = "storage"; reg = <0x00760000 (DT_SIZE_M(57) - DT_SIZE_K(384))>; }; }; 私の理解では、hello-world の例は非常に小さいSO、小さな (640kB) セキュア パーティション内に収まります。 残念ながら、現在のファームウェア (Wi-Fi、Bluetooth など) で同じことを実行すると、パーティションがオーバーロードされるというメッセージが表示され、コンパイルできません。 [...]/arm-zephyr-eabi/bin/ld.bfd.exe: zephyr\zephyr_pre0.elf section `rodata' will not fit in region `FLASH' [...]/arm-zephyr-eabi/bin/ld.bfd.exe: region `FLASH' overflowed by 1682828 bytes 総括する: mcuboot をコンパイルしてフラッシュCAN。また、hello-world の例を正しくフラッシュすることもCAN (UART からこの hello-world アプリを正しくロードできることを確認できます)。一方、「大きな」ファームウェアをコンパイルすることはできません。 メインファームウェアが配置される非セキュア領域にのみジャンプする、最小限のセキュアパーティションを持つイメージを生成するにはどうすればよいでしょうか? FUTUREこの安全なパーティションを使用する予定なので、現在のパーティション構造を維持したいと考えています。 ありがとうございました。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、お元気ですか。 パーティションのサイズを変更する場合は、パーティションの場合と同様にオーバーレイ ファイルで行うことができますが、MCUboot が対象のパーティション内のイメージを認識できるように構造を維持する必要があります。 さらに、フラッシュ パーティションを共有して使用する場合、これは TF-M スタックで使用することを意図しており、TF-M スタックでも MCUboot をセキュア ブートローダーとして使用して、安全な環境でイメージを検証およびロードすることになるため、注意してください。 保護されたストレージの詳細については、Zephyr リファレンス ドキュメントの「Secure Storage」を参照してください。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition 少しは進歩しました。短期的な解決策として、frdm_rw612_common.dtsi ファイル内の slotx_partition を slotx_ns_partition と反転し、より大きなセキュア パーティションをコンパイルしてCAN使用します。 オーバーレイ ファイルでこれを変更すると、コンパイルはCANますが、実行時に mcuboot はイメージにジャンプできなくなります。mcuboot が生成されると、現在のプロジェクトではオーバーレイ ファイルが使用されないと思われます。 とにかく、セキュアなパーティションと非セキュアなパーティションの違いがよく分かりません。ファームウェア全体をセキュアパーティションに格納することには、何か欠点がありますか? このプロジェクトに PSA_protected_storage を追加する方法がまだわかりません。この機能を追加すると、どのパーティションがこの機能に使用されますか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 問題はあなたのサンプルと同じです。フラッシュ サイズ 640kB (デフォルトのセキュア パーティション サイズ) を超えるとすぐに、コンパイル時に次のエラーが発生します。 領域「FLASH」が15872バイトオーバーフローしました このsmp_svrサンプルにBTとUDPのサポートを追加すると、エラーが表示されます。 SO、私のこれまでの質問はすべて、私の問題を理解し解決するために残っています。 メインファームウェアが配置される非セキュア領域にのみジャンプする、最小限のセキュアパーティションを持つイメージを生成するにはどうすればよいでしょうか? これら両方のパーティションを処理するファームウェアを生成するにはどうすればよいでしょうか? psa_protected_storage を使用する場合、暗号化されたデータはどこに保存されますか?この機能を使いたいです。 さらに、ファイル用のカスタムの不揮発性パーティションが必要になりますが、これは common.dtsi のパーティション テーブル定義の現在の storage_partition ですか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 MCUboot を使用して OTA を実行する必要がある場合は、「smp_svr」サンプルを使用することをお勧めします。このサンプルの主な目的は、MCUmgr プロトコルで使用するファームウェアの更新を行い、Bluetooth、UDP、UART などを介して更新を可能にすることです。このサンプルは MCUboot と連携して、適切に署名されたバイナリを確認し、MCU に更新します。 サンプルをテストするには、ファームウェアのアップデートを行うために MCUmgr クライアントをダウンロードする必要があり、最初に MCUboot を個別にビルドしてフラッシュし、次に smp_svr サンプルの prj.conf ファイルに必要なマクロを追加して smp_svr サンプルをビルドしてフラッシュする必要があります (これは、使用する OTA トランスポートによって異なります)。これが完了すると、システムは MCUmgr クライアントと適切に通信して、アップロードされたイメージのリストを確認し、新しいイメージをロードできるようになります。 MCUboot の新しい有効なイメージをロードするには、ロードするサンプルの prj.conf ファイルに次の構成を追加することをお勧めします。 CONFIG_HEAP_MEM_POOL_SIZE=2048 次のようにすると、サンプルをビルディングするだけで、MCUboot の有効な署名付きイメージを生成できます。 CONFIG_MCUBOOT_SIGNATURE_KEY_FILE=" /root-rsa-2048.pem" CONFIG_MCUBOOT_GENERATE_CONFIRMED_IMAGE=y CONFIG_BOOTLOADER_MCUBOOT=y これがあなたにとって有効であり、あなたの要件を満たしているかどうかを教えてください。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こちらの投稿を読みました: https://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/Zephyr-MCUBoot-TFM-Demo-using-RW612/ta-p/2047528 tfm 構造をより深く理解するために、「psa_protected_storage」サンプルもダウンロードしましたが、イメージをどのようにパーティション分割するかはまだよくわかりません。 たとえば、psa_protected_storage の場合、暗号化されたデータを保存するために使用されるパーティションはどれですか?それは「storage_partition」にありますか? 上記の投稿では、fw_storage パーティションについて言及しています。このパーティションはありませんが、Wi-Fi は使用できます。 最新のドキュメントはどこにありますか?何か特別なことをしようとしているわけではなく、mcuboot を使用して OTA を実行できるようにしたいだけですが、その方法を理解するための正しいドキュメントを見つけるのに苦労しています。 ご回答をよろしくお願いします。 アーサー Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 正直に言うと、分かりません。最初の投稿で述べたように、frdm_rw612 パーティション分散が推奨される方法であると思われるため、それに従うことにしました。 まだプロトタイプなので、現時点では安全な機能は使用していませんが、間もなく製品版に取り組む予定であり、後で問題になるような選択を今日はしたくありません。 FRDM_RW612 には、640kB のセキュア パーティションと 3MB の非セキュア パーティションがあります。 現在のアプリケーションのサイズは 2.3 MB です (最適化はまったく行われていません)。 これら両方のパーティションを処理するファームウェアを生成するにはどうすればよいでしょうか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、お元気ですか。 ご希望のパーティション配分をご確認ください。小さくて安全でないパーティションと大きくて安全なパーティションですか、それともその逆ですか?さらに、アプリケーションのサイズも共有していただけますか? いずれのCASEでも、各パーティション サイズ 128kB の配置を考慮して、オーバーレイ ファイルを使用してパーティション サイズを変更できるはずです。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition 親愛なるローマンへ 私の質問に答えてくれないので、完全に理解するのは困難です。 「ただし、構造を維持する必要があります」と言うとき、最初にセキュアなパーティションがあり、その後に非セキュアなパーティションがあることを意味しますか? このプロジェクトに PSA_protected_storage を追加する方法がまだわかりません。この機能を追加すると、どのパーティションがこの機能に使用されますか? メインファームウェアが配置される非セキュア領域にのみジャンプする、最小限のセキュアパーティションを持つイメージを生成するにはどうすればよいでしょうか? これら両方のパーティションを処理するファームウェアを生成するにはどうすればよいでしょうか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 ありがとう、よく理解できました。 このリンクはエンジニアリング チームによって作成されたものですか?https://community.nxp.com/t5/Wi-Fi-Bluetooth-802-15-4/Zephyr-MCUBoot-TFM-Demo-using-RW612/ta-p/2047528 それでも SDK をこのように変更する必要がありますか?「非セキュア イメージの変更」セクションで説明されているように、非セキュア イメージを変更できないためです。nxp_zephyr\zephyr\に「build」フォルダが存在しません さらに、frdm_rw612_rw612_ns.dts ファイルには、frdm_rw612_common.dtsi ですでに構成されているすべてのパーティションを削除する行があります。パーティション構造を維持するというアイデアには従いません。 とにかく、非セキュアボードを使用すると、ストレージパーティションを使用しているためコンパイルされず、/delete-node/行でストレージパーティションが存在しなくなります。 &w25q512jvfiq { /delete-node/ partitions; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; slot0_ns_partition: partition@080C0000 { label = "image-0-non-secure"; reg = <0x080C0000 DT_SIZE_M(3)>; }; /* This partition is reserved for connectivity firmwares storage * and shouldn't be moved. */ fw_storage: partition@400000 { label = "fw_storage"; reg = <0x400000 0x280000>; read-only; }; }; }; 「開発は独自で行う必要がある」とおっしゃるのは、TF-M を公式にサポートしていないということですか?それで、SDK を手動で変更する必要があるのですか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 はい、そのガイドは当社のエンジニアリングチームによってZephyrバージョン4.0.0で使用するために作成されました。ただし、おっしゃるとおり、それ以降のバージョン (現時点では 4.2.0 および 4.3.0) では、ガイドに示されている TFM の例に BL2 統合 (セキュア ブートローダとしての MCUboot) がデフォルトで含まれているため、このガイドは必要ありません。したがって、バージョン 4.2.0 ダウンストリームおよびアップストリーム、および 4.3.0 では、この機能はすでにサポートされています。 これで疑問が解消されることを願っています。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 わかりました。理解が深まりました。 frdm_rw612_rw612_ns.dts ファイルでこれを削除すると、tfm を使用してファームウェアをコンパイルできます。 &w25q512jvfiq { /delete-node/ partitions; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; slot0_ns_partition: partition@080C0000 { label = "image-0-non-secure"; reg = <0x080C0000 DT_SIZE_M(3)>; }; /* This partition is reserved for connectivity firmwares storage * and shouldn't be moved. */ fw_storage: partition@400000 { label = "fw_storage"; reg = <0x400000 0x280000>; read-only; }; }; }; パーティション ノードを削除する目的がわかりません。 とにかく、「tfm_merged.hex」をフラッシュすると、次のような出力が得られます: [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. bl2 は正常に起動しているように見えますが、その後何も起こりません。安全でないファームウェアが起動しません。 ファイル zephyr_ns_signed.hex もフラッシュしようとしましたが、結果は同じでした。 私がそう思うのは間違っているだろうか boot_partitionはbl2(mcuboot)があるパーティションです slot0_partitionはtfm(psa)のパーティションです slot0_ns_partitionはファームウェアのパーティションです   この安全でない構成は、sysbuild を有効にして mcuboot をビルドすることと互換性がないことを確認しますか?ここで説明されているように: https://community.nxp.com/t5/Zephyr-Project-Knowledge-Base/Zephyr-app-with-MCUboot-in-VS-Code/ta-p/2089541 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 TF-MとBL2を使ってアプリケーションをビルドしてフラッシュする際に、どのような手順を踏んでいるのか教えていただけますか?MCUbootのビルドにはsysbuildを使用していますか? さらに、パーティションはおっしゃるとおり、セキュア パーティションは TF-M のセキュア サービスをホストするためのもので、非セキュア パーティションは非セキュア アプリケーション用になります。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition sysbuild の場合: tfm用に変更したプロジェクトでsysbuildを有効にし、このCmake Extra Args SB_CONFIG_BOOTLOADER_MCUBOOT='y'を追加します。 「純粋なビルド」をすると、さまざまなものがコンパイルされます 最後にこのメッセージが表示される image.py: sign the payload image.py: sign the payload Usage: imgtool.py sign [OPTIONS] INFILE OUTFILE Try 'imgtool.py sign -h' for help. Error: Image size (0x1ed91c) + trailer (0x1b0) exceeds requested size 0xa0000 image.py: sign the payload Batch file failed at line 12 with errorcode 2 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 sysbuild を使用するとさらに悪くなります。これは、hello_world の例 (つまり、mcuboot もパーティション分割も使用しない) から作成した現在のプロジェクト (Wifi、Bluetooth、イーサネット などの多くの機能がすでに実装されている) で行っていることです。 デバッグ構成では、ボードを frdm_rw612 から frdm_rw612/rw612/ns に変更します。そして、DTC_OVERLAY_FILE='boards/frdm_rw612.overlay' を明示的に設定します(現在のプロジェクトで使用しているオーバーレイファイルと同じものを保持するため)。 prj.confに以下の内容を追加します 前回のメッセージでお伝えした内容をfrdm_rw612_rw612_ns.dtsファイルから削除します プロジェクトを右クリックして「選択したターゲットをフラッシュ」し、tfm_merged.hexを選択します。 prj.confに追加する内容 CONFIG_BUILD_WITH_TFM=y CONFIG_WIFI_NXP=y CONFIG_NXP_RW610=y CONFIG_ETH_DRIVER=y # stack size CONFIG_SHELL_STACK_SIZE=6144 CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=2048 CONFIG_NET_MGMT_EVENT_STACK_SIZE=4608 CONFIG_NET_TCP_WORKQ_STACK_SIZE=2048 CONFIG_MAIN_STACK_SIZE=4096 CONFIG_IDLE_STACK_SIZE=1024 コンソールに表示される内容: [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. 出力結果から判断すると、すでにブートローダーが存在するため、sysbuild を有効にしませんでした。 何が間違っているのか教えていただけますか? ご協力の程、よろしくお願い申し上げます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 私が何を間違っているのか教えてもらえますか?今週ファームウェアを公開するためには、解決策を見つけることが私にとって非常に重要です。 ご協力いただきありがとうございます Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 、遅くなってごめんなさい。 BL2 を搭載した TF-M で基本ファームウェアを生成してみましたが、正常に動作しています。frdm_rw612_rw612_ns.dts ファイルから、ご指摘のセクションを削除する理由は理解できますが、このオーバーレイはボードの非セキュア「バージョン」で TF-M が使用するパーティション構造を設定するものであるため、この手順は必須です。これを削除すると、互換性のない構造が生成され、アプリケーションが MCUboot の既知のアドレスにロードされない可能性があります。 プロジェクトで生成された dts ファイルを共有していただけますか?それとも、dts のパーティション セクションのスクリーンショットでしょうか?プロジェクト内の次のパスに配置する必要があります: debug/zephyr/zephyr.dts ご辛抱いただきありがとうございます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 申し訳ありませんが、まだ同じ質問があります。 1. sysbuild を有効にする (および SB_CONFIG_BOOTLOADER_MCUBOOT="y" を設定する) 必要がありますか? 2. prj.conf に追加している内容は正しいですか? 3. すべてがコンパイルされたら何をフラッシュする必要がありますか? パーティション ノードの削除を維持する必要があると言われています。次に、このシナリオにおける私の問題点は次のとおりです。 現在のファームウェアでは、common.dtsi で定義された storage_partition を使用しています。非セキュア構成を使用すると、すべてのパーティションが削除されるため、storage_partition が定義されなくなり、コードをコンパイルできなくなります。4. この非セキュア構成で storage_partition を使用するにはどうすればよいですか? common.dtsi で定義された同じパーティション構造を維持する必要があると明示的に述べられました。5. では、なぜ fw_storage パーティションは 0x400000 に配置されているのでしょうか?common.dtsi 構造を調べてみると、これは slot1_partition にあります。 6. ところで、この fw_storage パーティションとは何でしょうか?なぜ「標準」の安全な構成ではないのですか? あまり時間がないのは承知していますが、私の 6 つの質問にご回答ください。それが私の理解を深め、自立するのに役立ちます。 storage_partition と Wifi/BLE コネクティビティを使用して標準ファームウェアをコンパイルおよびフラッシュするための、ステップバイステップの TF-M と BL2 の例を共有していただければ完璧です。ありがとう PS: 現状では意味をなさないため、DTS のパーティション セクションは共有しませんでした。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 sysbuild を有効にする (および SB_CONFIG_BOOTLOADER_MCUBOOT="y" を設定する) 必要がありますか? いいえ、TF-M ビルド システムにはデフォルトで MCUboot が含まれているため、sysbuild を使用する必要はありません。 prj.conf に追加している内容は正しいですか? はい、観察してみると、ボードの非セキュア バージョン用のプロジェクトを作成するときに、「CONFIG_BUILD_WITH_TFM」がデフォルトで設定されます。 すべてがコンパイルされたら何をフラッシュする必要がありますか? それは状況によりますが、TF-M ビルド システム Zephyr ドキュメントのスクリーンショットには、生成された各ファイルのユーティリティに関する詳細な説明があります。 ただし、初めて使用する場合、MCUboot ブートローダ、TF-M セキュア イメージ、および非セキュア アプリケーションのマージを含む tfm_merged.hex ファイルをフラッシュする必要があることに注意してください。 この安全でない構成でストレージ パーティションを使用するにはどうすればよいですか? TF-M 構成のフラッシュ レイアウトではこのストレージ用のスペースが予約されているため、ユーザーは TF-M が提供する安全なストレージ サービスを使用することが予想されます。 ところで、この fw_storage とは何でしょうか? fw_storage パーティションは、Wi-Fi、BLE、および 802.15.4 ファームウェア ストレージ用に予約されています。 この情報があなたの開発に役立つことを願っています。ご辛抱いただきありがとうございます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 明日ファームウェアを公開しなければならないのですが、返信を期待できますか?それとも、まだあなたの側で準備ができていないので、プラン B を見つける必要がありますか? ご回答をよろしくお願いします。 アーサー Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 フィードバックありがとうございます。パーティション構造に関する質問には回答しませんでした 5. では、なぜ fw_storage パーティションは 0x400000 に配置されているのでしょうか?common.dtsi 構造を調べてみると、これは slot1_partition にあります。 1.この fw_storage は重要と思われますが、なぜ「セキュア」構成で言及されないのでしょうか? 2. このパーティションに必要なファームウェアを配置するには、何か特別な操作を行う必要がありますか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、お元気ですか。 ご質問にお答えすると、Wifi ファームウェアは自動的にロードされるものと予想されます。ただし、この問題については社内で確認中です。 ご辛抱いただきありがとうございます。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 コンパイルしてフラッシュしてみました(tfm_merged.hex)基本サンプル用。zephyr/samples/hello_world を使用すると次のようになります: [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. *** Booting Zephyr OS build nxp-v4.1.0-23883-g5fbcfde7cfc2 *** Hello World! frdm_rw612/rw612/ns SO、すべてが期待どおりに機能しているようです。 ただし、zephyr/samples/net/wifi/shell のような WiFi を使用する例を使用すると、ファームウェア (WiFi と BLE を使用) と同じ出力が得られます。 [INF] Starting bootloader [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [INF] PSA Crypto init done, sig_type: EC-P256, using builtin keys [INF] Image index: 1, Swap type: none [INF] Image index: 0, Swap type: none [INF] Bootloader chainload address offset: 0x20000 [INF] Image version: v0.0.0 [INF] Jumping to the first image slot Booting TF-M v2.2.0+g9a6c6f958 [WRN] This device was provisioned with dummy keys. This device is NOT SECURE [Sec Thread] Secure image initializing! [INF][PS] Encryption alg: 0x5500100 [INF][Crypto] Provision entropy seed... [INF][Crypto] Provision entropy seed... complete. したがって、問題の根本的な原因は Wi-Fi にあり、ファームウェア パーティションに関する私の質問に関連している可能性があります。Wifi と tf-m を使用してサンプルをコンパイルする手順を共有していただけますか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ 。 ホリデーシーズンのため、返答にかかるおおよその時間をお伝えすることはできませんが、何か分かり次第お知らせいたします。 ありがとう。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 ご協力いただきありがとうございます。到着予定時間はどれくらいですか?数日ですか、それとも数週間ですか? Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは@_arthur_ さん、ありがとうございます。あなたにとっても 2026 年が幸せな年になりますように! このマターに関して社内チームからの返答をまだ待っていますので、返答が届き次第お知らせします。 Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、ローマン。 2026年もNXPとあなたの成功を祈っています このトピックに関して何かニュースはありますか? ありがとうございました。 アーサー Re: Generate a firmware for mcuboot with a small non secure partition and a secure partition こんにちは、 @_arthur_ さん。この件についてお待たせして申し訳ありません。 ZephyrのWi-Fi ShellサンプルをTF-Mでビルドした際に、アプリケーションが正しく起動しないという問題が発生していた件について、prj.confファイルに以下の設定を追加してみてください。 # General CONFIG_HEAP_MEM_POOL_SIZE=122880 # TF-M S CONFIG_TFM_BL2=y CONFIG_BUILD_WITH_TFM=y CONFIG_TFM_PROFILE_TYPE_NOT_SET=y # Update the flash base address of ns image CONFIG_FLASH_BASE_ADDRESS=0x80C0000 # TF-M IPC CONFIG_TFM_IPC=y CONFIG_TFM_ISOLATION_LEVEL=2 # TF-M NS CONFIG_HWINFO=y # Networking (TF-M NS) CONFIG_NETWORKING=y CONFIG_NET_L2_ETHERNET=y CONFIG_NET_SOCKETS=y CONFIG_NET_DHCPV4=y CONFIG_NET_IPV4=y CONFIG_NET_TCP=y CONFIG_DNS_RESOLVER=y CONFIG_ETH_DRIVER=n CONFIG_WIFI=y # NXP Networking (TF-M NS) CONFIG_WIFI_NXP=y CONFIG_NXP_RW610=y CONFIG_NET_MGMT_EVENT_QUEUE_SIZE=20 CONFIG_NET_BUF_DATA_SIZE=1744 CONFIG_NET_SOCKETS_POLL_MAX=12 CONFIG_ZVFS_OPEN_MAX=30 CONFIG_PSA_CRYPTO_ENABLE_ALL=y これらの設定により、シェルアプリケーションが正常に起動するはずです。しかしながら、現在社内チームで確認中の動作として、「wifi scan」コマンドを使用するとアプリケーションがハードフォルト状態になるという問題があります。したがって、「wifi scan」の代わりに「nxp_wifi scan」コマンドを使用して、近くのネットワークをスキャンしてください。ただし、以下に示すように、デフォルトの「wifi connect…」コマンドを使用すれば、ネットワークに接続できるはずです。 これがあなたにとって有効かどうか教えてください。
查看全文
LPC11UXX外部アクティブレベル割り込み 皆様、 #LPC11U35BFD# mcu を使用するときに、アクティブ レベル割り込みに関する問題が発生しました。コマンドを使用してEx-Interruptモードを制御し、トリガーします 同様の初期化コードでは、エッジ (上昇または下降) 割り込みとレベル割り込みは正常に機能しますが、アクティブ レベル (高または低) 割り込みは機能しません。 割り込みモード(立ち上がり、立ち下がり、高レベル、低レベル)をスイッチするコマンドを使用します。 NVIC_DisableIRQ ( FLEX_INT0_IRQn ); LPC_GPIO_PIN_INT -> ISEL |= ( 1UL << 0 ); //レベルセンシティブ LPC_GPIO_PIN_INT -> CIENR |= ( 1UL << 0 ); //レベル割り込みを閉じる //これら 2 つの構成は 1 つだけを実行します。 LPC_GPIO_PIN_INT -> IENF |= ( 1UL << 0 ); //高レベル割り込みを有効にする LPC_GPIO_PIN_INT -> IENF &= ~( 1UL << 0 ); //低レベル割り込みを有効にする   LPC_IOCON -> PIO0_2 |= 0x10 ; LPC_GPIO_PIN_INT -> RISE |= ( 1UL << 0 ); LPC_GPIO_PIN_INT ->フォール|= ( 1UL << 0 ); LPC_GPIO_PIN_INT -> IST |= ( 1UL << 0 ); NVIC_EnableIRQ ( FLEX_INT0_IRQn );   何かご提案がありましたら、ぜひ教えてください。 LPC11xx Re: LPC11UXX External active level interrupt こんにちは@Andy2022 3 つの API が CAN 見つかる LPCopen をダウンロードしてください。 https://www.nxp.com/design/design-center/software/software-library/lpcopen-software-development-platform-lpc11xx:LPCOPEN-SOFTWARE-FOR-LPC11XX さらに、参考として GPIO 割り込みデモも用意されています。 よろしくお願いします。 BR アリス Re: LPC11UXX External active level interrupt こんにちは、アリス: 申し訳ありませんが、まだ 3 つの API を使用していません。Keil.LPC1100_DFP.1.4.1.packを使用したためコードをコンパイルするには Keil 環境 (Keil IDE なし) が必要だったSO、3 つの API を直接使用できませんでした。これらの API のソースコードを提供してもらえますか? また、ロジカルアナライザでレベルを観察しました。SO、ハイアクティブ割り込みが設定されているときはレベルが高くなると確信できました。 ありがとう。 BR、 アンディ Re: LPC11UXX External active level interrupt こんにちは@Andy2022 上記の3つのAPIを使ってみてはいかがでしょうか? また、ハイアクティブ割り込みが設定されている場合には入力信号がハイになっていることを確認してください。 BR アリス Re: LPC11UXX External active level interrupt こんにちは、Alice_Yangさん: ご返信ありがとうございます。 レベル割り込みは正常に動作します (High -> Low と Low -> High の両方が割り込みをトリガーします)。 ただし、高レベル割り込みまたは低レベル割り込みのみを設定しているため、対応する操作で割り込みをトリガーできません。 どうもありがとうございます。 BR、 アンディ2022 Re: LPC11UXX External active level interrupt こんにちは@Andy2022 ご質問ありがとうございます。 「レベル割り込みは正常に動作しますが、アクティブレベル(高または低)割り込みは動作しません。 」 ->> SO 申し訳ありませんが、レベル割り込みは機能しますか? それでも動作しない場合は、LPCopen の pinint デモを参照して、まずステータスをクリアし、次に割り込みを設定することをお勧めします。 /* チャネル割り込みをエッジセンシティブおよび立ち下がりエッジ割り込みとして設定します */ Chip_PININT_ClearIntStatus(LPC_PININT、PININTCH(GPIO_PININT_INDEX)); Chip_PININT_SetPinModeEdge(LPC_PININT、PININTCH(GPIO_PININT_INDEX)); Chip_PININT_EnableIntLow (LPC_PININT、PININTCH(GPIO_PININT_INDEX)); よろしくお願いします。   BR アリス
查看全文
eIQ Curriculum Documentation eIQ Machine Learning (ML) Software Development Environment Fact Sheet eIQ Toolkit User Guide-This link takes you to the eIQ web page on nxp.com. Once there, click on the Documentation tab or scroll down to the Documentation section This training currently covers the following areas: Getting Started with eIQ Includes in depth guides on how to get started on i.MX Applications Processors and Microcontrollers FAQs eIQ
查看全文
Example S32K312 ADC_IP Continuous Scan DMA S32DS36 RTD600 * ================================================================================================== * Detailed Description: * * This example shows how to implement ADC continuous scan with DMA read. * ADC1 is set to perform continuous scan of 4 channels (S10/S11/S12,S13) with DMA request enabled * for last channel S13. DMA reads respective sequential ADC data registers in one major loop. * * ADC1 channel S10 is connected to board's potentiometer, converted value is used to dim board's LED. * * ================================================================================================== * Test HW: S32K312EVB-Q172 * MCU: S32K312_172LQFP * Compiler: S32DS 3.6.3 * RTD release: S32K3_S32M27x Real-Time Drivers ASR R21-11 Version 6.0.0 * Debugger: On-Board Debugger (J40), Lauterbach * Target: Internal_FLASH * ==================================================================================================   Any support, information, and technology (“Materials”) provided by NXP are provided AS IS, without any warranty express or implied, and NXP disclaims all direct and indirect liability and damages in connection with the Material to the maximum extent permitted by the applicable law. NXP accepts no liability for any assistance with applications or product design. Materials may only be used in connection with NXP products. Any feedback provided to NXP regarding the Materials may be used by NXP without restriction.  
查看全文
Kinetis Lシリーズ・マイクロコントローラ:エネルギー効率化の基準 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis Lシリーズ・マイクロコントローラは 、新しいARM® Cortex-M0™+プロセッサの優れたエネルギー効率と使いやすさに加え、Kinetisの32ビット・マイクロコントローラ・ポートフォリオの性能、ペリフェラル・セット、イネーブルメント、拡張性を兼ね備えています。 Kinetis Lシリーズは、優れたダイナミック電流とストップ電流、優れた処理性能、幅広いオンチップ・フラッシュ・メモリ容量、広範なアナログ、コネクティビティ、HMIペリフェラル・オプションを組み合わせることで、パワークリティカルな設計を8ビットおよび16ビット・マイクロコントローラの制約から解放します。 Kinetis Lシリーズ・マイクロコントローラ は、ARM Cortex-M4ベースの Kinetis Kシリーズとハードウェアおよびソフトウェアとも互換性があり、より多くのパフォーマンス、メモリ、および機能の統合に向けたスケーラブルな移行パスを提供します。 Kinetis Lシリーズ・マイクロコントローラは、フリースケールのエネルギー効率の高い製品ソリューションです。 詳細については、Freescale.com\Lseriesをご覧ください。 Kinetis Lシリーズ・マイクロコントローラ Re:Kinetis Lシリーズ・マイクロコントローラ:エネルギー効率ベンチマーク <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetis Lシリーズとエネルギー効率ベンチマークは、FTF Americas 2012のステージでライブで紹介されました。 基調講演のデモ録音を確認してください。
查看全文
示例 MPC5744P PMC SW 触发自检 GHS614 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 本例演示了 PMC SW 触发的自检配置和执行 * ---------------------------------------------------------------------------------------------- * 测试硬件:MPC57xx * 掩模组:1N15P 和 0N15P * 目标:internal_FLASH * Fsys: 200 MHz PLL,带 40 MHz 晶振参考 * ******************************************************************************** 修订历史: 1.0 2016年4月4日 b21190(Vlna Peter)初始版本 1.1 2017 年 4 月 20 日 b21190(Vlna Peter)添加了软件 PMC 自检 ********************************************************************************************/ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: * 本例演示了 PMC SW 触发的自检配置和执行 * ---------------------------------------------------------------------------------------------- * 测试硬件:MPC57xx * 掩模组:1N15P 和 0N15P * 目标:internal_FLASH * Fsys: 200 MHz PLL,带 40 MHz 晶振参考 * ******************************************************************************** 修订历史: 1.0 2016年4月4日 b21190(Vlna Peter)初始版本 1.1 2017 年 4 月 20 日 b21190(Vlna Peter)添加了软件 PMC 自检 ********************************************************************************************/
查看全文
基于模型的设计工具箱电机控制示例 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 该视频显示: - 采用 S32K144 rev2.0 的电机控制典型设置评估板; - 用于 BLDC 电机控制的 Simulink 模型; - 如何设置 Simulink 为 S32K144 rev2.0 生成 ANSI C 代码单片机; - 快速浏览基于模型的设计工具箱; - 快速浏览 FreeMASTER 数据可视化工具; - 使用 DevKit S32K144EVB 和 MotorGD 屏蔽运行的电机控制示例; (在 “我的视频” 中查看) 视频库 回复:基于模型的设计工具箱电机控制示例 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 非常感谢! 回复:基于模型的设计工具箱电机控制示例 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢分享,但是 C 代码在哪里?
查看全文
CIT-N1924 MIFARE 超越票务——智慧城市的非接触式解决方案 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 过去几年,交通票务要求发生了重大变化——从交易安全到多应用需求以及将移动票务集成到现有环境的可能性。NXP 的 MIFARE ®产品始终能够满足这些要求,并作为提供便利性、灵活性和可扩展性的领先非接触式解决方案建立了良好的声誉。开放的 MIFARE 社区和生态系统由超过 1,000 个业务合作伙伴组成,其中包括应用程序开发商、服务和解决方案提供商、系统集成商和卡制造商。MIFARE DESFire EV2 是下一代 MIFARE IC,具有最高的硬件和软件安全级别(EAL5+ 通用标准认证)。其增强的密钥管理使其成为无限应用程序的理想多应用平台。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 过去几年,交通票务要求发生了重大变化——从交易安全到多应用需求以及将移动票务集成到现有环境的可能性。NXP 的 MIFARE ®产品始终能够满足这些要求,并作为提供便利性、灵活性和可扩展性的领先非接触式解决方案建立了良好的声誉。开放的 MIFARE 社区和生态系统由超过 1,000 个业务合作伙伴组成,其中包括应用程序开发商、服务和解决方案提供商、系统集成商和卡制造商。MIFARE DESFire EV2 是下一代 MIFARE IC,具有最高的硬件和软件安全级别(EAL5+ 通用标准认证)。其增强的密钥管理使其成为无限应用程序的理想多应用平台。 智能城市和智能基础设施
查看全文