消去されたフラッシュ ページを読み取ってハード フォールトが発生しないようにするために、Flash_VerifyErase() を使用しています。これは、PRINCE フラッシュ暗号化を有効にするまでは確実に動作していました。
何らかの理由で、Flash_VerifyErase() は PRINCE フラッシュの消去された領域を検出せず、読み取りを実行するとハード エラーが発生します。関数 Flash_read() は動作していないようです。SO、現状では Flash の読み取り中にハード フォールトが発生しないようにする方法がありません。
PRINCE 消去を検出するための別の機能はありますか?PRINCE が有効な場合にハード フォールトを防ぐにはどうすればよいですか?
私も同じ問題を抱えています。暗号化されたフラッシュページを安全に読むにはCANどうすればいいですか?
はい、これは LPC55S69、バージョン 1B シリコン用です。申し訳ありませんが、以前その情報を忘れてしまいました。
下記に添付したコードをご覧ください。コメント部分はフラッシュ読み取りを行うための推奨方法ですが、PRINCE が有効になっている場合、このコードセクションは機能しなくなります。PRINCE を有効にする前は、memcpy が存在する「else if」内にこのコメント ブロックがありました。
status_t status = FLASH_VerifyErase(&flash_instance, addr, PflashPageSize);
if(status == kStatus_Success)
{
memset(data, 0xFF, len);
return len;
}
else if(status == kStatus_FLASH_CommandFailure)
{
memcpy(data, (void*)addr, len);
}
else
{
return -1;
}
// status = FLASH_Read(&flash_instance, addr, data, len);
//
// if(status == kStatus_FLASH_EccError)
// {
// memset(data, 0xFF, len);
// return len;
// }
// else if(status != kStatus_Success)
// {
// return -1;
// }こんにちは、アレクサンダー
使用している部品番号を教えていただけますか?LPC55xxファミリを使用していますか?
とにかく、次のリンクからダウンロードできる AN12527.pdf と AN12527SW.zip を参照することをお勧めします。
まだ問題がある場合は、レビューできるようにすべてのコードを投稿してください。
BR
シャンジュン・ロン