Xcode для разработки для Arduino - PullRequest
5 голосов
/ 01 сентября 2011

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

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

То, что я сделал (также как справочник для людей, которые могут захотеть сделать то же самое):

  • В настройках проекта (щелкните файл проекта на левой панели)
  • Я изменил компилятор на GCC, чтобы избежать многих ошибок.
  • Я добавил следующие пути к путям поиска по заголовкам и путям поиска в библиотеке:

    • / Применения / Arduino.app / Содержание / Ресурсы / Java / оборудование / инструменты / АРН / Библиотека / GCC / AVR / 4.3.2 / включают
    • / Применения / Arduino.app / Содержание / Ресурсы / Java / оборудование / инструменты / АВР / AVR / включают
    • / Применения / Arduino.app / Содержание / Ресурсы / Java / оборудование / Arduino / ядро ​​/ Arduino

(Если вы установили Arduino.app где-то, кроме папки «Программы», вам необходимо соответствующим образом изменить пути.)

В main.cpp я включил <WProgram.h>, но этого было недостаточно. Я получаю неопределенные ошибки идентификатора (для SPCR, SPE, MSTR, SPR1, SPR0) из-за невозможности передать -mmcu=somechipname в качестве флага компилятору, что не привело к определению устройства и невозможности avr/io.h включить файл, который определил эти символы. Я справился с этим вручную, включив <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;
}

Что мне об этом?

Ответы [ 3 ]

3 голосов
/ 02 января 2012

Эти две замечательные ссылки позволяют вам настроить 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

Первый объясняет необходимые дополнительные инструменты, а второй предоставляет шаблон проекта для XCode 4.2 (и предыдущих версий).

Я использовал оба, и это работает.

1 голос
/ 01 сентября 2011

Я думаю, что вам лучше всего забыть о XCode и просто использовать Arduino IDE.

Сколько бы это ни стоило, даже не похоже, что вы строите для правильной платформы (i386?). Предполагая, что у вас есть AVR toolchain для GCC, вам может повезти, если вы посмотрите на переключатели по умолчанию в источнике IDE Arduino:

ЦСИ \ Compiler.java

Удачи!

0 голосов
/ 14 ноября 2011

Многие люди делают шаблоны проектов XCode для компиляции и загрузки из XCode.

Я только что добавил свою версию, которая работает с включением библиотек, дополнением кода и т. Д., Но они работают только как шаблоны проектов в XCode 3.2

Я думаю, что вы все еще можете открыть проект в XCode4 и использовать их как руководство, чтобы обойти ошибки, которые вы получаете ..

Вы можете найти их здесь: https://github.com/timknapen/Arduino-With-XCode

...