実習・Cより開発効率アップ! C++言語によるArmマイコンのプログラミング入門[教材キット付き]
実習・Cより開発効率アップ! C++言語によるArmマイコンのプログラミング入門[教材キット付き]
|
|
【開催日】2024年7月2日(火) 10:00-17:00 1日コース
【セミナNo.】ES24-0046 【受講料】25,000円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]
【セミナNo.】ES24-0046 【受講料】25,000円(税込)
【会場】東京・巣鴨 CQ出版社セミナ・ルーム [地図]
このセミナは,従来Mbedをプログラム開発環境として利用していたC++に関するセミナを,Keil Studio Cloud(注) を利用するように内容を改変したものである.
C++はCに比べて習得が難しいと思われているが,ポイントさえ適切に押えれば,ほんの少しの努力でC++を使えるようになる.C++を使えるようになれば,Cよりもプログラミングが楽になり,効率のよいプログラム開発が可能になる.本セミナでは,組込みシステムのマイコンのプログラムを作ることを念頭におき,実習を通して,C++言語を使う効率の良く楽なプログラム開発手法を学ぶ.
ところで,マイコンのプログラム開発はC言語で十分できるので,なぜC++言語を使うのかという疑問が出てくるかもしれない.C++言語を使うことの最大のメリットはクラス(class)を使えることである.クラスを適切に使えば,プログラムを完成させるまでの効率を大きくアップできる.たとえば,配列を使ったプログラムは原因不明の実行時エラーが発生しデバッグで悩まされることがある.C++言語ではクラスを使い,インデックスが配列の範囲を越えないように監視するような配列に相当するクラスを作ることができる.これは一例で,クラスを使うメリットはそれ以外にも多い.
このセミナでは,C++の標準クラスライブラリであるSTL(Standard Template Library)の簡単な使い方の例や,クラスのほかにもC++言語の便利な機能 ―関数の引数の参照渡し,template関数,関数のオーバーロード,など― についても取り上げる.
(注)Keil Studio CloudはMbedの後継の開発環境で,Mbedと同様に,プログラム開発環境をインストールすることなくWebブラウザから使えるクラウドベースの開発環境です.もちろん無償で使うことができ,コードサイズの制限もありません.
※ このセミナでは,事前にブレッド・ボード上に組み立てた教材を使います.そのため,電子回路組立の経験がない方でも参加できます.
※マイコン・ボード Nucleo-F446REにつきましては,弊社で予め準備した貸出用ボードを使用いたします.
※ 実装済みのブレッド・ボード,講師作成のプログラム,およびセミナで作成したプログラムはお持ち帰り可能です.
C++はCに比べて習得が難しいと思われているが,ポイントさえ適切に押えれば,ほんの少しの努力でC++を使えるようになる.C++を使えるようになれば,Cよりもプログラミングが楽になり,効率のよいプログラム開発が可能になる.本セミナでは,組込みシステムのマイコンのプログラムを作ることを念頭におき,実習を通して,C++言語を使う効率の良く楽なプログラム開発手法を学ぶ.
ところで,マイコンのプログラム開発はC言語で十分できるので,なぜC++言語を使うのかという疑問が出てくるかもしれない.C++言語を使うことの最大のメリットはクラス(class)を使えることである.クラスを適切に使えば,プログラムを完成させるまでの効率を大きくアップできる.たとえば,配列を使ったプログラムは原因不明の実行時エラーが発生しデバッグで悩まされることがある.C++言語ではクラスを使い,インデックスが配列の範囲を越えないように監視するような配列に相当するクラスを作ることができる.これは一例で,クラスを使うメリットはそれ以外にも多い.
このセミナでは,C++の標準クラスライブラリであるSTL(Standard Template Library)の簡単な使い方の例や,クラスのほかにもC++言語の便利な機能 ―関数の引数の参照渡し,template関数,関数のオーバーロード,など― についても取り上げる.
(注)Keil Studio CloudはMbedの後継の開発環境で,Mbedと同様に,プログラム開発環境をインストールすることなくWebブラウザから使えるクラウドベースの開発環境です.もちろん無償で使うことができ,コードサイズの制限もありません.
※ このセミナでは,事前にブレッド・ボード上に組み立てた教材を使います.そのため,電子回路組立の経験がない方でも参加できます.
※マイコン・ボード Nucleo-F446REにつきましては,弊社で予め準備した貸出用ボードを使用いたします.
※ 実装済みのブレッド・ボード,講師作成のプログラム,およびセミナで作成したプログラムはお持ち帰り可能です.
1.イントロダクション
・なぜCではなくC++なのか
・MbedからKeilへ
・Keil Studio Cloudによるプログラム開発の手順
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の通信で使うクラス
セミナで作るクラスを組み合わせて作ったスペクトラム・アナライザの処理結果をPCに転送して表示している様子(1 kHzの方形波をAD変換器に入力した場合)
スペクトラム・アナライザで使っているマイコン・ボード(Nucleo-F446)と外付け回路(実装済みのブレッド・ボードはお持ち帰り可能)
●対象聴講者
・Keil Studio Cloudを利用してC++ 言語でArmマイコンのプログラムを作りたい方.
・マイコンのプログラム開発で,主としてC言語でプログラムを作っているが,C++言語も使おうと考えている方.
・C++言語は使っているが,自作のクラスは作ったことがない,または作ったことがあるがその経験が浅い方.
・マイコンのペリフェラルを使うためのクラスを作りたい方.
・組込みシステム開発で,C++言語を使ってプログラム開発の効率を上げたい方.
●講演の目標
・Keil Studio Cloudを使いC++ 言語でプログラムを作れるようになる.
・自作のクラスを作れるようになる.
・既存のクラスを継承する派生クラスを作れるようになる.
・マイコンのペリフェラルを使うためのクラスを作れるようになる.
・内部に割込みサービス・ルーチンを含むようなクラスを作れるようになる.
・なぜCではなくC++なのか
・MbedからKeilへ
・Keil Studio Cloudによるプログラム開発の手順
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の通信で使うクラス
セミナで作るクラスを組み合わせて作ったスペクトラム・アナライザの処理結果をPCに転送して表示している様子(1 kHzの方形波をAD変換器に入力した場合)
スペクトラム・アナライザで使っているマイコン・ボード(Nucleo-F446)と外付け回路(実装済みのブレッド・ボードはお持ち帰り可能)
●対象聴講者
・Keil Studio Cloudを利用してC++ 言語でArmマイコンのプログラムを作りたい方.
・マイコンのプログラム開発で,主としてC言語でプログラムを作っているが,C++言語も使おうと考えている方.
・C++言語は使っているが,自作のクラスは作ったことがない,または作ったことがあるがその経験が浅い方.
・マイコンのペリフェラルを使うためのクラスを作りたい方.
・組込みシステム開発で,C++言語を使ってプログラム開発の効率を上げたい方.
●講演の目標
・Keil Studio Cloudを使いC++ 言語でプログラムを作れるようになる.
・自作のクラスを作れるようになる.
・既存のクラスを継承する派生クラスを作れるようになる.
・マイコンのペリフェラルを使うためのクラスを作れるようになる.
・内部に割込みサービス・ルーチンを含むようなクラスを作れるようになる.
【受講者が持参するもの】
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
・ 作成したプログラムなどを持ち帰るためのUSBメモリなど.
【講師】
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.
三上 直樹 氏〔職業能力開発総合大学校 名誉教授 〕
1977~1987年北大助手.1987~2017年職業能力開発総合大学校講師,助教授,教授.工学博士.「はじめて学ぶディジタルフィルタと高速フーリエ変換」などの書籍やインターフェース誌,トランジスタ技術誌の記事多数.ディジタル信号処理を専門とする.