Arm® マイコン基礎講座 Arm® Cortex®-M編(4日)

コースの概要

本コースは、Arm® Cortex®-Mベースのマイコンを使用して組み込みソフトウェアを開発時に必要となる知識を、講義と実習で学びます。基本的な開発手順とデバッグ手法を習得できます。実習でArm® Keil® MDK開発環境を使用します。

受講対象者

履修条件

会場

東京会場(株式会社DTSインサイト 会議室)
東京都渋谷区代々木4-30-3 新宿MIDWESTビル6F

※アクセスはこちらをご覧下さい

お申し込み方法

「Arm® テクニカル・トレーニングコースのお申込について」

受付終了: コース開催の1週間前まで
定員:   16名
受講料: 

お問い合わせ先

Arm®トレーニング事務局

TEL : 03-6756-9405
E-mail : arm_training@dts-insight.co.jp

コース内容

講義1 コンピュータとは

コンピュータの基本構成/コンピュータ内部構造/マイクロプロセッサのブロック図/中央演算処理装置(CPU)/RISCとCISC/コンピュータアーキテクチャ/プロセッサはどうやって動くのか?/コンピュータの動作原理

講義2 CPUの仕組み Arm® Cortex®-M3

Arm®とは/データサイズ、状態、命令セット/CPUの基本動作/非パイプラインとパイプライン/動作モードと操作権限/プロセッサ内部レジスタ/Arm® Cortex®-Mプロセッサのレジスタ/汎用レジスタ/プログラムカウンタ/プログラムカウンタの動き/リンクレジスタ/サブルーチンについて/サブルーチン呼び出し時のPCとLR/スタックポインタ/サブルーチンでのスタック操作/スタックについて/プログラムステータスレジスタ/パイプラインの復習/インターロック/エンディアン/エンディアンに関する考慮点/CPUとペリフェラルの関係/メモリマップされたペリフェラル/メモリとレジスタの関係

講義3 Arm®開発環境

Arm® Keil® MDKマイクロコントローラ開発キット/Arm® Keil® MDKに含まれるツール/Software Packs/Arm® Keil® µVision® IDE (統合開発環境)/Arm® Keil® µVision®デバッガのシミュレーション環境/Arm® Compiler 5 に含まれるツール/Arm® Compiler 5 (armcc)/Arm®マクロアセンブラ(armasm)/Arm®リンカ(armlink)/Arm®ライブラリアン(armar)/fromelfユーティリティ/標準C/C++ライブラリ/microlib/参考:シンボル情報とは何か?/参考:プログラム作成手順の概要

講義4 Arm®命令とアセンブリプログラム

アセンブリ言語を理解する目的/命令セットアーキテクチャ(ISA:Instruction Set Architecture)/アセンブラの役割/擬似命令とディレクティブ/ソースとオブジェクト、実行イメージ/データ処理命令/レジスタオペランドとイミディエイト定数オペランド/バレルシフタを使用したオペランド/シフトと桁の重み/イミディエイト定数の命令表現/LDR擬似命令(レジスタにデータを転送)/ステータスレジスタ操作命令/乗算命令/ロード命令(単一)/ストア命令(単一)/ロード/ストア命令(単一)アドレッシングモード/メモリとレジスタの違い/ロード/ストア命令(複数)と使用可能なアドレッシングモード/複数レジスタのロード/ストア命令(スタック操作命令)/スタックの動き(フルディセンディング)/条件フラグを設定できる命令/レジスタの比較とテスト/条件付き実行/条件フィールドと条件フラグの対応表(参考)/分岐命令(条件分岐、無条件分岐)/ラベルについて/リンク付き分岐命令/リロケータブルプログラム/アプリケーションプログラムのアドレス指定/絶対アドレスの指定(ロード)/PC相対アドレスの指定(ロード)

session101 Arm® Keil® MDKの基本操作 新規プロジェクト作成〜デバッガ操作(シミュレータ使用)*a

(1) データ処理命令の動作確認 (C言語のプログラミングをDisassemblyウィンドウで 確認)
(2) LDR疑似命令の動作確認
(3) 単一レジスタのロード/ストア命令
(4) 無条件分岐命令/条件付き分岐命令(B)/リンク付き分岐命令(BL)とスタック操作(PUSH/POP)

講義5 Arm® v7-M プログラマモデル

Arm®とは/Arm® Cortex® プロセッサ/Arm®v7-M プロファイル概要/データ タイプ/Arm®v7-M プロファイルレジスタセット/プログラムカウンタ/リンクレジスタ/スタックポインタ/プログラムステータスレジスタ/モードの概要/特権実行/スタック/モード、特権、スタックの関係/例外処理の概要/命令セットの互換性

講義6 Arm® Cortex®-M3/M4 概要

ブロック図/コアの特徴/サイクルカウント/プロセッサ パイプライン/メモリマップ/メモリマップとバス/メモリ保護ユニット/電力管理/SysTick/実装オプション

session201 実習用ターゲットボードの確認(実ターゲット使用)*a

講義7 ペリフェラルへのアクセス

ペリフェラルについての復習/ペリフェラルメモリ vs 通常のメモリ/ペリフェラルの例/ペリフェラルへのアクセス方法/ペリフェラルへのアクセスコードの例/CMSISを利用したペリフェラルのアクセス

講義8 基本的な開発フロー

組み込み機器のソフトウェア開発/組み込みソフトウェア開発の手順/要求事項の整理/仕様検討/ソフトウェア・アーキテクチャ設計/プログラムフロー作成/コーディング/ビルドとテスト/デバッグ

session202 BLINKY_LED点灯プログラムの開発(実ターゲット使用)*b

講義9 Arm® v7-M例外処理

概要/割り込みのメカニズム/例外タイプ/プロセッサのモードの使い方/プリエンプション/例外ハンドリングの例/例外のモデル/例外の状態/割り込み検出/割り込み感度(パルス割り込みとレベル割り込み)/外部割込み/NVICレジスタ/ネストの例/テールチェインの例/ベクタテーブル/リセットの動作/例外の動作/例外優先度の概要/例外の状態/割り込み サービス ルーチンの開始動作/割り込み時のスタッキング/ReturnAddress 値/割り込みからのリターン動作/EXC_RETURN/例外開始と終了の例/例外ハンドラの記述/内部例外/SysTick例外/フォールト例外

講義10 割り込み優先度について

割り込み優先度/メモリマップされたプライオリティレジスタ/優先度のグループ分け/例外マスク

session301 押しボタン割り込みLED点灯プログラムの開発(実ターゲット使用)*b

session401 Systickタイマ割り込み機能の開発(実ターゲット使用)*b

session402 例外発生時のデバッグ対処方法の学習(実ターゲット使用)*a

*a : テキストに従って操作し、動作を確認していきます。
*b : 受講者が自分で考え、プログラミングしてMDKに含まれるArm® Keil® µVision®デバッガを使い正しく動作しているか確認していきます。

オープンコース一覧へ戻る