サイト内検索

Silicon Labs EFM32:Lock Bit(LB)ページとは何ですか?(DLW, ULW, MLW, PLW)

EFx32

Lock Bit(LB)ページは、ユーザコード領域の外に配置された領域です。フラッシュメモリやUser Dataに対するリード/ライト/イレースを制限する機能を司っています。このLockBitを活用することで、悪意のある不正アクセスを回避することができます。

Article header lock%20bit%ef%bc%88dlw%2c%20ulw%2c%20mlw%2c%20plw%ef%bc%89%e3%81%a8%e3%81%af%e4%bd%95%e3%81%a7%e3%81%99%e3%81%8b%ef%bc%9f  1

Lock Bitは、DLW, ULW, MLW, PLWの4つの制御ビットで構成されています。

(1)Debug Lock Word (DLW) と、AAPレジスタによるデバイス消去

DLWは、デバッグピンとEFM32メモリの間のゲートに相当します。このゲートは、EFM32に書き込んだユーザファームウェアから、或いは外部のデバッグアダプタから、ロックすることが可能です。
ロックするには、ファームウェアもしくはデバッグアダプタから、0xF以外の値をDLW[3:0]にライトし、それからリセットを実行してください。いったんゲートがロックされると、フラッシュメモリは読み出せなくなります。AAPレジスタのみがアクセス可能です。
デバッグアダプタのみがゲートをアンロックすることができます。といってもデバッグアダプタはDLWに直接アクセスする訳ではなく、AAPレジスタを介してデバイス消去を行います。この際、以下が消去対象になります。

  • フラッシュメモリのメインブロック ⇒消去されます
  • UD(User Data)ページとDI(Device Information)ページ ⇒消去されません
  • 全てのLock Bit(DWL, ULW含む) ⇒消去されます
  • 全てのSRAM ⇒消去されます
Article header lock%20bit%ef%bc%88dlw%2c%20ulw%2c%20mlw%2c%20plw%ef%bc%89%e3%81%a8%e3%81%af%e4%bd%95%e3%81%a7%e3%81%99%e3%81%8b%ef%bc%9f2  1

(2)User data Lock Word (ULW)

ULWは、User Dataが、ライト/イレースされるのを妨げます。もしデバッグアダプタでアンロックした場合にも、User Dataは消去されずに読み出すことができます。
APPレジスタによるデバイス消去を行った場合には、ULWはリセットされます(ULW[0]=1)。User Dataは保持され、アクセス可能です。

(3)Page Lock Words (PLW)
PLWは、フラッシュメモリのメインブロックの特定ページが、ライト/イレースされるのを妨げます。リードに対してはプロテクトされていませんので、リードは行えます。
APPレジスタによるデバイス消去を行った場合には、PLWはリセットされます(PLW[n]=1)。フラッシュメモリのメインブロックは、PLWの値に依らず消去されます。

(4)Mass erase Lock Word (MLW)
ファームウェアによってフラッシュメモリを全消去することが可能になっています。それを防ぐにはMLW[0]をクリアしておきます。(MLW[0]=0)
APPレジスタによるデバイス消去を行った場合には、MLWはリセットされます(MLW[0]=1)。フラッシュメモリのメインブロックは、MLWの値に依らず消去されます。

SiliconLabsのコミュニティサイトも併せてご確認ください。

経験豊富なFAEが
無料でご相談を承ります。

特定製品の仕様からパーツの選定まで、当社のFAEが皆様のテクニカルなお悩みに無料で回答します。ぜひ、お気軽にご相談ください。