1102995_ja-JP

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

1102995_ja-JP

1102995_ja-JP

SPIFI ライブラリを LPC4370 と共に使用する。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

このドキュメントでは、SPIFIライブラリバージョン1.03をLPC4370で使用するプロジェクトの作成方法について説明します。このためには、次のツールが必要になります。

  1. MCUXpresso IDE 10.2. Link
  2. LPC-LINK2は、LPC4370の評価ボードとして使用します。リンク
  3. 外部デバッガー。私の場合は、別のLPC-LINK2ボードを使用しました。
  4. LPC4370用のLPCOpen v2_12、このバージョンにはMCUXpresso IDEのインストールが付属しています。
  5. SPIFI ライブラリ v1.3。リンク
  6. コード例 lpcopen_2_12_lpcxpresso_ngx_xplorer_1830_SPIFI_v1.0。リンク

まず、必要なすべてのツールをダウンロードしてインストールします。

MCUXpressoのワークスペースに、LPC4370用のLPCOpen v2_12の (1) 3つのプロジェクト( periph_blinkylpc_board_nxp_lpclink2_4370lpc_chip_43xx)をインポートします。LPCOpen zip ファイルは、PC の次のパスにあります: C:\nxp\MCUXpressoIDE_10.2.1_795\ide\Examples\LPCOpen (2)

pastedImage_3.jpg

pastedImage_5.jpg

lpclibspifi_lpcxpresso_1.03_68という名前のzipファイルを抽出します以前にダウンロードしたもの。必要なフォルダは spifilib_m4fです。このフォルダをLPC4370のワークスペースのプロジェクトエクスプローラーにドラッグアンドドロップし、[コピー]を選択した後、プロジェクトエクスプローラーに spifilib_m4f が表示されます。

pastedImage_8.jpg

SPIFI ライブラリを正しくインポートしたら、プロジェクト エクスプローラー ウィンドウでライブラリ (1) を選択し、ビルド (2) します。これを行うと、Debug という新しいフォルダが表示されます (3)。

pastedImage_11.jpg

次に、 periph_blinky 例のプロパティを編集して、ライブラリ spifilib_m4f をプロジェクトに追加する必要があります。これを行うには、プロジェクトを右クリックして[プロパティ]をクリックします。

pastedImage_13.jpg

プロパティウィンドウで、C/C++ビルド (1) > 設定 (2) > インクルード (MCU Cコンパイラのセクションの下) (3)をクリックします。

pastedImage_15.jpg

インクルードウィンドウで、[追加...] をクリックします。 (1) >ワークスペース (2) > spifilib_m4f (3) >inc (4) >フォルダ選択ウィンドウでOK (5) をクリックし>ディレクトリパスの追加ウィンドウでOK (6) をクリックします。

pastedImage_17.jpg

インクルードパスには次のように表示されます。

pastedImage_19.jpg

次に、MCUリンカのセクションにあるライブラリ (1) オプションに移動し、ライブラリ(-I)のセクションで[追加]をクリックします。 (2) 最後にライブラリの名前(spifilib_m4f)( 3) を書き、[OK ](4)をクリックします。

pastedImage_21.jpg

[ライブラリ検索パス](-L)セクションで、[追加]をクリックします...(1) >ワークスペース (2) > spifilib_m4f (3) > デバッグ (4) > OK (5)

pastedImage_23.jpg

下の画像に示すように表示されている場合は、問題ないので、[適用]をクリックして閉じます。

pastedImage_25.jpg

以下の手順が正しく行われたかどうかを確認するために、次の手順を実行しましょう。プロジェクトperiph_blinkyファイルsystick.c内spifilib_api.h ファイルを含めますそして、プロジェクトをコンパイルします。プロジェクトが問題なくコンパイルされた場合は、spifi ライブラリを正しくインポートしたことを意味します。問題が見つかった場合は、停止して、前述のすべての手順を繰り返してください。

ライブラリを正常に追加したので、以前にダウンロードしたLPC1830の例の移行を開始できます。まず、 lpcopen_2_12_lpcxpresso_ngx_xplorer_1830_SPIFI_v1.0 ファイルを解凍します。ファイルを解凍したら、次のパスに移動します: spifilib_blinky >例>srcBlinky.cという名前のファイルを開きますをクリックし、ファイルのすべての内容をコピーします。次に、プロジェクトperiph_blinky内のMCUXpressoのワークスペースにあるsystick.cファイルに移動し、このファイルのすべてのコンテンツを削除して、前にコピーしたものを貼り付けます。この時点でコンパイルしないと、複数のエラーが表示されます。

pastedImage_27.jpg

PC spifilib_blinky >src>パス の例に戻ります。spifi_setup.cというファイルをドラッグアンドドロップしますワークスペース上のプロジェクトperiph_blinkyのフォルダsrcに格納します。

pastedImage_29.jpg

ワークスペースにコピーしたばかりのファイルを開き、コードの46行目に移動します。ここでは、後でSPIFIに書き込むために使用する64KBのバッファを作成しています。__BSS(RAM3)は、このバッファをメモリのRAMブロック3に保存することです。ここでの問題は、LPC4370内のRAM3のブロックが64KBのバッファを格納するのに十分な大きさではないため(下の画像を参照)、バッファを格納するのに十分な大きさのRAMまたはRAM2のいずれかにこれを変更しましょう。

pastedImage_31.jpg

spifi_setupファイルを追加したので、systick.cに戻りましょう。ファイルを作成し、関数 spifiSetUp の外部宣言を追加します。この時点で、プロジェクトをコンパイルすると、問題は発生せず、使用していない関数と変数による警告が表示されるだけです。

pastedImage_33.jpg

私たちはほとんど終わっていますが、最も重要なことを見逃しています。このデモでは、SPIFIメモリの書き込み、削除、および読み取りを行うため、SPIFIフラッシュメモリから実行することはできません。これを作成するすべての機能をRAMメモリに移動する必要があります。これが、systick.cファイルでSPIFIと直接対話する関数はありませんが、これにより、SPIFIメモリと対話するすべての関数をRAMに移動する作業がはるかに簡単になります。関数 spifiSetUp は、SPIFI ですべてのテストを行う関数であり、 spifi_setup ファイルに含まれているため、このファイル全体を SPIFI ライブラリと共に RAM に移動する必要があります。

3つの異なるスクリプトを使用して、ライブラリとファイルspifi_setup RAMに移動します。これについての詳細は、次のコミュニティ投稿で学ぶことができます: https://community.nxp.com/thread/389110.まず、 プロジェクトのフォルダ>新しい>フォルダを右クリックし、フォルダの名前は linkscriptsである必要があります。

pastedImage_35.jpg

前述のコミュニティ投稿の「特定のオブジェクトをRAMに再配置する」および「特定のライブラリをRAMに再配置する」のセクションによると、この新しいフォルダに3つのファイルを作成する必要があります: main_text。ldt、main_rodata.ldt、および main_data.ldt。これを行うには、新しい>ファイル>フォルダlinkscriptsを右クリックします。

pastedImage_37.jpg

作成したばかりの3つのファイルに必要なコンテンツは次のとおりです。太字のテキストはファイルに含まれないでください、それは参照用です!

File main_data.ldt

*libspifilib_m4f.a:(.text*)

*libspifilib_m4f.a:(.rodata.rodata.* .constdata.constdata.*)

*spifi_setup.o(.text*)

*spifi_setup.o(.rodata .rodata.* .constdata.constdata.*)

. = ALIGN(${text_align});

*(.data*)

ファイル main_rodata.ldt

*(EXCLUDE_FILE(*libspifilib_m4f.a: *spifi_setup.o).rodata)

*(EXCLUDE_FILE(*libspifilib_m4f.a: *spifi_setup.o).rodata.*)

*(EXCLUDE_FILE(*libspifilib_m4f.a: *spifi_setup.o).constdata)

*(EXCLUDE_FILE(*libspifilib_m4f.a: *spifi_setup.o).constdata.*)

. = ALIGN(${text_align});

ファイル main_text.ldt

*(EXCLUDE_FILE(*libspifilib_m4f.a: *spifi_setup.o).text*)

3つのファイルを使い終えたら、デモは完了です。デバッグ中に関数spifiSetUpの内部に入る場合は、関数内にブレークポイントを設定する必要があることに言及することが重要です。

デバッグ中は、関数 spifiSetUp を呼び出す前に SPIFI フラッシュ メモリから実行し、関数に入ると RAM メモリから実行していることがわかります。

pastedImage_38.png

pastedImage_40.png

デモを正常に実行すると、ターミナルに次のように表示され、LED1が点滅します。

pastedImage_45.jpg

このガイドがお役に立てば幸いです。

よろしくお願いいたします
ビクター。

LPC43xxペリフェラル
タグ(1)
評価なし
バージョン履歴
最終更新日:
‎01-05-2026 04:50 AM
更新者: