Arm® Keil® MDK を使用した Arm® マイコン入門講座
- 日程:開催準備中
- 時間:開催準備中
コースの概要
Arm® Cortex®-M3/M4コアをベースにしたプラットフォームでソフトウェアを開発するエンジニアのために作成されています。
Arm®v7-Mのアーキテクチャ、例外、メモリシステム、デバッグアーキテクチャに関する知識を講義で習得します。
また、このコースは、多くの動作例と、講義を補強するいくつかの実習が含まれています。
Arm®マイコンを使用して組込みソフトウェアを開発時に必要となる知識を習得することを目的とした講座です。
受講対象者
- Arm® Cortex®-M3/M4 を使用したシステムのソフトウェア開発を行う予定のあるソフトウェアエンジニア
- マイコン組込みシステムのソフトウェアに関する基礎的な知識があること
- C言語プログラミングに関して基礎的な知識があること
会場
東京会場(株式会社DTSインサイト 会議室)
東京都渋谷区代々木4-30-3 新宿MIDWESTビル6F
- JR線「新宿駅」南口より徒歩16分
- 京王新線「初台駅」より徒歩6分
- 小田急線「参宮橋駅」より徒歩10分
- 大江戸線「都庁前駅」より徒歩14分
お申し込み方法
「Arm® テクニカル・トレーニングコースのお申込について」
受付終了: コース開催の1週間前まで
定員: 16名
受講料: 90,000円(税抜き) ※昼食つき
お問い合わせ先
Arm®トレーニングセンタ
TEL : 03-6756-9405
E-mail : arm_training@dts-insight.co.jp
コース内容
1 Arm®v7-Mアーキテクチャの紹介
- 1.1 Arm®アーキテクチャ概要
Arm®株式会社について/Arm®ベースのシステム例/Arm®アーキテクチャの開発経緯/Arm®アーキテクチャプロファイル/データサイズと命令セット/Arm®コア命令セット/命令セットの例 - 1.2 Arm® Cortex®-Mアーキテクチャ詳細
Arm®v7-Mプロファイル相違点/Arm®v7-Mプロファイルレジスタセット/特権, モード, スタック/xPSR - プログラムステータスレジスタ/命令とデータのアラインメント/例外ハンドリング/命令セットサポート - 1.3 Arm® Cortex®-Mコア
Arm® Cortex®-M3プロセッサ/Arm® Cortex®-M4プロセッサ/命令パイプライン/最適化されたパイプライン/ 分岐命令のパイプラインの例/LDRパイプライン例/参考資料
2 Arm® Cortex®-M3/M4コア
- 2.1 はじめに
Arm® Cortex®-M3 ブロックダイアグラム - 2.2 プログラマーズモデル
レジスタセット/浮動小数点レジスタ/特殊用途レジスタ/APSR/IPSR/EPSR/xPSR - 2.3 パイプライン
パイプライン/フェッチステージ/最適化されたパイプライン/分岐の用語/分岐命令のパイプラインの例/フラッシュ/直接分岐先のプリフェッチ/フォールディング/LDR のパイプラインの例/ライトバッファ/STR のパイプラインの例/STR-STR のパイプラインの例/ - 2.4 メモリマップ
Arm® Cortex®-M3 メモリマップ - 2.5 ビットバンディング
Arm® Cortex®-M3 ビットバンディング - 2.6 システムタイマ
SysTickタイマ - 2.7 アライメントとエンディアン
整列なデータと非整列なデータ/非整列アクセス/エンディアンの設定/エンディアンの設定の影響 - 2.8 システム制御ブロック
設定、制御、割り込み、例外、デバッグ関連レジスタ
3 Arm®アーキテクチャ v7-M例外処理
- 3.1 概要
マイクロコード化された割り込みのメカニズム/割り込みのオーバーヘッド/状態の回復中に新しい割り込みが到着した場合 - 3.2 例外モデル
例外のタイプ/プロセッサ モードの使い方/外部割込み/プリエンプション/例外ハンドリングの例/例外のモデル/例外の優先度/ベクタテーブル/ベクタテーブルオフセットレジスタ/リセットの動作/例外優先度の概要/例外の状態 - 3.3 割り込み
割り込みサービスルーチン(ISR)の開始/割り込みでのスタック処理/割り込みの開始タイミング/EXC_RETURN/割り込みからのリターンタイミング/NMI例外開始の例/NMI例外からのリターン例/ネスティングの例/テイルチェイニングの例/テイルチェイニングのタイミング/後着の例/後着のタイミング/優先度のブースト/割り込みのディセーブル(優先度のブースト)/割り込みの禁止(PRIMASK)/優先度をブーストする命令/v7-M優先度のグループ分け/グループ優先度、サブ優先度の選択/割り込み制御とステータス ビット/割り込みイネーブル関連レジスタ/割り込み保留関連レジスタ/割り込みアクティブ関連レジスタ/割り込み優先度レジスタ - 3.4 C/C++やアセンブリでのベクタテーブルと割り込みハンドラの記述
Cで記述するベクタテーブル/アセンブリで記述するベクタテーブル/割り込みハンドラの記述/割り込みの管理 - 3.5 内部例外とRTOSサポート
内部例外/SysTickタイマ/SVC/SVCハンドラ/PendSV/内部の割り込みレジスタ - 3.6 フォールト例外
v7-Mのフォールト例外/フォールトエスカレーション/フォールトの処理/ロックアップ状態/ロックアップ状態の動作/ロックアップからの復旧/正確な(同期)例外/不正確な(非同期)例外 - 3.7 追加情報
割り込み合成のコアサイズへの影響/割り込みのトリガ方式/エッジ割り込み1パルス/エッジ割り込み 複数のパルス/レベル割り込み/構成制御レジスタ(CCR)/Arm® Cortex®-Mプロファイル機能比較
4 Arm® Keil® MDKマイクロコントローラ開発キットのインストールとUSBデバッグの準備
- 4.1 Arm® Keil® MDKマイクロコントローラ開発キットのインストール
- 4.2 USBデバッグ用ST-LINK/V2デバイスドライバのインストール
- 4.3 STM32 ST-Link utilityのインストール
5 Arm® Cortex®-M3/M4メモリシステム
- 5.1 メモリタイプ
メモリタイプと特性/ライトバッファ/メモリタイプ/デフォルトメモリタイプ/メモリバリア/メモリタイプとアクセス制限 - 5.2 メモリ保護ユニット(MPU)
メモリ保護ユニット(MPU)/メモリリージョン/リージョン追加情報/アクセス許可/オーバーレイ領域/サブリージョン/フォールトステータスとアドレスレジスタ
6 アセンブラプログラミングArm® v7-Mプロセッサ
- 6.1 イントロダクション
始める前に/なぜアセンブラを知る必要があるのか?/命令セットの基本/統一アセンブラ言語 (UAL)/生成命令の選択(Arm® Thumb®-2)/RVCTのアセンブリファイルの例 - 6.2 データ処理命令
データ処理命令/データ処理命令の例/データ処理命令の生成/シフト操作/ローテート操作/柔軟性のある第2オペランド: レジスタと定数/変数への定数のロード/乗算/除算/ビット操作命令/ビット操作命令の例 - 6.3 ロード/ストア命令
シングル/ダブルのレジスタデータ転送/メモリのアドレッシング/プリ・ポストインデックスアドレッシング/複数レジスタのデータ転送/スタック - 6.4 フロー制御
分岐命令/サブルーチン: 分岐とリンク/0比較と分岐/If-Then/参考: 条件コードとフラグ/スーパーバイザーコール (SVC) - 6.5 その他
飽和/バイト反転とCLZ/特殊レジスタへのアクセス/LDREX・STREX命令/マルチスレッドセマフォの例/スリープ・システム制御命令/その他の命令
7 Arm® Cortex®-Mプロセッサ組込みソフトウェアの開発
- 7.1 "アウトオブザボックス" ビルド
アプリケーションの起動/デフォルトのCライブラリ/デフォルトのツールメモリマップ - 7.2 コード、データ、スタック、ヒープのメモリマップへの配置
スキャッタローディングとは/スキャッタローディングの例/スキャッタ記述ファイル/リンカ配置ルール/スキャッタファイルでのオブジェクトの順序/ルートリージョン/ルートリージョンの注意点/コードとデータの配置/例外テーブル/例外テーブルの配置/ランタイムメモリモデル/結合されたスタックとヒープの配置/分離されたスタックとヒープの配置 - 7.3 Cライブラリをターゲットに合わせる
Arm® Thumb®-2 Cライブラリ/デフォルトのCライブラリ/Cライブラリのリターゲット/セミホスティングを使用しているCライブラリの回避 - 7.4 リセットと初期化
リセットと初期化/MPUの初期化例/ハンドラ内での8バイトスタックアラインメント/スレッドモードから非特権への変更/拡張関数 - 7.5 さらなるメモリマップの検討
ロング分岐ベニア/メモリマップレジスタ/スキャッタファイルの例 - 7.6 イメージのビルドとデバッグ
未使用セクションの削除とエントリポイント/出力オプション/ROMイメージのデバッグ/追加情報
8 Arm® Keil® MDKマイクロコントローラ開発キットを使用したArm® Cortex®-M4組込みソフトウェア開発演習
- 8.1 C言語で作る新規プロジェクトの作成演習
メモリ配置の確認演習/スタックポインタの確認演習/単体動作確認演習 - 8.2 Systickタイマ割り込み機能演習
Systickタイマーソースコードの追加/ビルドの実施/動作確認 - 8.3 例外発生時のデバッグと対処方法の演習
不正メモリアクセス演習/スタックアクセス例外発生演習 - 8.4 モード切り替えとSVCによる割込み動作の演習
スタック初期化の確認/メモリ管理例外の発生/不適合の修正/ビルドの実施/動作確認