論理回路を勉強された方であれば知っているかもしれませんが、レジスタやフラグで用いられているフリップフロップの初期値は、電源投入時には不定です。1か0のどちらになるか決まっていないため、初期化する必要があります。
マイコンのレジスタやフラグは、仕様書で初期値が決められています。そこでクロックに同期しながら仕様書に記載されている値に初期化します。
例えば、STM32F429/439シリーズのSYSCFGペリフェラルモード設定レジスタ(SYSCFG_PMC)のリセット値は0x0000 0000なので、リセット期間中にクロックに同期しながら設定します(図4)
マイコンの内部論理回路では、ユーザーからは見えないさまざまなところでフリップフロップが使われています。これらのフリップフロップもリセット期間中に初期化されます。
オプションバイトとは、ハードウェアのオプション機能を設定するために、あらかじめマイコンのオプションバイト領域に準備されているレジスタです(図5)
オプションバイトの構成はマイコンによって異なりますが、一般的にはフラッシュメモリなどと同じ不揮発性メモリ上に作られ、フラッシュメモリにユーザープログラムを書き込む際にあわせて書き込みます。
オプションバイトの内容は、リセット期間中に不揮発性メモリからクロックに同期して読み出され、内部論理回路に反映されます。内部論理回路には、各オプションバイトに対応するレジスタが準備されており、オプションバイトの各ビットがコピーされます。この一連の動作が行われた後に、オプション機能が有効になります。
Copyright © ITmedia, Inc. All Rights Reserved.