RT1176 を SDRAM と IS25WP128-JBLE QSPI 外部フラッシュを搭載したカスタム ボードで使用しています。
HMIをやっているのですが、フラッシュに画像を入れるにはフラッシュサイズが小さくなってきたので、フラッシュをIS25WP256D-JLLに変更しました。
コードがフラッシュサイズの50%未満の場合、すべて正常に機能していますが、「新しいセクター」の使用を開始すると、data_initにハードフォールトが発生します。
board.hでボードのフラッシュサイズを変更しましたboard.c の行
#if defined(XIP_EXTERNAL_FLASH) && (XIP_EXTERNAL_FLASH == 1)
/* Region 8 setting: Memory with Normal type, not shareable, outer/inner write back. */
MPU->RBAR = ARM_MPU_RBAR(8, 0x30000000U);
// MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_RO, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_16MB);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_RO, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_32MB);
#endif/*! @brief The board flash size */
#define BOARD_FLASH_SIZE (0x2000000U)また、MCU設定のサイズも変更しました。
たぶんcfxドライバーが無効ですか?
さらに手順を実行する必要がありますか?
ありがとうございました
今はうまくいっています。
新しいメモリデータシートに記載されているコマンドを使用して、evkmimxrt1170_flexspi_nor_config.cのlookupTableを変更する必要がありました。
ご回答をよろしくお願い申し上げます。
Hello EdwinHz,
私はサンプルコードを試しましたが、フラッシュサイズを変更すると、FLASHの上部で機能しているようです。
提供されているcustomLUTを使用してevkmimxrt1170_flexspi_nor_config.cのlookupTableを変更しましたが、まだ機能していません。
たぶん、私のプログラムはフラッシュの中間領域まで正常に機能していることを指摘することが重要です。メモリの使用率が 50% を超えると、失敗します。
私は4バイトアドレスを管理するための命令について考えていましたが、それはcustomLUTに含まれておらず、例はそれなしでも動作するようです。
Hi @daniJVV,
次のコミュニティ投稿で同僚が言及した推奨事項に従ってください: Re: iMX RT1062 with IS25WP365D-JLLE issue - NXP Community
彼は、考慮する価値のあるいくつかの発言に言及しています。また、彼が言及しているサンプルコードを試して、結果も教えてください。
BR,
Edwin.