加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 为Arduino开发的Xcode

发布时间:2020-12-14 19:21:52 所属栏目:百科 来源:网络整理
导读:请仔细阅读以确保您了解我想要做的事情. 我希望Xcode能够编译,但只有这样我才能在Xcode中调试. 我不想使用Xcode编译或上传代码到Arduino板.我将在“使用外部编辑器”模式中使用Arduino IDE. 我做了什么(也作为可能想要做同样事情的人的未来参考): 在项目设
请仔细阅读以确保您了解我想要做的事情.

>我希望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
> /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/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;
}

我对此有何看法?

解决方法

这两个很棒的引用让你可以设置XCode,不仅用于编译,还用于上传:

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

第一个解释了您需要的其他工具,第二个解释了XCode 4.2(和以前的版本)的项目模板.

我已经使用了它们并且它有效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读