Xcode Для разработки для Arduino

Пожалуйста, прочитайте это хорошо, чтобы убедиться, что вы понимаете, что я хочу сделать.

  • Я хочу, чтобы Xcode сможет компилировать, но только я могу отладить в Xcode.
  • Я не хочу использовать XCode для компиляции или загрузки кода на доску Arduino. Вместо этого я буду использовать arduino IDE в режиме «Использовать внешний редактор».

Что я сделал (также как будущее ссылка на людей, которые могут захотеть сделать то же самое):

  • в настройках проекта (нажмите на файл проекта на левой панели)
  • Я изменил Компилятор 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
    • /aPlication/arduino.app/contents/resources/java/hardware/arduino/cores/arduino

(Если вы установили Arduino.app где-то, кроме папки приложений, вам нужно соответственно настроить пути.)

в Main.cpp, я включил , но этого было недостаточно. Я получал неопределенные ошибки идентификатора (для SPCR, SPE, MSTR, SPR1, SPR0) из-за неспособности проходить -MMCU = Somechipname как флаг для компилятора, что не было определено и AVR / IO.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;
}

Что я об этом?

5
задан Peter Mortensen 9 September 2011 в 06:56
поделиться