組み込みボードで学ぶCPU動作
What you'll learn
- 開発環境構築の一例を学ぶことができる
- CPUの動作の根っこがわかる
- コンパイラ、リンカの役割がわかる
- C言語のポインタの動きが「何となく」わかる
- スタックやレジスタのような、デバッグ時に役に立つ知識がつく
Requirements
- 組み込みシステムに対する興味や好奇心があること
- C言語の基本的な用語「関数」「自動変数」はわかっていること
- (できれば)ボード、ICEを購入して自分の手でやってみることができること
Description
組み込み開発入門者向けのコースです。CPUが実際にどのような動作をしているのか。ICEを接続してモニタリングしながら動作を見てみましょう。
※本コースを効果的に学習していただくためには、購入していただく必要がある物があります。ご注意ください。
・Atmel ICE
・ATTINY3217-XPRO(評価ボード。PROとありますが大したものではありません)
これらは購入後、ご自身で様々な実験に使用できます。ICEはArduinoにも流用できます。決して無駄な出費ではないと思いますので、この機会に是非、自分への投資をしてくださいますようお勧めいたします。(今後の別コースでも使用する予定です)
・まずは開発環境の整備
このコースではMicrochip Studioという、旧Atmel社のCPUに対応したIDE(統合開発環境)をセットアップします。ダウンロード用ファイルを用意していますので、そちらを解凍し、インストールしてください。セットアップ方法は解説します。
・CPUとつないで実際にモニタソフト(デバッグソフト)でCPUを覗いてみましょう
CPUは数値しか扱えません。ではアドレスはどのように扱うのでしょうか。このあたりは後にC言語、特にポインタのところにリンクしてきます。I/O空間を理解し、簡単な制御を体験しましょう。
・CPUのレジスタやスタックの役割を知りましょう
C言語がコンパイラを通してどのようなコードを作るのか、そしてその動作を見ることでレジスタやスタックの役割がわかります。C言語をメインで説明はしませんが、C言語を通じてどのような作用をもたらすのかを見て、感じましょう。
・IDE(開発環境)の各部の役割を知りましょう
1つのIDEについて覚えれば、他のIDEでも共通の項目は多いです。このコースでは単純なCPUを使いますが、設定や、どのウィンドウに何が表示されるかというような役割はあまり変わりません。今後のためにもIDEを使い込ましましょう。
一見、ソフトウェアではなくハードウェアの話に見えますが、実はC言語をマスターする上で避けて通れない知識です(特に組み込みでは)。
このコースは、CPUが単純な動きしかしていないことを知ってもらい、なんでポインタが必要なのかを知るきっかけを作ることも目的としています。C言語についてはまた別コースを作る予定ですのでどちらが先でも構いませんが、ポインタを知るにはCPU動作を知るのが一番だと思っています。C言語に難儀していた方の一助となれば幸いです。
Who this course is for:
- C言語のポインタの理解のヒントが欲しい方
- 組み込み開発に興味があり、とりあえず手をつけてみたい方
- CPU(MCU)に興味がある方
Instructor
1972年生まれ。東京理科大学在学中に東京大学宇宙科学研究所(現JAXA宇宙科学研究所)にて人工衛星に搭載する機器の研究を行う。
1995年、まだまだハードウェア隆盛の時代にソフトウェア業界に飛び込む。超ブラック企業からの叩き上げ。
その後、キーエンス、ニプロを経てプレイヤーからマネージャー、メンターといった幅広い経験を積み、現在に至る。
C言語によるフルスタック開発がメインで、アセンブラ、CPUの動作、電気回路、医療規格の知見あり。