2406247_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2406247_ja-JP

2406247_ja-JP

SDKの例:フラッシュとLWIPハードフォールト

こんにちは、

「frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33」と「frdmimxrt1186_flexspi_nor_polling_transfer_cm33」という2つのSDK例を組み合わせると、「FLEXSPI_SoftwareReset(base);」という関数を実行した後に最終的にハードフォルトが発生します。また、「ベース」アドレス0x445E0000が変化することも確認しました。私はFRDM-RT1186 EVAキットを使用しています。これは何が原因でしょうか?

私はMCUXpressoIDE_25.6.136を使用しています。

フィードバックありがとうございます。

Re: SDK example flash and LWIP hard-fault

こんにちは、パブロさん。

連絡してくれてありがとう。

私はSDK 26.03.00(928 2026-03、Manifest バージョン3.15.0)を使っています。

「frdmimxrt1186_lwip_ipv4_ipv6_echo_freertos_cm33」から始めます。

これは特定の条件なしに、常に発生する現象です。

例「frdmimxrt1186_flexspi_nor_polling_transfer_cm33」からファイルをインポートします。

board/hardware_init_Flash.c
ドライバ/fsl_flexspi.C
ドライバ/fsl_flexspi.H
source/appFlash/flexspi_nor_flash_ops.c
source/appFlash/flexspi_nor_polling_transfer.c


board/app.h// これには app.h の両方が含まれています

source/lwip_ipv4_ipv6_echo_freertos.c // これには2つの関数呼び出しが含まれます。

int main(void)
ヤージュ
BOARD_InitHardware();
BOARD_InitHardware_Flash();

main_Flash();


void BOARD_InitHardware_Flash(void)
ヤージュ
BOARD_CommonSetting();
// BOARD_ConfigMPU(); // bord.c= identisch mit Lwip prj
// BOARD_InitBootPins(); // pin_mux.c「」
BOARD_InitFLASHPins();
// BOARD_InitBootClocks(); // clock_config.c「」
// BOARD_InitDebugConsole(); // board.c「」
}

int main_Flash(void)
ヤージュ
uint32_t i = 0;
status_t ステータス;
uint8_t vendorID = 0;

// BOARD_InitHardware_Flash();

...

1を返す。
/*
(1)
ヤージュ
}
*/

}


これで全部だと思います。

事前に感謝いたします。

ゲルト

Re: SDK example flash and LWIP hard-fault

こんにちは、 @GerdMartin さん

2つのSDKの例をどのように組み合わせたのか、もう少し詳しく教えていただけますか?
どのような変更が加えられましたか?

どの例を起点として使いましたか?

現在どのSDKバージョンを使っていますか?

また、FLEXSPI_SoftwareReset(base); を実行した後に最終的にハードフォルトが発生するとおっしゃっていましたね。この現象は、関数が呼び出されるたびに必ず発生しますか、それとも特定の条件下でのみ発生しますか?

よろしくお願いします、
パブロ

Re: SDK example flash and LWIP hard-fault

こんにちは、最新情報があります。例のflexspiからlinkscriptフォルダをコピーするのを忘れていました。今度は別のハードフォルト init lwip が発生しますが、flexspi init は正常に動作しています。

ゲルト


Re: SDK example flash and LWIP hard-fault

パブロさん、こんにちは。私の問題について何か情報をお持ちでしょうか?

どうもありがとうございます。

ゲルト

Re: SDK example flash and LWIP hard-faultこんにちは、SDKの別の例(lwip_dhcp)とflexSpiを組み合わせてテストを行いましたが、ランダム化hard_faultも出ます。それで、プロジェクトで問題があるんだ。もし、約1KBのデータをフラッシュメモリに保存する別の方法があれば、教えてください。
ゲルトさん、どうもありがとうございました。
Re: SDK example flash and LWIP hard-fault

こんにちは、 @GerdMartin さん

私はその現象を再現することができ、いくつかのテストを行った結果、以下のことが分かりました。

あなたが組み合わせた最初の2つの例では、flexspi_nor_polling_transfer_cm33はメモリ領域を消去して書き込みます。デフォルトでは、この例で使用されるリージョンは、結合されたプロジェクトイメージの一部です。

例がアクセスするセクターを計算できます。この場合、例はセクター20を使い、セクターサイズは4kです。

したがって、FlexSPIの例では、次のアドレスを変更します。

20 × 4k + FlexSPI2_AMBA_BASE = 0x4014000

main_FLASH()への呼び出し前後のメモリ内容を調べると、プロジェクトイメージの一部が上書きされていることがわかります。

Pablo_Ramos_0-1787777815010.pngPablo_Ramos_0-1787777815010.pngPablo_Ramos_0-1787777815010.pngパブロ_ラモス_0-1787777815010.png

Pablo_Ramos_1-1787777823697.pngPablo_Ramos_1-1787777823697.pngPablo_Ramos_1-1787777823697.pngパブロ_ラモス_1-1787777823697.png

FlexSPIの例で使われているメモリ領域を、プロジェクトのイメージと重複しないように変更できますか?

この変更を行った後も、問題は発生しますか?

よろしくお願いします、
パブロ

Re: SDK example flash and LWIP hard-faultありがとうございます、以上です。私は、定義EXAMPLE_SECTORを20から、結果オフセットが私のコードに含まれない値に変更しました。さあ、話を続けられます。
ゲルト
Tags (1)
No ratings
Version history
Last update:
2 weeks ago
Updated by: