Arm® Cortex®-R52 ソフトウェア開発トレーニングコース(オンライン)
- 日程:2026年02月26日(木)~ 2026年02月27日(金)
- 時間:9:00〜18:00 ※終了時間は進行状況により若干変動する可能性があります。
コースの概要
本コースはArmv8-RをベースとしたCortex-R52プラットフォームで動作するソフトウェアを開発するエンジニア向けに設計されています。
Armv8-Rアーキテクチャの概要、コード記述のポイント、例外処理、GIC、キャッシュ、TCM、MPU、ブーティングなどCortex-R52の制御に必要な基礎知識を学習していただけます。
このコースは2日間での開催となっています。
受講対象者
- Arm Cortex-R52コア向けの組込みソフトウェア開発時に必要な知識を習得したいソフトウェアエンジニア
履修条件
- マイコンについて基礎的な理解があること(メモリマップ、レジスタ、割り込み、内蔵メモリの概念等)
- Cプログラミングについて知識があること
- 組込みシステムのソフトウェアに関する基礎的な知識があること
オンライン開催にあたり
- Web会議サービス(Zoom)で開催します。
- ブラウザでのご参加は「Google Chrome」のみ対応しています。
※Google Chromeの使用ができない場合は、Zoomアプリのインストールが必要になります。
※Zoomのアカウントの取得は必須ではございません。
お申し込み方法
受付終了:2026年02月13日(金)18:00まで
受講料:120,000円(受講者1名様/税抜き)
下記コース名をクリックしてお申し込みフォームからお申込みください。
※同業者様等のお申し込みについてはお断りする場合もございます。
「Arm® Cortex®-R52 ソフトウェア開発トレーニングコース」
お支払方法
請求書はお申し込みいただいた講座の開催が確定した後、講座の開催月にお申込書に記載されたお申込者様宛にお送りいたします。
請求書に記載される期日(請求書の発行月末締め翌月末振込み)に受講料を弊社指定銀行へお振込ください。
(振込手数料は振込者がご負担下さい。)
支払い処理について上記の方法以外をご希望の場合、 Arm®トレーニング事務局までご連絡下さい。ご相談に応じます。
お問い合わせ先
Arm®トレーニング事務局
TEL : 03-6756-9405
E-mail: arm_training@dts-insight.co.jp
コース内容
Day 1 Armv8-Rアーキテクチャの概要とコード記述のポイント、例外処理とバリア
1 Armv8-R アーキテクチャ概要
- 1.1 R-profile:real-timeアプリケーション/Cortex-R52におけるArmv8-Rアーキテクチャ/Armv8-Rの新機能とは?/Cortex-R52の機能
- 1.2 レジスタ
Armv8-Rレジスタセット/PSTATE/浮動小数点とNEON/Armv8-RでのPCS - 1.3 例外モデル
Armv8-R 特権モデル/プロセッサモード/レジスタのバンク/例外の受付/ベクタテーブル/LR の補正/例外からリターンする命令 - 1.4 命令セット
命令セット - 1.5 メモリモデル
メモリモデル/メモリタイプ/データのアライメント/Armv8-R Memory Protection Unit - 1.6 コプロセッサ
コプロセッサ/CP15 レジスタの例 - 1.7 仮想化
Armv8-R の仮想化
2 Armv8-R ISA概要
- 2.1 始める前に…/なぜアセンブラを知る必要があるのか?/Armアセンブラファイルの書式
- 2.2 ロード/ストア
単一/ダブルのレジスタデータ転送/メモリのアドレッシング/プリ/ポストインデックスアドレッシング/複数レジスタのデータ転送 - 2.3 データ処理
データ処理命令/シフト/ローテート操作/柔軟性のある第2オペランド/定数をロードするための擬似命令/LDR= の例/乗算/除算/ビット操作命令/バイト反転 - 2.4 フロー制御
分岐命令/インターワーキング/0比較と分岐/参考: 条件コードとフラグ/If-Then/例:条件実行/Supervisor Call(SVC)/Hypervisor Call (HVC) - 2.5 その他の命令
コプロセッサ命令/PSR アクセス/その他の命令 - 2.6 DSP
DSP命令の概要/飽和演算とCLZ/飽和/SIMD - 2.7 新しいA32/T32 命令
A32/T32 での新しい命令
3 Armプロセッサ用Cコードの記述
- 3.1 パラメータの渡し方
パラメータの渡し方/4個以上のパラメータの渡し方/パラメータのアライメント - 3.2 浮動小数点リンケージ
浮動小数点リンケージ/浮動小数点リンケージの例 - 3.3 アライメント
グローバルデータの配置/非整列アクセス(Unaligned Accesses)/構造体のパック/構造体のアライメント/ポインタのアライメント - 3.4 コーディングの考慮点
ローカル変数のサイズ/除算/ベースポインタの最適化/"volatile"の使用
4 例外処理 Armv8-R
- 4.1 概要
Armv8-Rの新機能/例外処理の手順/Armレジスタセットとモード/例外のマスク/EL2ベクタテーブル/EL1ベクタテーブル/リンクレジスタの補正/EL1例外からの復帰/EL1例外からの復帰命令/Store Return State(SRS)-EL1のみ/Return from Exception(RFE)-EL1 のみ/ EL2 Exception Return(ERET)/例外の状態とエンディアン/Illegal Execution状態/低レイテンシ割り込み - 4.2 割り込み
4.2.1 割り込みハンドラ
単純な割り込み/単純な割り込みハンドラ/割り込みのプリエンプション/割り込みを再許可する際の問題/Change Processor State (CPS)/スタックの問題/多重割り込みハンドラの例
4.2.2 割り込みハードウェア
FIQ vs IRQ/割り込みコントローラ/Generic Interrupt Controller(GIC)/多重割り込みの例(GICv3) - 4.3 アボートハンドラ
プリフェッチおよびデータアボート/データアボートのタイプ/アボートソースの識別/データアボートハンドラの例 - 4.4 SVCハンドラ
スーパバイザコール(SVCs)の用途は?/OSにおけるSVCの使用例 - 4.5 HVC/トラップハンドラ
Hypervisor Calls(HVCs)は何のために使われるか?/Hypervisorトラップ/HVC/トラップハンドラの例/EL2への例外のルーティング - 4.6 未定義ハンドラ
未定義命令/未定義命令例外ハンドラの例 - 4.7 リセットハンドラ
リセット
5 バリアの理解 Armv8-R
- 5.1 メモリモデル/なぜアクセス順序が重要なのか?/バリア
- 5.2 データバリア
DMBvsDSB/DFB/DMB/DSB/異なるオブザーバ/DMBとDSBの修飾子/バリア修飾子/Mail boxの例/バリアをまたぐ投機/メモリマップされたペリフェラル/"一方通行"のバリア - 5.3 命令バリア
ISB/ISBの例/MPU変更の例/自己修正コード - 5.4 Armv8-Rのバリア
Armv8-Rのバリア
Day 2 GICプログラミングとキャッシュ、TCM、MPUおよびブーティングとCortex-R52の概要
6 GICv3プログラミング Armv8-R
- 6.1 GICv3 アーキテクチャ/凡例/GIC アーキテクチャ
- 6.2 割り込みとインターフェイス
割り込みタイプ/インターフェイス/GICアーキテクチャ/ディストリビュータ(GICD_XXXX)/リディストリビュータ(GICR_XXXX)/CPUインターフェイス(ICC_XXX)/レガシー操作 - 6.3 SPI, PPIおよび SGI 割り込みの設定
割り込みの設定/割り込みのコンフィギュレーションレジスタはどこにあるか?/GICv3におけるSPIルーティング-アフィニティレベル/割り込みのグループ/GIC有効化のチェックリスト/割り込みコンフィギュレーションのチェックリスト - 6.4 割り込みの取り扱い
割り込み状態/割り込みの応答/予約済みINTID/割り込みハンドラの終了時/プリエンプション/INTIDxの状態とは? - 6.5 ソフトウェア生成割り込み
SGI/SGI の送信 - 6.6 電力管理
電力管理 - 6.7 仮想化
GICv3での仮想化/GICv3の例
7 キャッシュとTCM Armv7/8-R
- 7.1 キャッシュの基礎
キャッシュとは?/キャッシュはコアからどのようにアクセスされるのか?/キャッシュはどのように登録されるのか?/ダイレクトマップキャッシュ/セットアソシエイティブキャッシュ/メモリアクセスの例/セットアソシエイティブキャッシュ-概要/用語 - 7.2 Armプロセッサのキャッシュ
キャッシュ付きArmマクロセルの例/4KB Armキャッシュの例/Armキャッシュの機能/L1データキャッシュポリシー/内部および外部のキャッシュポリシー/Write BackとWrite Through/L1メモリシステムバッファ/キャッシュ検出コード - 7.3 Tightly Coupled Memory(TCM)
結合メモリ(Tightly Coupled Memory:TCM)とは?/TCMの設定 - 7.4 最適化に関する考察
不確定なキャッシュ動作/キャッシュコヒーレンシ/コヒーレンシ操作/ニーモニック/Point of Unification(PoU)/Point of Coherency(PoC)/PoCとPoUに対するコアアーキテクチャの影響/何をキャッシュすべきか?/キャッシュ内蔵コアの最適化
8 Armv8-R Memory Protection Unitの使用
- 8.1 メモリモデル/EL1およびEL2のMPU
- 8.2 タイプ
メモリタイプ/メモリタイプ:ノーマル/メモリタイプ:デバイス/デバイスアクセスの順序/タイプの指定 - 8.3 属性
キャッシュ属性/共有属性/アクセスパーミッション/実行可能属性 - 8.4 アライメントとエンディアン
アライメント/Armv8-Rでのエンディアン - 8.5 Armv8-R MPU
Armv8-R Memory Protection Unit/MPU無効時/EL1および EL2のMPU/EL2のタイプ、属性、アライメントおよびエンディアン/EL2 MPUリージョンテーブル/属性の組み合わせ/トランザクションの最終属性/MPUの有効化
9 Cortex-R52プロセッサのブート
- 9.1 概要
ブーティングの考慮点/ベアメタルvsOS/ウォームvsコールドリセット/コールドブートプロセスの概要/ウォームブートプロセスの概要 - 9.2 シングルコアのブート
リセット状態/EL2ベクタテーブルの初期化/EL1より前に初期化されるEL2レジスタ/EL1ベクタテーブルの初期化/スタックの初期化/L1メモリの初期化/TCMからのブート/基本的なメモリシステムの初期化/MPU の初期化/VFP/NEONの初期化/I/DキャッシュとMPUのイネーブル - 9.3 クラスタのブート
クラスタのブート/クラスタブートに対する2つのアプローチ/SWクラスタブートプロセスの例/割り込みコントローラの初期化
10 Cortex-R52ソフトウェアエンジニアガイド
- 10.1 Cortex-R52 の概要
Cortex-R52の機能/Cortex-R52パイプライン/命令フェッチ/浮動小数点とAdvanced SIMDサポート/割り込み/低レイテンシSPI/汎用タイマ/デバッグ、モニタリングとトレース - 10.2 メモリシステム
メモリシステム/キャッシュとTCM/Level 2インターフェイス/AXIスレーブインターフェイス/2ステージのMPUとデフォルトメモリマップ - 10.3 セーフティ機能
セーフティ対策/リダンダント実行/Dual-Core Lock-Step(DCLS)/Split/Lock/メモリ上のECC/バス上のECC/ECCのエラーレポート/バスタイムアウト/イベント出力信号バス/システムエラー - 10.4 マルチプロセッシング機能
マルチプロセッサの概要/自身はどのCPUか?/キャッシュのコヒーレンシと分離/リセット時どのように見えるか/EL2未使用時のEL1でのブート