Cortex-Mシリーズで開発経験があるエンジニアにとって、Cortex-R52は非常に魅力的な高性能プロセッサですが、アーキテクチャの違いから「どこから手をつければいいのか」と戸惑うことも少なくありません。
本記事では、Cortex-R52を使い始める際に押さえておくべき5つの重要ポイントを解説します。
1.Cortex-R52の情報収集とドキュメント
Cortex-Mと違い、Cortex-R52はデバイス(マイコン)のマニュアルにコアの詳細が載っていないことが一般的です。以下の3種類の英文マニュアルを使い分ける必要があります。
- Armv8-R Architecture Reference Manual Supplement: アーキテクチャ全体の概要
- Arm Architecture Reference Manual Armv8 (AArch32): 詳細な命令セットや動作
- Cortex-R52 Technical Reference Manual: R52固有の仕様
2.Cortex-MとCortex-R52の決定的な違い
Cortex-MからR52に移行する際、特に意識すべき違いを以下の表にまとめました。
|
項目 |
Cortex-M シリーズ |
Cortex-R52 |
|
命令セット |
T32 (Thumb) |
A32 (ARM) + T32 |
|
動作モード |
スレッド / ハンドラ |
8種類のプロセッサモード + 例外レベル(EL) |
|
システム設定 |
システム制御ブロック (SCB) |
コプロセッサ (CP15) |
|
メモリ |
内蔵フラッシュが一般的 |
内蔵フラッシュなし(外付け + RAM) |
|
割り込み |
NVIC (ベクタ割り込み) |
GIC (汎用割り込みコントローラ) |
注目ポイント:例外レベル (EL)
Cortex-R52には「例外レベル」という概念が導入されています。
- EL2 (ハイパーバイザ): リセット直後のモード。仮想化などを行わない場合でも、初期設定のために経由します。
- EL1 (OS/特権): 通常のRTOSやアプリケーションが動作するメインの階層です。
- EL0 (ユーザ): 非特権モード。
3.プログラミングの要:コプロセッサ(CP15)
Cortex-Mではレジスタに値を書き込むだけで設定ができましたが、Cortex-R52のシステム設定(キャッシュやMPUなど)にはコプロセッサ (CP15) へのアクセスが必要です。
アクセスには専用の組み込み関数(またはアセンブラ命令)を使用します。
- MRC: コプロセッサからレジスタへ読み出し
- MCR: レジスタからコプロセッサへ書き込み
注意点: コプロセッサの設定パラメータ(CRn, Opcode1等)は規則性が覚えにくいため、マニュアルの略称名で検索して確認するのが効率的です。
4.割り込み制御(NVICからGICへ)
Cortex-R52では、NVICの代わりにGIC (Generic Interrupt Controller) を使用します。
- 自動スタック退避がない: Cortex-Mと異なり、レジスタのスタックへの退避・復帰はソフトウェア(コンパイラ)で記述する必要があります。
- 共通の流れ: 割り込み発生 → イントIDを読み取る → 処理実行 → 終了レジスタにイントIDを書き込む(これを忘れると次の割り込みが入りません)。
5.実践:起動処理とシリアルフラッシュ(RZ/T2Mを例に)
Cortex-R52は内蔵フラッシュを持たないため、外付けのシリアルフラッシュから起動する「ブートシーケンス」の理解が不可欠です。
起動の3ステップ
- 内蔵ブートローダ: 電源ONで起動。シリアルフラッシュから「セカンダリーブートローダ (SSBL)」をRAMにコピー。
- SSBL: アプリケーション本体をRAM(または密結合メモリ)にコピーし、EL2からEL1へ遷移。
- アプリケーション: メイン処理の開始。
開発のコツ
最初はフラッシュへの書き込みを避け、内蔵RAMや密結合メモリ (TCM) でデバッグを行うことを強くお勧めします。クロック設定やピン設定をミスしても、電源を入れ直すだけで復帰できるため、開発効率が劇的に向上します。
まとめ:スムーズな開発のために
Cortex-R52は一見複雑ですが、例外レベルの遷移やコプロセッサの扱いさえ慣れてしまえば、Cortex-Mで培った知識の多くを活かすことができます。
まずはIAR Embedded Workbenchに含まれるサンプルプロジェクト(RZ/T2M用など)を動かし、実際のコードで例外レベルの遷移やGICの設定を確認することから始めてみてください。
さらに詳しく知りたい方へ:
IARシステムズでは、今回ご紹介した「RZ/T2M」を含む様々な評価ボードに対応したサンプルプログラムを提供しています。これらをベースに開発を始めるのが、成功への最短ルートです。
