
実習・C++言語によるArmマイコンのプログラミング
実習・C++言語によるArmマイコンのプログラミング
|
![]() ![]() |
【開催日】2021年4月21日(水) 10:00-17:00 1日コース
【セミナNo.】ES21-0021 【受講料】25,000円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]
【セミナNo.】ES21-0021 【受講料】25,000円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]

C++はCに比べて習得が難しいと言われているが,ポイントさえ適切に押えれば,ほんの少しの努力でC++を使えるようになる.C++を使えるようになるとCよりもプログラミングが楽になり,効率のよいプログラム開発が可能になる.本セミナでは,組込みシステムのマイコンのプログラムを作ることを念頭におき,実習を通して,C++言語を使う効率の良く楽なプログラム開発手法を学ぶ.
ところで,マイコンのプログラム開発はC言語で十分できるので,なぜC++言語を使うのかという疑問が出てくるかもしれない.C++言語を使うことの最大のメリットはクラス(class)を使えることである.クラスを適切に使えば,プログラムを完成させるまでの効率を大きくアップできる.たとえば,配列を使ったプログラムは原因不明の実行時エラーが発生しデバッグで悩まされることがある.C++言語ではクラスを使い,インデックスが配列の範囲を越えないように監視するような配列に相当するクラスを作ることができる.これは一例で,クラスを使うメリットはそれ以外にも多い.
クラスのほかにもC++言語の便利な機能 ―関数の引数の参照渡し,template関数,関数のオーバーロード,STL(Standard Template Library)など― についても学ぶ.
※本セミナでは,プログラム開発環境としてMbed,マイコン・ボードとしてCortex-M4を搭載したNucleo-F446REを使います.実習で使用したボードは持ち帰ることができます.
※マイコン・ボード Nucleo-F446RE をご持参の方は,受講費用を\2,000-引きでご参加いただけますので,お申し込み時にメールでご連絡ください.
ところで,マイコンのプログラム開発はC言語で十分できるので,なぜC++言語を使うのかという疑問が出てくるかもしれない.C++言語を使うことの最大のメリットはクラス(class)を使えることである.クラスを適切に使えば,プログラムを完成させるまでの効率を大きくアップできる.たとえば,配列を使ったプログラムは原因不明の実行時エラーが発生しデバッグで悩まされることがある.C++言語ではクラスを使い,インデックスが配列の範囲を越えないように監視するような配列に相当するクラスを作ることができる.これは一例で,クラスを使うメリットはそれ以外にも多い.
クラスのほかにもC++言語の便利な機能 ―関数の引数の参照渡し,template関数,関数のオーバーロード,STL(Standard Template Library)など― についても学ぶ.
※本セミナでは,プログラム開発環境としてMbed,マイコン・ボードとしてCortex-M4を搭載したNucleo-F446REを使います.実習で使用したボードは持ち帰ることができます.
※マイコン・ボード Nucleo-F446RE をご持参の方は,受講費用を\2,000-引きでご参加いただけますので,お申し込み時にメールでご連絡ください.
1.なぜCではなくC++なのか
2.C++ を有効に使うための準備
・関数の引数として参照を使う
・関数のオーバーロード(多重定義)
・マイコン・プログラミングに役立つSTL(Standard Template Library)
・動的メモリ領域の使い方とnew演算子
3.関数templateの使い方
・型(type)をtemplateの引数にする場合
・整数をtemplateの引数にする場合
4.classの基礎
・classの考え方と用語の整理
・コンストラクタとデストラクタ
・アクセス指定子(public,private)
・クラスのメンバの初期化
・コピー・コンストラクタと代入演算子
・演算子のオーバーロード
・explicitの使い方
・staticデータメンバとstaticメンバ関数
・クラス内に割り込みサービス・ルーチンを記述する
5.classの継承
・派生クラス
・仮想関数と純粋仮想関数
6.マイコンのプログラミングに役立つclassの事例とその応用
・マイコン内蔵のA-D変換器を使うクラス(継承の例)
・マイコン内蔵のタイマを使うクラス(クラスの内に割込みサービス・ルーチンを記述する例)
・汎用1次元配列のためのtemplateクラス
・スペクトラム・アナライザへの応用

セミナで作るクラスを組み合わせて作ったスペクトラム・アナライザの処理結果をPCに転送して表示している様子(1 kHzの方形波をAD変換器に入力した場合)

スペクトラム・アナライザで使っているマイコン・ボード(Nucleo-F446)と外付け回路(外付け回路はあらかじめ事務局で組み立てたものを使う).このマイコン・ボードと外付け回路はお持ち帰りいただけます
●対象聴講者
・マイコンのプログラム開発で,主としてC言語でプログラムを作っているが,
C++言語も使おうと考えている方.
・C++言語を,単に便利なC言語として使っているので,
C++言語の特徴を生かすような使い方をしたい方.
・C++言語は使っているが,自作のクラスは作ったことがない,
または作ったことがあるがその経験が浅い方.
・マイコンのペリフェラルを使うためのクラスを作りたい方.
・組込みシステム開発で,C++言語を使ってプログラム開発の効率を上げたい方.
●講演の目標
・自作のクラスを作れるようになる.
・既存のクラスを継承する派生クラスを作れるようになる.
・マイコンのペリフェラルを使うためのクラスを作れるようになる.
・内部に割込みサービス・ルーチンを含むようなクラスを作れるようになる.
2.C++ を有効に使うための準備
・関数の引数として参照を使う
・関数のオーバーロード(多重定義)
・マイコン・プログラミングに役立つSTL(Standard Template Library)
・動的メモリ領域の使い方とnew演算子
3.関数templateの使い方
・型(type)をtemplateの引数にする場合
・整数をtemplateの引数にする場合
4.classの基礎
・classの考え方と用語の整理
・コンストラクタとデストラクタ
・アクセス指定子(public,private)
・クラスのメンバの初期化
・コピー・コンストラクタと代入演算子
・演算子のオーバーロード
・explicitの使い方
・staticデータメンバとstaticメンバ関数
・クラス内に割り込みサービス・ルーチンを記述する
5.classの継承
・派生クラス
・仮想関数と純粋仮想関数
6.マイコンのプログラミングに役立つclassの事例とその応用
・マイコン内蔵のA-D変換器を使うクラス(継承の例)
・マイコン内蔵のタイマを使うクラス(クラスの内に割込みサービス・ルーチンを記述する例)
・汎用1次元配列のためのtemplateクラス
・スペクトラム・アナライザへの応用

セミナで作るクラスを組み合わせて作ったスペクトラム・アナライザの処理結果をPCに転送して表示している様子(1 kHzの方形波をAD変換器に入力した場合)
スペクトラム・アナライザで使っているマイコン・ボード(Nucleo-F446)と外付け回路(外付け回路はあらかじめ事務局で組み立てたものを使う).このマイコン・ボードと外付け回路はお持ち帰りいただけます
●対象聴講者
・マイコンのプログラム開発で,主としてC言語でプログラムを作っているが,
C++言語も使おうと考えている方.
・C++言語を,単に便利なC言語として使っているので,
C++言語の特徴を生かすような使い方をしたい方.
・C++言語は使っているが,自作のクラスは作ったことがない,
または作ったことがあるがその経験が浅い方.
・マイコンのペリフェラルを使うためのクラスを作りたい方.
・組込みシステム開発で,C++言語を使ってプログラム開発の効率を上げたい方.
●講演の目標
・自作のクラスを作れるようになる.
・既存のクラスを継承する派生クラスを作れるようになる.
・マイコンのペリフェラルを使うためのクラスを作れるようになる.
・内部に割込みサービス・ルーチンを含むようなクラスを作れるようになる.
【受講者が持参するもの】
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
【講師】
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.