Arm® Cortex®-R4/M3 ソフトウェアトレーニング(オンライン)
- 日程:※オンラインにて開催致します
- UNIT1 :調整中
- UNIT2 :調整中
- 時間:9:00~18:00 ※終了時間は進行状況により若干変動する可能性があります。
コースの概要
※各UNIT単体での受講が可能です。
Arm Cortex-R4コアおよびArm Cortex-M3コアをベースにした組込みソフトウェアを開発する技術者向けに設計されています。
コースは2つのユニットから構成されており、習熟度や習得したい内容にあわせて、自由に組み合わせて御受講頂けます。
UNIT1 Arm Cortex-R4コース
Armの基本アーキテクチャを理解し、コンパイラ(Arm純正ツールをリファレンス)を使用して、効率の良い組込みプログラムを開発する手法を習得します。
Arm Cortex-R4コアの特徴を理解し、キャッシュ、TCM、MPU、例外処理を理解します。
マルチコアを利用するシステムを設計・開発時の注意点を習得します。
UNIT2 Arm Cortex-M3コース
Arm Cortex-M3コアの特徴を理解し、Armv7-Mのアーキテクチャ、例外、メモリシステムに関する知識を習得します。
受講対象者
Arm Cortex-R4/M3 を使用したシステムのソフトウェア開発を行う予定のあるソフトウェアエンジニア
履修条件
UNIT1、UNIT2:マイコンに関する一般的な知識 (既存のArmプロセッサの知識は問いませんが、あれば役に立ちます。)
オンライン開催にあたり
- Web会議サービス(Zoom)で開催します。
- ブラウザでのご参加は「Google Chrome」のみ対応しています。
※Google Chromeの使用ができない場合は、Zoomアプリのインストールが必要になります。
※Zoomのアカウントの取得は必須ではございません。
お申し込み方法
受付終了:調整中
受講料:UNIT1:50,000円 (受講者1名様/税抜き) UNIT2:50,000円 (受講者1名様/税抜き)
- 各UNIT単体での受講が可能です。
下記コース名をクリックしてお申し込みフォームからお申込みください。
※同業者様等のお申し込みについてはお断りする場合もございます。
お支払方法
請求書はお申し込みいただいた講座の開催が確定した後、講座の開催月にお申込書に記載されたお申込者様宛にお送りいたします。
請求書に記載される期日(請求書の発行月末締め翌月末振込み)に受講料を弊社指定銀行へお振込ください。
(振込手数料は振込者がご負担下さい。)
支払い処理について上記の方法以外をご希望の場合、 Armトレーニング事務局までご連絡下さい。ご相談に応じます。
お問い合わせ先
Armトレーニング事務局
TEL : 03-6756-9405
E-mail : arm_training@dts-insight.co.jp
コース内容
UNIT1 Arm Cortex-R4コース
1 Arm アーキテクチャイントロダクション Armv7-A/R
- 1.1 アーキテクチャバージョン
Arm アーキテクチャの開発経緯 / Arm Cortex プロセッサ - 1.2 レジスタと命令セット
データ サイズと命令セット / Arm レジスタセット / プログラムステータスレジスタ / 命令セット / アセンブラの書式 / AAPCS - 1.3 例外モデル
プロセッサモード / レジスタのバンク / 例外の受付 / ベクタテーブル - 1.4 メモリモデル
メモリモデル / メモリタイプ / キャッシュ内蔵Armマクロセルの例 / データアライメント - 1.5 コプロセッサ
コプロセッサ/CP15 レジスタの例/PMU - 1.6 アーキテクチャ拡張
浮動小数点とNEON / Large Physical Address Extensions / TrustZone / 仮想化 - 1.7 将来像
Armアーキテクチャの開発 / Armv8-Aの新機能とは? / Resources
2 C/C++ コンパイラヒントと情報 Arm® Compiler 5
- 2.1 基本的なコンパイル
言語サポート / サポートする変数のデータ型 / 最適化レベル / アーキテクチャ / プロセッサの選択 - 2.2 コンパイラの最適化
自動最適化/"volatile"の使用 / テイルコール最適化 / 命令スケジューリング / 定数表現の認識 / 関数のインライン化 / インラインの例 / ループの変形 - 2.3 コーディングの考慮点
コンパイラのレジスタの使用 / パラメータの渡し方 / ループの終了 / 除算 / リアルタイム除算 / コンパイル時に定数を使用した除算 / 剰余-モジュロ演算 / C++サポート - 2.4 ローカルおよびグローバルデータに関わる問題
変数のタイプ / ローカル変数のサイズ / グローバルなRW/ZI データ / グローバルデータの配置 / 非整列アクセス / 構造体のパック / 構造体のアライメント / ポインタの整列 / memcpy()の最適化 / ベースポインタの最適化
3 例外処理 Armv6,Armv7およびArmv8 AArch32
- 3.1 概要
例外処理の手順 / Arm®レジスタセットとモード / 例外優先順位 / ベクタテーブル / リンクレジスタの補正 / 例外からの復帰 / 例外からの復帰命令 / ステートの退避(SRS) / 例外からの復帰(RFE) / 例外ステートとエンディアン / マスク不可のFIQ割り込み / 低レイテンシ割り込み - 3.2 割り込み
シンプルな割り込みの例 / シンプルな割り込みハンドラ / 割り込みのプリエンプション / 再許可割り込みの問題点 / プロセッサステートの変更(CPS) / スタックの問題 / 多重割り込みハンドラの例 / FIQ vs IRQ / 割り込みコントローラ / ベクタ割り込みコントローラ / 汎用割り込みコントローラ(GIC) - 3.3 アボートハンドラ
プリフェッチおよびデータアボート / データアボートのタイプ / アボートソースの識別 / データアボートハンドラの例 - 3.4 SVCハンドラ
スーパバイザコール(SVC)の用途は? / SVCハンドラの例 / OSでのSVC使用例 - 3.5 未定義ハンドラ
未定義命令 / 未定義命令例外ハンドラの例 - 3.6 リセットハンドラ
リセット
4 メモリ保護ユニットの使用 Armv7-R
なぜメモリ管理が必要ですか? / キャッシュ内蔵Armマクロセルの例
- 4.1 タイプと属性
アクセスと実行のパーミッション / メモリタイプ/メモリタイプ-ノーマル / メモリタイプ-デバイス / メモリタイプ-ストロングリオーダー / v6とv7の違い / 命令アクセス - 4.2 メモリ保護ユニット(MPU)
メモリ保護ユニット / 保護領域 / MPU無効時
5 Arm Cortex-R4(F)ソフトウェアエンジニアガイド
- 5.1 概要
Arm Cortex-R4プロセッサ / Cortex-R4パイプライン / プログラムフロー予測 / 除算ユニット / 浮動小数点ユニット / FPUパイプライン - 5.2 レベル1メモリシステム
Armv7-RアーキテクチャのCortex-R4 / Level1メモリシステム / キャッシュの構成 / メモリプロテクションユニット(MPU) / デフォルトのメモリマップ / 密結合メモリ(TCM) / TCM設定
6 同期化 Armv7-A/RおよびArmv8 AArch32
アトミック操作の要求 / アトミック操作の競合 / クリティカルセクション/排他的ロード / ストア命令 / lock()の例 / unlock()の例 / スマートなプログラムのために / マルチスレッドでのmutexの例 / コヒーレントなマルチコア / クラスタ内での同期 / 非コヒーレントなマルチコア / メモリ属性 / コンテキスト切り替え / 排他モニタの単位
UNIT2 Arm Cortex-M3コース
1 Armv7-M プログラマモデル
- 1.1 イントロダクション
Armv7-M プロファイル概要 - 1.2 データタイプ
データタイプ - 1.3 コアレジスタ
Armv7-M プロファイルレジスタセット / 浮動小数点拡張レジスタ / プログラムカウンタ(PC) / リンクレジスタ (LR) / スタックポインタ(SP) / Program Status Register / 特殊用途レジスタ - 1.4 モード、特権、スタック
モードの概要 / 特権実行 / スタック - 1.5 例外
例外処理 - 1.6 命令セット概念
命令セット サポート / バイナリの上位互換性 / 命令セット例
2 Arm Cortex-M3_M4 概要
- 2.1 Arm Cortex-M3_M4 概要
Arm Cortex-M3/M4 プロセッサ / Arm Cortex-M3 & Arm Cortex-M4 特徴 / Arm Cortex-M4 / M-プロファイル 命令 / サイクルカウント/ 他のArmプロセッサとの違い / コアレジスタセット / プログラムステータスレジスタ / プロセッサ パイプライン / メモリマップ / ビット幅のメモリアクセス / ビットバンディング / モード、特権、スタック / メモリ保護ユニット (MPU) / 割り込みと例外 / 電力管理 / コア デバッグ / システムタイマ - SysTick / 実装オプション / Arm® Cortex®-M4 浮動小数点ユニット
3 Arm Cortex-M3/M4 マイクロアーキテクチャ
- 3.1 Arm Cortex-M3/M4 マイクロアーキテクチャ
プロセッサ ブロック図 / プロセッサ パイプライン / フェッチ ステージ / 最適化されたパイプライン / 分岐用語 / 分岐命令のパイプラインの例 / フラッシュ / 直接分岐先のプリフェッチ / フォールディング / LDR のパイプラインの例 / ライト バッファ / STR のパイプラインの例 / STR-STR のパイプラインの例 / 命令サイクルタイミング
4 Armv7-M 例外処理
- 4.1 イントロダクション
概要 / マイクロコード化された割り込みのメカニズム / 割り込みのオーバーヘッド - 4.2 例外モデル
例外のタイプ / プロセッサのモードの使い方 / 外部割込み / プリエンプション / 例外ハンドリングの例 / 例外のモデル / 例外のプロパティ / ベクタ テーブル / ベクタ テーブル オフセット レジスタ / リセットの動作 / 例外の動作 / 例外優先度の概要 / 例外の状態 - 4.3 割り込みのエントリと終了の挙動 / 優先順位付けと制御 / 割り込み感度
割り込み サービス ルーチン(ISR)の開始 / 割り込み時のスタッキング / 割り込みの開始タイミング / ReturnAddress 値 / 割り込みからのリターン / EXC_RETURN / NMI 例外開始の例/NMI 例外からのリターン例 / ネストの例 / テールチェインの例 / 後着の例 / 状態回復中に新しい割り込みが到着した場合 / 優先度のブースト / 割り込みのディセーブル(優先度のブースト) / 特殊用途のマスクレジスタ / 優先度をブーストする命令 / v7-M優先度のグループ分け / グループ優先度、サブ優先度の選択 / 割り込み制御とステータス ビット / 割り込みイネーブルレジスタ / 割り込みペンディング レジスタ / 割り込みアクティブレジスタ / 割り込みプライオリティ レジスタ / 割り込み感度 / パルス割り込み / レベル割り込み / 再び同じ割込みを保留 - 4.4 C/C++やアセンブリでのベクタテーブルと割り込みハンドラの記述
CMSIS-CORE: vector table / 割り込みハンドラの記述 / 割り込みの管理 - 4.5 内部例外とRTOSサポート
内部例外 / SysTickタイマ / SVC / SVCハンドラ / PendSV / 優先度エスカレーション / 内部割り込みレジスタ - 4.6 フォールト例外
v7-Mのフォールト例外 / フォールト エスカレーション / ロックアップ状態 / ロックアップ状態の動作 / ロックアップからの復旧/正確な(同期)例外 / 不正確な(非同期)例外 - 4.7 付録
割り込み終了時のタイミング / テールチェインのタイミング / 後着のタイミング / 割り込み合成のコアサイズへの影響 / Arm Cortex-Mプロファイル機能比較 / Cで記述するベクタテーブル / コンフィギュレーションおよび制御レジスタ(CCR)
5 Armv7-M メモリモデル
- 5.1 イントロダクション
イントロダクション - 5.2 メモリ アドレス空間
システム アドレス マップ / メモリ セグメント / アドレスマップ概要 / システムセグメント / Private Peripheral Bus (PPB) / System Control Space (SCS) / System Control Block (SCB) / SCB レジスタ概要 - 5.3 メモリ タイプと属性
メモリ タイプと属性 - 5.4 アラインメントとエンディアン
命令とデータ アライメント / エンディアン / エンディアン設定の影響 - 5.5 バリア
メモリバリア命令 / データメモリバリア ( DMB ) / データ同期バリア ( DSB ) / 命令同期バリア ( ISB ) / 例 / メモリバリアのさらなる使用 - 5.6 付録
アラインされたデータとアラインされていないデータ / アラインされていないアクセス / システムキャッシュ / キャッシュ ヒットとミス / リード アロケート / ライト アロケート / ライトバック キャッシング / ライトスルー キャッシング / Arm® Cortex®-M3/M4 ライトバッファ / 密結合メモリ(TCM) / ノーマル メモリ / ノーマル メモリ - 共有属性 / ノーマル メモリ - キャッシュ属性 / デバイス メモリ / デバイス メモリ - 共有属性 / ストロングリオーダ メモリ / メモリアクセスの順序は重要か? / メモリアクセス順序 / アクセス順序の制限
(※内容が一部変更になる場合がございます。その際はお申込みいただきました際にご案内申し上げます。)