Arduino IDEの外部でCプログラムを作成していますか?


12

私はArduino IDEを単純なプロジェクトに使用してArduinoを使い始めるというアイデアが好きですが、これまでに得たコンセンサスは、Arduinoやプログラミング全般に慣れていない人向けです。

私の理解では、完全にArduino IDEの外部でCプログラムをゼロから作成し、AVRDUDEなどのツールを使用してArduino MCUにアップロードすることが可能であるということです。このオプションは、魅力的で興味深いものではありますが、いくつかの懸念事項があります。

  • このような「raw C」プログラムによってインポート/リンクする必要があるArduinoライブラリは何ですか?私は、Arduino IDEベースのプログラムが実行されるdigitalWrite(...)と、実際にはおそらくArduinoによって提供されるC libを実際に呼び出していると想定しています。これらの「基礎となるライブラリ」がすべてCプログラムに含まれることを確認するのが心配です。考え?
  • Arduino IDEの外で一人で飛行し、冒険することによって他に何か「失われた」ものはありますか?「自分でロール」する必要がある機能/機能はありますか?

arduino.stackexchange.com/questions/9538/…私の質問に対する答えは、設定に役立ちました。arduinoの任意のものを置換/除外できます。次のことができます。-独自のボードを作成する。-独自のIDEを使用します。-独自のライブラリを使用します。
ポール

回答:


4

Arduinoが実際にバックグラウンドでどのように機能するかについて、2つの素晴らしい記事を紹介します。マイクロコントローラのプログラミングから摩擦を取り除いた方法。

  1. Arduino Internalsのツアー:Hello Worldは実際にどのように機能しますか?
  2. ArduinoとGCC、メイクファイルのみを使用してプログラムをコンパイルおよびアップロードする

また、ここで議論されたCコードにArduinoのコードを変換するための方法やチュートリアルはありますか?


ありがとう@Michal Foksa(+1)-これに対する答えがあまり知られていないことにショックを受けただけだと思います!私は、言って、ArduinoのIDEが持っていたと思っているだろうlib/のようなものだったのインストールルートの下のディレクトリのどこかarduino-core.dllarduino-io.dllなどを、
smeeb

@smeeb:そのとおりです。ArduinoIDEのインストールでは、基本的な実行時機能のライブラリとユーザーが提供するライブラリを含める必要があります。makefileのリンク2のページの中ほどで、シンボルLIBSはそれらを指します。それらは.dllではありません(Windowsでは実行時に呼び出されます)。それらは、コンパイルされたオブジェクトファイルと(最終的に)完全なローダーイメージである.hexロードファイルに静的にリンクされるオブジェクトファイル(Unixのようなシステムでは.o、おそらくWindowsでは同じ)です。...
JRobert

...生計を立てるプログラムを作成する人々にはよく知られていますが、Arduino(ブランド)ツールのデザイナーは、プロレベルになることなく人々にデジタルエレクトロニクスを適用できるように、できるだけ多くの厄介な詳細を意図的に隠しました。それを行うプログラマーとエンジニア。Arduinoコミュニティでこの情報を見つけるのが難しいと感じる範囲で、彼らは成功しています!
Jロバート

残念ながら、レガシーの理由により、Arduinoソフトウェアは標準の受け入れられた方法とはまったく異なる方法で構築されます。簡単にするために「摩擦を取り除く」ことで、彼らは大きな互換性のないコミュニティを作りました。すべてのIDE「プラグイン」は、標準的ではない何かをほぼ標準的な方法で作成しようとする試みです。問題が発生した場合は、そのことに留意してください。

5

他のライブラリとリンクする必要があるということについて、あなたは絶対に正しいです。ただし、何か異常なことをしたい/必要がない限り、必ずしもすべての詳細を自分で心配する必要はありません。いくつかの代替IDEは、通常、多くの詳細を自動的に処理するプラグインを介して、すでにArduinoをサポートしています。

Eclipseはさまざまな目的で非常に広く使用されているIDEなので、通常はEclipseをお勧めします。ただし、他にもいくつかの可能性があります。詳細については、次の質問を参照してください。


@Peter R. Bloomfield(+1)に感謝します-しかし、私は本当に非IDE中心の答えを探しています。IDEに対して何も持っているわけではなく、Arduinoの「ライブラリランドスケープ」を理解するためには、IDEは単なる不必要な仲介者だと感じているだけです。そうは言っても、すべてのArduinoアプリがリンクする必要のある1つ以上の「コアライブラリ」があり、アプリの実際の動作に応じて、必要な場合と不要なオプションのライブラリがあると仮定します。 これらの「コアライブラリ」のリスト、およびその他のオプションのリストを教えてください。再度、感謝します!
-smeeb

そして、IDEが「不必要な仲介者」であると言ったことを修飾するために、私が本当に意味することは IDE(Arduino、Eclipse、またはその他)の外部でCアプリを記述し、Arduinoライブラリにリンクできることです。私のアプリは必要ですが、それでもアプリをArduinoハードウェアにコンパイル/デプロイします。それらのライブラリが何であり、それらに関するドキュメントをどこで見つけることができるのか疑問に思っています。
smeeb

@smeeb Arduinoが初心者向けであることを考えると、それらの行に沿って(もしあれば)多くの公式文書があるとは思わない。私が調査する最良の方法は、Arduinoのメイクファイルの例をオンラインで検索することです。このページの下部にはいくつかの古い例があります
ピーターブルームフィールド

@smeeb:あなたのように、私はIDEのファンではありません。Webには、いくつかの一般的なArduinoメイクファイルがあります。あなたは、基本的にあなたの.inoファイルをコンパイルした後、libore.aにArduinoのコアライブラリをコンパイルする必要があり-x c++ -include Arduino.h、それ(プラスの束を理解するためにあなたのコンパイラのため-D-Ilibcore.aで、など)、およびリンクを。
エドガーボネット

0

はい、Arduino IDEの外部でプログラムを作成できます。例えば、私はAVRプラグインを備えたEclipse IDEを試してみましたが、現在はAVR Studioに固執しています。もちろん、Arduino IDEといくつかのライブラリで記述するときに通常使用する機能はありません。しかし、何を実装しようとしないのか。自分のものを学び、書くことができるのに、他のものによって作られた関数とライブラリに制限する理由は、おそらく既存のものよりも良いでしょう。


-3

ESP8266 + Arduino IDE 1.6.4 Portable-フルクイックインストールガイドwww.instructables.com /.../ ESP8266-Arduino-IDE-164-Portable-F ...

ESP8266拡張、スケッチ、インストールされたライブラリなどを含むすべてのArduino IDE v 1.6.4ファイルは、新しく作成された「arduino-1.6.4」フォルダーの下にのみ配置する必要があります。


これはあまり有用な答えではありません。リンクは実際のリンクではありません。また、リンクされたサイトがダウンする可能性があるため、Stack Exchangeはリンクのみの回答で顔をしかめます。あなたの答えを広げてください。
ニックギャモン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.