【问题标题】:atmega embedded C programmingatmega 嵌入式 C 编程
【发布时间】:2017-11-15 14:33:12
【问题描述】:

我正在尝试为 atmega 学习嵌入式 C 编程。我被这个错误称为

avr-gcc.exe(0,0): CreateProcess: 没有那个文件或目录

我写了一个大约 10 行的简单 C 代码。

/*
 * RAJESH_AVRC_PROG.c
 *
 * Created: 6/10/2017 10:33:39 PM
 *  Author: AMMU_AMMA
 */ 

#define F_CPU 2000000L
#include <avr/io.h>
#include <avt/delay.>
int main(void)
{
    DDRB = 0xFF;
    PORTB = 0xFF;

    while(1)
    {
        PORTB = 0xFF;
        _delay_ms(1000);
        PORTB=0x00;
        _delay_ms(1000);
        //TODO:: Please write your application code 
    }
}

【问题讨论】:

  • 找不到您的avr-gcc.exe 编译器。与您的代码完全无关。
  • avt/delay. 是一个非常奇怪的文件名。
  • 这里有很多需要改进的地方,正如其他 cmets 中提到的那样。我也很好奇您是如何得出 F_CPU 的价值的。对于第一次尝试来说,这根本不是典型的。它也是delay.h,你需要找出它在你系统上的真正位置。当然还要找到编译器。 ;)
  • 因乞讨而被否决。我们每天收到几百个请求帮助的帖子可能会让您感到非常惊讶,这确实适得其反。这里的人都是志愿者,他们不需要看到任何尝试让他们承担比他们通常有时间更多的工作。
  • 问题在于如何设置构建环境。从外观上看,您可能在 Windows 中使用 GNU Make。确保 avr-gcc.exe 在您的 PATH 环境变量中。如果您需要更多帮助,则需要提供有关如何设置环境的详细信息。

标签: c embedded atmega


【解决方案1】:

如果您想快速入门,我建议您使用 Linux(在 VM 中或在单独的 PC 上)。在 Debian/Ubuntu 上,您可以使用以下命令在终端上安装所需的工具:

sudo apt-get install avrdude gcc-avr

然后您可以使用它来编译您的文件(对于 atmega32):

avr-gcc -Os -mmcu=atmega32 RAJESH_AVRC_PROG.c -o RAJESH_AVRC_PROG.elf && avr-objcopy -O ihex -j .text -j .data RAJESH_AVRC_PROG.elf  RAJESH_AVRC_PROG.hex

您可以将生成的 hex 文件加载到您的 AVR。

【讨论】:

  • Linux VM 是一种选择,但更简单的是安装 arduino IDE 必然会在某处转储工作的 avr-gcc - 您只需要弄清楚在哪里,然后您就可以轻松地将它用于非 Arduino avr 项目。
猜你喜欢
  • 1970-01-01
  • 2019-02-12
  • 1970-01-01
  • 2016-12-15
  • 2011-05-30
  • 1970-01-01
  • 2019-08-24
  • 1970-01-01
  • 2015-11-16
相关资源
最近更新 更多