警告、長い説明が近づいています。私はあなたが持っていると思ういくつかの誤解をクリアしたいと思います。
Arduinoは本当に2つの要素です。
- avr-gccでコンパイルされたC / C ++ライブラリのコレクションと
- 以前に工場からチップにプログラムされた小さなブートローダーファームウェアプログラム。
はい、Arduino IDEは基本的にavr-gcc-AVR Cコンパイラをラップします。プロジェクト、または「スケッチ」には、前述のArduinoライブラリが組み込まれ、avr-gccでコンパイルされます。ただし、これはどれもボードに書き込まれる方法とは関係ありません。これらのスケッチの展開方法は、通常とは少し異なります。
Arduino IDEはボード上のusb-to-serialチップを介してArduinoと通信し、ブートローダーが理解するプログラミングモードを初期化し、ブートローダーが既知の場所に配置して実行するチップに新しいプログラムを送信します。 。「実際の書き込みを行うavrライブラリ」はありません-それは単にArduino IDEがシリアルポートを開いてブートローダーと対話するだけです-これは実行中にもデバッグメッセージがIDEに出力される方法です。
代替IDEは、ブートローダーと同じシリアル通信を行える必要があります。Arduinoは、IDEから既に提供されているワンタッチプログラムアンドランを提供しているすべてのライブラリがあるため、簡単です。私は正直に言って、それがもっと簡単になったり、ユーザーフレンドリーになったりするとは思いません。彼らは、AVRマイクロコントローラーと構築/展開プロセスのすべての詳細を抽象化しました。
代替手段は、avr-studio(コンパイラーにもavr-gccを使用)とICSPプログラマー(購入する必要がある追加のハードウェア)のようなものです。いくつかのレジスタ定義ヘッダーファイルといくつかの便利なマクロ以外は提供されていません。また、AVRチップにはブートローダーが付属していません。これは単なる白紙です。マイクロコントローラでやりたいことはすべて、そのハードウェア周辺機器とレジスタについて詳しく調べ、Cでバイトを移動する必要があります。デバッグメッセージをPCに出力し直したいですか?最初にprint()のUARTルーチンを作成し、コンピューターでターミナルを開きます。
これより1つ下のステップでは、テキストエディターでコードを記述し、Makefileまたはコマンドラインからavr-gccおよびavr-dude(プログラミングコマンドラインツール)を呼び出しています。
それから一歩下がって、テキストエディタでアセンブリを記述し、avr-assemblerとavr-dudeを呼び出しています。
私はこれでどこに行くのか定かではありませんが、既存のIDEとArduinoは絶対に天才で初心者には完璧だと思います-名声への主張はユーザーフレンドリーです。たぶん、あなたが探している答えではなく、ワークフローを学び、それで何かクールなものを作りましょう。