avr-gcc 中的致命错误,指定了不正确的 MCU
Fatal error in avr-gcc, specifies incorrect MCU
我正在学习使用 MiniPro 在没有引导加载程序的情况下为我的 ATtiny85 编程,我想生成一个 hex 文件。首先,我尝试使用 avr-gcc
命令编译我的文件,但我收到一条错误消息:
Fatal error: unknown MCU: gcc-isr
这是我用来编译文件的命令
avr-gcc -Wall -mmcu=avr25 -Os -DF_CPU=8000000 -c main.c -o main.o
这是我要编译的代码
#define __AVR_ATtiny85__
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB = 0b00001000;
while (1)
{
PORTB = 0b00001000;
_delay_ms(20);
PORTB = 0b00000000;
_delay_ms(20);
PORTB = 0b00001000;
_delay_ms(200);
PORTB = 0b00000000;
_delay_ms(200);
}
return 1;
}
我不完全确定这个错误是什么意思以及为什么它首先出现,因为我的 mcu 被明确指定为 avr25 类别,而 attiny85 属于该类别。如果我将 mmcu 变量显式设置为 attiny85
,则会产生相同的错误
avr-gcc --version
的输出
% avr-gcc --version
avr-gcc (GCC) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
我还从 AUR 安装了最新的 binutils-avr
和 avr-libc
软件包(分别为 2.20 和 2.1.0)
Fatal error: unknown MCU: gcc-isr
这表明您使用的是过时的 Binutils (as
),并且编译器配置的 Binutils 版本比您实际使用的 Binutils 更新。
从 v8 开始,avr-gcc
支持选项 -mgas-isr-prologues
, and it will activate the respective part of the assembler by calling it with option -mgcc-isr
。该功能是在 Binutils v2.29 中引入的。
你可以
我正在学习使用 MiniPro 在没有引导加载程序的情况下为我的 ATtiny85 编程,我想生成一个 hex 文件。首先,我尝试使用 avr-gcc
命令编译我的文件,但我收到一条错误消息:
Fatal error: unknown MCU: gcc-isr
这是我用来编译文件的命令
avr-gcc -Wall -mmcu=avr25 -Os -DF_CPU=8000000 -c main.c -o main.o
这是我要编译的代码
#define __AVR_ATtiny85__
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB = 0b00001000;
while (1)
{
PORTB = 0b00001000;
_delay_ms(20);
PORTB = 0b00000000;
_delay_ms(20);
PORTB = 0b00001000;
_delay_ms(200);
PORTB = 0b00000000;
_delay_ms(200);
}
return 1;
}
我不完全确定这个错误是什么意思以及为什么它首先出现,因为我的 mcu 被明确指定为 avr25 类别,而 attiny85 属于该类别。如果我将 mmcu 变量显式设置为 attiny85
avr-gcc --version
% avr-gcc --version
avr-gcc (GCC) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
我还从 AUR 安装了最新的 binutils-avr
和 avr-libc
软件包(分别为 2.20 和 2.1.0)
Fatal error: unknown MCU: gcc-isr
这表明您使用的是过时的 Binutils (as
),并且编译器配置的 Binutils 版本比您实际使用的 Binutils 更新。
从 v8 开始,avr-gcc
支持选项 -mgas-isr-prologues
, and it will activate the respective part of the assembler by calling it with option -mgcc-isr
。该功能是在 Binutils v2.29 中引入的。
你可以