JAJA733 January 2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1227 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1305 , MSPM0L1306 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2228 , MSPM0L2228-Q1
MSPM0 MCU には、静的書き込み保護機能が実装されており、NONMAIN フラッシュ領域を実行時のプログラム / 消去操作からロックアウトできます。書き込み保護機能は、NONMAIN フラッシュ領域のブート・セキュリティ・ポリシーの一部として構成されます。
目的テキサス・インスツルメンツのデフォルトでは、NONMAIN 構成メモリ (ユーザー指定のブート・セキュリティ・ポリシーとブートストラップ・ローダ・ポリシーを含む) は書き込み保護の状態になっていません。これにより、プロビジョニング中にユーザーが NONMAIN を消去し、量産時に使用されるユーザー指定のポリシーで再プログラミングすることができます。
多くの場合、構成メモリはプロビジョニング後にロックするのが適切です。構成メモリをロックすると、セキュリティ・ポリシー、ブートストラップ・ローダ・ポリシー、静的書き込み保護ポリシーが、ブートストラップ・ローダまたはアプリケーション・コードによって不正に変更されるのを防止できます。ほとんどのアプリケーションでは、量産デバイスの構成メモリの変更は、デバイスのファームウェアが更新された場合でも必要ありません。
機能
保護するように構成した場合、NONMAIN 領域全体が書き込みロックされ、ブート構成ルーチンがブートストラップ・ローダまたは MAIN フラッシュ内のユーザー・アプリケーション・コードに実行を移行したときに、機能を変更することはできません。NONMAIN 領域をアプリケーション・コードまたはブートストラップ・ローダでプログラムまたは消去しようとすると、ハードウェア・フラッシュ動作エラーが発生し、セクタは変更されません。
静的書き込み保護は、アプリケーション・コードまたはブートローダによる変更は防止しますが、SWD インターフェイス経由で送信される工場出荷時リセット・コマンドは実行されます。この動作が望ましくない場合は、工場出荷時リセットを行う SWD コマンドを固有のパスワードを使用して保護するか、ディセーブルできます (SWD ポリシーを参照)。NONMAIN 構成メモリを変更する手段を完全に削除するには、工場出荷時リセット・コマンドとテキサス・インスツルメンツ FA (または SW-DP) をディセーブルする必要があります。