SysTick、電力管理
SysTick機能を有効にするには、SysTick制御およびステータスレジスタを使用します。このレジスタのENABLEビットを1にすると、カウンタは動作をはじめます。つまり、カウンタにリロード値がロードされてから、カウントダウンが開始されます。
SysTick機能を有効にするには、SysTick制御およびステータスレジスタを使用します。このレジスタのENABLEビットを1にすると、カウンタは動作をはじめます。つまり、カウンタにリロード値がロードされてから、カウントダウンが開始されます。
Cortex-M3のメモリマップには、一般的なマイコンのメモリマップと若干異なる特徴があります。一般的なマイコンでは、メモリ領域を変更できるものもあります。しかし、Cortex-M3のメモリマップは定義されたメモリマップになっており、アドレス領域のマッピングは固定です。
Cortex-M3のベクタテーブルは0番地から始まります。一般的なマイコンは、ベクタテーブルの最小アドレス部(0番地)にはリセットベクタが割り当てられていますが、Cortex-M3ではメインスタック(SP_main)の初期値が割り当てられています。
NVIC(統合ネスト型ベクタ割り込みコントローラ)が持っている制御用レジスタを説明します。SysTick関係のレジスタもNVICレジスタに含まれますが、それらはSysTickの章で詳しく説明します。
Cortex-M3では、各割り込みの優先順位をユーザーが変更することができます。それも8段階や16段階ではなく256段階で設定することが可能です。設定には、割り込み優先度レジスタを使います。
Cortex-M3のマニュアルを読みますと、テールチェイン、横取り、後着という言葉が出てきます。例外処理優先順位によって発生する例外処理のタイミングを現す言葉です。各々の意味を簡単に説明すると以下のようになります。
例外のタイプには、リセット、割り込み、フォールトなどがあります。例外処理は突如として発生しますので、命令の実行に対し非同期で起こります。しかし、フォールトだけは、命令の実行によってエラー条件が発生したことによる例外ですので、原因となった命令に同期して発生することが基本です。
Cortex-M3には、エンディアンを設定するピンBIGEND (注意:マイコンのピンではありません。論理モジュールの外部との信号線の名前です)があります。これを使用するとリトルエンディアン、またはビッグエンディアン形式のいずれかを選択することができます。
Cortex-M3には特殊レジスタとして、「専用プログラムステータスレジスタ(PSR)」と呼ばれるプログラムの実行状態を示すレジスタがあります。専用プログラムステータスレジスタ(PSR)は、システムレベルのプロセッサステータスを表し、次の3つのカテゴリに分けられます。