2137966_ja-JP

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

2137966_ja-JP

2137966_ja-JP

LPC55SxxとPRINCE: フラッシュをチャンクで書き込み、ROM API経由でフラッシュを読み取る

ハイ

LPC55Sxx シリーズの PRINCE 機能に関していくつか質問があります。

1.マニュアルには、暗号化されたメモリすべてを一度に書き込む必要があると記載されています。しかし、ファームウェアのアップグレードを行う場合、ファームウェア全体をまず RAM に配置してからフラッシュにコピーする必要があるため、これは不可能ですよね?暗号化を使用するとページごとに消去したり書き込んだりすることはできないのでしょうか?

2. ROM API を使用する場合、暗号化されたメモリの読み取りは機能しないようです。FLASH_Read() 関数はゴミを返しますが、単純な memcpy() を実行すると正しく復号化されたデータが取得されます...

Re: LPC55Sxx with PRINCE: write flash in chunks, and flash reading via ROM API

こんにちは@keepcoding

以下のThreadをご覧ください。

https://community.nxp.com/t5/LPC-Microcontrollers-Knowledge/LPC55-Avoid-Crypto-Enabling-Discontinuou...

UM11126(49.16.1 機能詳細)によれば、各暗号領域には独自の SKEY と IV コードがあります。SKEY と IV は、暗号領域のサブ領域内のデータを暗号化または復号化するときに、PRINCE によって一緒に使用されます。

たとえば、PRINCE リージョン 1 の場合、消去操作を実行するたびに新しい Skey1 と IV1 が生成されるため、別のサブリージョンに対して消去/読み取り/書き込み操作を実行すると、古い IV1 と新しい IV1 が一致せず、PRINCE が正しく復号化できません。


BR

アリス

Re: LPC55Sxx with PRINCE: write flash in chunks, and flash reading via ROM API

通常の消去および書き込み機能を使用して暗号化された領域を埋める(データをチャンクごとに書き込む)簡単なテストを実行しました。これは問題なく動作しているようです。

SO、私は疑問に思います。なぜドキュメントには一度に書き込む必要があると記載されているのでしょうか?何か見ていないのでしょうか?これについてもう少し詳しく説明していただけますか?

Re: LPC55Sxx with PRINCE: write flash in chunks, and flash reading via ROM API

こんにちは@keepcoding

ご返信ありがとうございます。

当社の SDK デモも確認しましたが、確かにこれが制限事項です。

暗号化されたサブ領域全体が一度に書き込まれることを確認します。そうでない場合はエラーを返します。

Alice_Yang_0-1753436051456.png


BR

アリス


Re: LPC55Sxx with PRINCE: write flash in chunks, and flash reading via ROM API

わかりました。しかし、すべてのデータを一度に書き込むにはどうすればよいですか?書き込みたいデータの量はチップ上の使用可能な SRAM よりも大きいSO、「一度にフラッシュに書き込む」前にデータをどこに配置すればよいですか?

Re: LPC55Sxx with PRINCE: write flash in chunks, and flash reading via ROM API

こんにちは@keepcoding

  1. 暗号化の整合性を確保するには、すべてのデータを一度に書き込みます。
  2. FLASH_Read() は、PRINCE ハードウェア デコードを経由せずに物理的なフラッシュ データを直接読み取り、暗号化された「ガベージ」データを返します。memcpy() は CPU を介してメモリを直接読み取り、ハードウェア デコード メカニズムをトリガーする場合があります。

BR

アリス

Tags (1)
No ratings
Version history
Last update:
‎11-21-2025 08:28 AM
Updated by: