Arm® Cortex®-M7 ソフトウェアトレーニングコース(オンライン2日)
- 日程:調整中
コースの概要
Arm®v7-M アーキテクチャをベースにしたプラットフォーム上でソフトウェアを開発するソフトウェアエンジニア向けのコースです。
Arm®v7-M アーキテクチャの基本とメモリシステム、メモリ保護や同期化に加え、Armv7-Mアーキテクチャの拡張機能に関する知識を習得でき、Arm® Cortex®-M7の特徴であるキャッシュに関する解説も行います。
Day 1
- Arm®v7-M プログラマモデル
- Arm® Cortex®-M7 概要
- Arm®v7-M 例外処理
- Arm®v7-M拡張機能
Day 2
- Arm®v7-M メモリモデル
- Arm®v7-M メモリ保護
- Arm®v7-M同期化
- Arm® Cortex®-M7 Level 1 サブシステム
受講対象者
- Arm® Cortex®-M7を使用したシステムのソフトウェア開発を行う予定のあるソフトウェアエンジニア
- マイコンに関する一般的な知識
- 既存のArm® プロセッサの知識は問いませんが、あれば役に立ちます。
オンライン開催にあたり
- Web会議サービス(Zoom)で開催します。
- ブラウザでのご参加は「Google Chrome」のみ対応しています。
※Google Chromeの使用ができない場合は、Zoomアプリのインストールが必要になります。
※Zoomのアカウントの取得は必須ではございません。
お申し込み方法
受付終了:調整中
受講料:120,000円(受講者1名様/税抜き)
お支払方法
請求書はお申し込みいただいた講座の開催が確定した後、講座の開催月にお申込書に記載されたお申込者様宛にお送りいたします。
請求書に記載される期日(請求書の発行月末締め翌月末振込み)に受講料を弊社指定銀行へお振込ください。
(振込手数料は振込者がご負担下さい。)
支払い処理について上記の方法以外をご希望の場合、 Arm®トレーニング事務局までご連絡下さい。ご相談に応じます。
お問い合わせ先
Arm®トレーニング事務局
TEL : 03-6756-9405
E-mail: arm_training@dts-insight.co.jp
コース内容
Day 1
1 Arm® v7-M プログラマモデル
- 1.1 イントロダクション
Arm®v7-M プロファイル概要 - 1.2 データタイプ
データタイプ - 1.3 コアレジスタ
Arm®v7-Mプロファイルレジスタセット/ プログラムカウンタ/ リンクレジスタ/ 浮動小数点拡張レジスタ/ スタックポインタ/ プログラムステータスレジスタ/ CONTROLレジスタ/ 特殊用途レジスタ - 1.4 モード、特権、スタック
モードの概要/ 特権実行/ スタック - 1.5 例外
例外処理 - 1.6 命令セット概念
命令セットサポート/ バイナリの上位互換性/ 命令セット例 - 1.7 プログラミング標準
Arm Procedure Call Standard/ Cortex Microcontroller Software Interface Standard/ CMSIS-Core の概要/ CMSIS-Core の例
2 Arm® Cortex®-M7 概要
- 2.1
Arm® Cortex®-M7プロセッサブロック図/ ブロック図-統合レベル/ アーキテクチャの特徴/ マイクロアーキテクチャの特徴/ パワフル&スケーラブルな命令セット/ コアレジスタ/ モード、特権とスタック/ メモリマップ/ メモリインターフェイス/ 密結合メモリ(TCM)/ DMAインターフェイス-AHB/ AHBペリフェラルポート(AHBP)/ AXIマスタ(AXIM)/ キャッシュ-概要/ キャッシュ-構造// パイプライン機能/ 割り込みと例外/ メモリ保護ユニット(MPU)/ 電力管理/ システムタイマ-SysTick/ コアデバッグ/ 浮動小数点ユニット/ ロックステップ/ 実装オプション
3 Arm® v7-M 例外処理
- 3.1 イントロダクション
概要/ マイクロコード化された割り込みのメカニズム/ 割り込みオーバーヘッド - 3.2 例外モデル
例外のタイプ/ プロセッサのモードの使い方/ 外部割込み/ プリエンプション/ 例外モデル/ 例外のモデル/ 例外のプロパティ/ 例外優先度の例/ Arm®v7-Mのベクタテーブル/ ベクタテーブルオフセットレジスタ(VTOR)/ リセットの動作/ /例外の動作/ 例外優先度の概要/ 例外の状態
3.2.1 例外のエントリと終了の挙動
例外エントリの動作/ 例外エントリ時のスタッキング/ 割り込みエントリ時のタイミング - Arm® Cortex®-M3/M4/ リターンアドレス値/ 例外からのリターン/ EXC_RETURN/ NMI例外エントリの例/ ネストの例/ テールチェインの例/ 後着の例/ ステート復元中に新しい割り込みが発生した場合
3.2.2 優先順位付けと制御
例外優先度と優先度の引き上げ/ 優先度の引き上げ例-PRIMASK/ 特殊用途のマスクレジスタ/ 優先度を引き上げる命令/ Arm®v7-M 優先度グルーピング/ グループ優先度/サブ優先度の選択/ 割り込み制御とステータスビット/ 割り込みイネーブルレジスタ/ 割り込みペンディングレジスタ/ 割り込みアクティブレジスタ/ 割り込みプライオリティレジスタ
3.2.3 割り込み感度
割り込み感度/ パルス割り込み-1パルス/ パルス割り込み-複数パルス/ レベル割り込み/ 同じ割り込みを再度保留する - 3.3 ベクタデーブルと割り込みハンドラの記述
CMSIS-CORE:ベクタテーブル/ 割込みハンドラの記述/ 割り込みの管理 - 3.4 内部例外とRTOSサポート
内部例外/ SysTickタイマ/ System Service Call (SVCall)/ SVCallハンドラ/ Pended system call (PendSV)/ 優先度エスカレーション/ 内部割り込みレジスタ - 3.5 フォールト例外
Arm®v7-Mのフォールト例外/ フォールトエスカレーション/ フォールト処理/ ロックアップの状態/ ロックアップ状態の動作/ ロックアップ状態の解除/ 同期例外/ 非同期例外
4 Arm® v7-M 拡張機能
- 4.1 拡張の概要
拡張の概要/ Arm® Cortex®-Mの拡張 - 4.2 DSP拡張
拡張の概要/ SIMD命令/ 飽和演算/ ASX命令/ SIMD乗算/ SIMD比較/ 乗算命令 - 4.3 浮動小数点拡張
浮動小数点拡張の概要/ Arm® Cortex®-M4/M7浮動小数点レジスタ/ FPUの有効化/ FPSCR/ 浮動小数点例外/ 浮動小数点命令/ 例外処理/ 浮動小数点のコンテキスト制御/ 拡張フレーム/ 基本スタックフレーム VS 拡張スタックフレーム/ Lazy コンテキストの保存
Day 2
5 Arm® v7-M メモリモデル
- 5.1 イントロダクション
イントロダクション - 5.2 メモリアドレス空間
システムアドレスマップ/ メモリセグメント/ アドレスマップ概要/ システムセグメント/ 専用ペリフェラルバス(PPB)/ システム制御空間(SCS)/ システム制御ブロック(SCB)/ SCBレジスタ概要 - 5.3 メモリタイプと属性
メモリタイプと属性 - 5.4 アライメントとエンディアン
命令とデータアライメント/ エンディアン/ エンディアン設定の影響 - 5.5 バリア
メモリバリア命令/ データメモリバリア(DMB)/ データ同期バリア(DSB)/ 命令同期バリア(ISB)/ 例1: メモリのリマップ/ 例2: 自己修正コード/ 例3: SLEEPONEXIT/ 例4: CONTROL レジスタ/ 例5・6: ベクタテーブル/ 例7: MPU プログラミング/ メモリバリアのさらなる用途
6 Arm® v7-M メモリ保護
- 6.1 メモリ保護概要
動機:なぜメモリ保護が必要か?/ デフォルトシステムアドレスマップ/ PMSAv7/ メモリ保護ユニット - 6.2 メモリリージョン
メモリリージョン概要/ PRIVDEFENA と HFNMIENA
6.2.1 リージョン属性制御
リージョン属性制御/ Type Extension, C, B および S のエンコーディング/ ノーマルメモリのキャッシュ属性/ アクセスパーミッション
6.2.2 リージョンのオーバーラップ
リージョンオーバーラップの概要/ オーバーラップしたリージョン例
6.2.3 サブリージョンのサポート
サブリージョン/ サブリージョン例 - 6.3 MPUの設定
SCSのMPUレジスタ/ MPUタイプレジスタ、制御レジスタ、リージョン番号レジスタ、リージョンベースアドレスレジスタ、リージョン属性とサイズレジスタ/ MPUエイリアスレジスタサポート/ MPUリージョンの設定/ MPUを有効化する/ MPUエイリアスレジスタの使用
7 Arm® v7-M 同期化
- 7.1 同期化とセマフォの概要
アトミック操作の必要性/ アトミック操作の競合/ クリティカルセクション - 7.2 排他アクセス
効果的なアトミック操作/ LDREX命令とSTREX命令/ lock() と unlock()の例/ スマートなプログラム/ マルチスレッドミューテックスの例/ 非コヒーレントなマルチプロセッサ/ メモリ属性/ コンテキストスイッチング/ 排他予約単位/ 例:マルチプロセッサミューテックス - 7.3 ビットバンディング
ビットバンディング/ 例: ビットバンディングミューテックス
8 Arm® Cortex®-M7 Level 1 サブシステム
- 8.1 Arm® Cortex®-M7プロセッサブロック図/ PPB L1 サブシステムに関連する領域
- 8.2 キャッシュ
8.2.1 キャッシュの基礎
キャッシュとは? / キャッシュはコアからどの様にアクセスされるか?/ キャッシュにはどの様に登録されるか? / ダイレクトマップキャッシュ/ セットアソシエイティブキャッシュ/ メモリアクセスの例/ セットアソシエイティブキャッシュ - 概要/ キャッシュに関する用語
8.2.2 Arm® Cortex®-M7 L1キャッシュ サブシステム
Arm® Cortex®-M7 L1キャッシュ概要/ 命令キャッシュ 2ウェイセットアソシエイティブ/ データキャッシュ 4ウェイセットアソシエイティブ/ L1 データキャッシュポリシー/ レベル2 キャッシュ/ キャッシングとメモリの属性/ 内部および外部キャッシュポリシー/ キャッシュコヒーレンシ/ L1 メモリシステムバッファ/ ストアバッファ (STB)/ キャッシュECC - 概要/ キャッシュ制御および識別レジスタ/ Point of Coherency (PoC)/ Point of Unification (PoU)/ キャッシュメンテナンス操作/ L1 キャッシュの初期化と有効化 - 8.3 Tightly Coupled Memory (TCM)
Tightly Coupled Memoryとは?/ Arm® Cortex®-M7のTCM/ 命令/データTCM制御レジスタ/ TCMのタイミング/ TCM ECC-概要 - 8.4 システムの考慮
キャッシュの識別コード/ 何をキャッシュすべきか?/ 不確定なキャッシュ動作/ キャッシュの最適化/ キャッシュECC-考慮点/ TCM ECC-考慮点