web-dev-qa-db-ja.com

Arduinoのプログラミングは標準Cとどう違うのですか?

組み込みシステムのプログラミングのバックグラウンドがあります(TI MSP4 、Atmel ATxmega )。 Arduinoのプログラミングはそれらとどう違うのですか? Arduinoのプログラミングには、Cについてどのような知識がありますか?

25
Nathan

私はATXMegaについては知りませんが、新しいArduinoで使用されているATmega328のような8ビットAVRチップはAVR-GCCコンパイラを使用しています。これにより、CおよびC++をAVRチップにコンパイルできます。 AVR-GCCの1つ上のレベルは AVR Libc です。これは、AVRのプログラミングをより高いレベルのタスクにするCライブラリです(レジスタを直接参照する必要がなくなるなど)。

Arduino IDEはバックエンドでAVR-GCCおよびAVR libcライブラリを使用します。さらに、Arduino IDEは 他のライブラリを利用可能にします 、Nice Serialインターフェースのように。

最後に、Arduinoには、AVRチップに書き込まれたブートローダーが付属しています。ブートローダーは、システムプログラマーや開発ボードの代わりにシリアル接続(USBから)を使用してAVRをプログラムすることを可能にします。

あなたの質問に答えるのに十分な裏話:ArduinoはCおよびC++でさえプログラムすることができます。利用可能なライブラリはCで書かれており、すべてがAVR-GCCを使用してコンパイルされます。 Arduino IDEは必須ではありません。

編集

このトピックにはかなりの関心が寄せられているようです。私は AVR、Arduino、およびAVR-GCCの詳細 を試して与えるブログ投稿を書きました。

34
baalexander

Arduinoを使用すると、既存のCの知識を活用できます。

目的は、アーティスト/非プログラマーがハードウェアプログラミングといじくり回しを簡単に開始できるようにすることだったので、「Arduino言語」は開発を単純化するための単なるラッパーにすぎません。

CプログラマーがArduinoを使用する方がはるかに簡単です。 documentation はそれほど長くありません、 wiki はいいです、そして forum の人々は熱心で親切です。

9
George Profenza

ArduinoはCですが、すべてのプログラムに挿入されています。

void main() {
  setup();
  for(;;) {
    loop();
  }
}
4
Nick ODell

Cや組み込みシステムについては、ほとんどすべての知識を習得でき、大丈夫です。使用するのは全く難しくありません。 Arduinoリファレンス ページをブックマークしてください。すぐに何かを書けるようになります。

4
Pete

ArduinoはCに似ており、非常に簡単に入手できます。基本的なタスクを実行するために、ペリフェラルレジスタの読み取りや書き込みなどを行うことから抽象化されています。

いくつかのサンプルコードとArduinoリファレンスを見ると、他のプラットフォームで実際に実際のCを実行したことがあれば、すぐに稼働します。

4
Jon