top of page
  • ahedgehogchase

Lesson 8. 組み込みプログラミング §14. C言語

C言語 君たちが実際に使う言語はC言語だ。 ここで、Arduinoに関してちょっとした混乱を招く恐れのある事柄がひとつある。それは、Arduinoを用いる際に、スケッチを書くという行為は、実質的にはライブラリを用いてC言語を書いているのと同じだということだ。裏に潜んでいた言語はC言語なんだ。 これはベル研究所に由来する由緒ある言語で、非常に良くドキュメント化されている。

そして、これはアセンブリ言語の上層のレベルの言語だ。だから、一行ごとに1つのインストラクションを記述するのではなく、この言語はもっと複雑なことをやってのける。例えば、ループを使ったり変数に名前をつけたり、なんてことができるんだ。 そして、君たちの多くがコンピュータチップをプログラミングするのに使うであろう言語はC言語だ。これがチップに何をすべきかを伝える方法になる。

 

コンパイラ そして、君たちはコンパイラを必要とするだろう。コンパイラはC言語をhex codeに変換する。 ここでC言語で書かれたプログラムをお見せして、ちょっと説明しよう。 僕はこれをC言語からhex fileに変換してやる必要がある。 ●GCC 僕たちがAVRを用いる主な理由の1つは、GCC(Gnu Compiler Collection)のサポートがあるからだ。これは本質的なもので、まさにLinuxの中核と言える。 GCCは非常にパワフルなコンパイラで、多くのアーキテクチャで作動する。そして、AVRはGCCと共に設計されたものだ。

●AVR Libc AVR LibcはC言語とAVRを繋ぐ。これにより、僕たちはGCCコンパイラを使って、AVRのためのプログラムを書くことができる。AVR Libcには、多くのドキュメントがあるが、その一部分としてAVRと通信するモジュールがある。 また、標準タイプがあり、その中にはルーティンがある。そして、それらは全てこのAVR Libcの一部だ。 そういう訳で、僕たちはプログラムをプロセッサが実行可能な形にするのにGCCコンパイラを用いることにする。

●OS X, WindowsでC言語をコンパイルするには もしも君たちがLinuxを使っているならば、今言ったことを実行するには、君たちがやるべきことはLinux用のGCCパッケージをAVRにインストールすることだ。OS XもCrossPackでサポートされている。Windowsでは、多分ベストな選択肢はAtmel社のコンパイラを使うことだ。彼らはフリーのコンパイラを提供している。これは非常に強力で、もしもWindowsを使っているのであれば、そのコンパイラを使うのがベストだろう。

まとめると、僕たちはAVRを用いる際、C言語をhexコードに変換するのにGCCコンパイラを用いることになる。 デバッグについては後で話そう。

つづく 講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。

閲覧数:5回0件のコメント

最新記事

すべて表示

Lesson 13. 出力デバイス §4. LEDマトリックス

●LEDマトリックス 次に紹介するのはLEDマトリックスだ。 動作しているのを見てみると、ディスプレイの一部分が表示されているのが見えるだろ? 僕はディスプレイの一部分を用いてラスタリング(画像を色のついた格子状のドットで表現すること)を行なっているんだ。 ●Charlieplexing これは便利な技で、Charlieplexingと呼ばれる。 このLEDは大量購入すると6セント

Lesson 13. 出力デバイス §3. 調光LED

●調光LED さあ、ここから僕は多くのデバイスを紹介していこう。 最初に紹介するのは、色調を変化させることのできるLEDだ。色を周期的に変えることができるんだ。 これが、その部品だ。 この部品には赤と緑の、青のLEDが1つのパッケージに含まれている。大量購入すれば、40セントで買うことができる。これらはスタジアムとかにある巨大なディスプレイに用いられていて、これがスタジアムでは1ピク

Lesson 13. 出力デバイス §2. 電源

●電源 今回の課題のゴールはたくさんのバッテリーを使うことじゃない。モバイルにしなくちゃならない場合を除いてバッテリーを使うのはお勧めしない。一般的には各Labは各種電源を取り揃えているはずだ。 今から紹介するベンダーMARLIN P. JONES & ASSOC. INC.は数多くのベンチサプライ(電源)を取り扱っている。 きっと諸君はこれらの各種電源をプロジェクトに用いることになるだ

bottom of page