5

これをよく読んで、私がやりたいことを理解してください。

  • Xcodeをコンパイルできるようにしたいのですが、Xcodeでデバッグできるようにするためだけです。
  • Xcodeを使用してコードをコンパイルしたりArduinoボードにアップロードしたりしたくありません。代わりに、「外部エディターを使用」モードでArduinoIDEを使用します。

私がしたこと(同じことをしたいと思うかもしれない人々のための将来の参考としても):

  • プロジェクト設定(左ペインのプロジェクトファイルをクリック)
  • 多くのエラーを回避するために、コンパイラをGCCに変更しました。
  • ヘッダー検索パスとライブラリ検索パスに次のパスを追加しました。

    • /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/lib/gcc/avr/4.3.2/include
    • /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/avr/include
    • /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino

(アプリケーションフォルダー以外の場所にArduino.appをインストールした場合は、それに応じてパスを調整する必要があります。)

main.cppに、を含めまし<WProgram.h>たが、それだけでは不十分でした。-mmcu=somechipnameフラグとしてコンパイラに渡すことができず、デバイスが定義されavr/io.hず、定義されたファイルを含めることができないため、未定義の識別子エラー(SPCR、SPE、MSTR、SPR1、SPR0)が発生していましたそれらのシンボル。<avr/iom328p.h>チップに適切なヘッダーファイルを手動でインクルードすることで、この問題を回避しました。

それは私がどこまで得たかです。

今、私はこれらのエラーを受け取ります:

Undefined symbols for architecture i386:
  "_init", referenced from:
      _main in main.o
  "_setup", referenced from:
      _main in main.o
  "_loop", referenced from:
      _main in main.o
  "_pinMode", referenced from:
      SBSetup()    in main.o
  "_digitalWrite", referenced from:
      SBSetup()    in main.o

邪悪な問題のあるコードを含むmain.cpp全体は次のとおりです。

#include <WProgram.h>
#include <avr/iom328p.h>    // Getting around warning "device type not defined"
#define NumLEDs 25
#define clockpin 13 // CI
#define enablepin 10 // EI
#define latchpin 9 // LI
#define datapin 11 // DI

int LEDChannels[NumLEDs][3] = {0};
int SB_CommandMode;
int SB_RedCommand;
int SB_GreenCommand;
int SB_BlueCommand;

void SBSetup(void) {
    pinMode(datapin, OUTPUT);
    pinMode(latchpin, OUTPUT);
    pinMode(enablepin, OUTPUT);
    pinMode(clockpin, OUTPUT);
    SPCR = (1<<SPE)|(1<<MSTR)|(0<<SPR1)|(0<<SPR0);
    digitalWrite(latchpin, LOW);
    digitalWrite(enablepin, LOW);
}

int main(void)
{
    init();
    setup();
    for (;;)
        loop();
    return 0;
}

これについて私は何をしますか?

4

3 に答える 3

3

これらの2つの優れたリファレンスを使用すると、コンパイルだけでなくアップロード用にもXCodeを設定できます。

  1. http://www.quietless.com/kitchen/setting-up-xcode-to-compile-upload-to-an-arduino-atmega328-duemilanove/
  2. https://github.com/timknapen/Arduino-With-XCode#readme

1つ目は、必要な追加ツールについて説明し、2つ目は、XCode 4.2(および以前のバージョン)のプロジェクトテンプレートを提供します。

私は両方を使用しました、そしてそれは働きます。

于 2012-01-01T23:42:43.773 に答える
1

あなたの最善のアプローチは、XCode を忘れて、Arduino IDE だけを使用することだと思います。

どんなに価値があっても、正しいプラットフォーム (i386?) 用にビルドしているようには聞こえません。GCC 用の AVR ツールチェーンを持っていると仮定すると、Arduino IDE のソースにあるデフォルトのスイッチを見ると、うまくいくかもしれません。

src\Compiler.java

幸運を!

于 2011-09-01T03:47:02.100 に答える
0

XCode からコンパイルおよびアップロードするための XCode プロジェクト テンプレートを作成している人はたくさんいます。

ライブラリ、コード補完などを含むバージョンを追加しましたが、XCode 3.2 のプロジェクト テンプレートとしてのみ機能します。

XCode4でプロジェクトを開いて、エラーを回避するためのガイドとして使用できると思います..

ここで見つけることができます: https://github.com/timknapen/Arduino-With-XCode

于 2011-11-14T13:13:36.743 に答える