AVR mit VScode

OP #6276211
Lesenswert?

Hallo zusammen,
ich kämpfe nun seit gut 3 Stunden im VScode den Compiler am start zu 
bekommen. Ich bekomme folgende Fehlermeldungen im Terminal
Kommen die Meldungen vom Compiler? Denn mein VSCode erkennt die LIB's

Vielleicht sieht jemand einen Fehler?

make
gcc    -c main.c -o main.o
main.c:27: avr/io.h: No such file or directory
main.c:28: avr/interrupt.h: No such file or directory
main.c:33: stdint.h: No such file or directory
main.c:37: util/delay.h: No such file or directory

das Makefile habe ich mir aus dem Debug Ordner meines Projektes bei 
Atmel Studio rauskoppiert.

Makefile
---------------
######################################################################## 
########
# Automatically-generated file. Do not edit!
######################################################################## 
########

SHELL := cmd.exe
RM := rm -rf

USER_OBJS :=

LIBS :=
PROJ :=

O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
LINKER_SCRIPT_DEP:=

# Every subdirectory with source files must be described here
SUBDIRS :=


# Add inputs and outputs from these tool invocations to the build 
variables
C_SRCS +=  \
main.c


PREPROCESSING_SRCS +=


ASM_SRCS +=


OBJS +=  \
main.o

OBJS_AS_ARGS +=  \
main.o

C_DEPS +=  \
main.d

C_DEPS_AS_ARGS +=  \
main.d

OUTPUT_FILE_PATH +=MultiSwitch_4.elf

OUTPUT_FILE_PATH_AS_ARGS +=MultiSwitch_4.elf

ADDITIONAL_DEPENDENCIES:=

OUTPUT_FILE_DEP:= ./makedep.mk

LIB_DEP+=

LINKER_SCRIPT_DEP+=


# AVR32/GNU C Compiler



./%.o: .././%.c
  @echo Building file: $<
  @echo Invoking: AVR/GNU C Compiler : 4.9.2
  $(QUOTE)C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe 
$(QUOTE)   -x c -funsigned-char -funsigned-bitfields -DDEBUG 
-I"C:\Program Files 
(x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\include"  -O1 
-ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 
-Wall -mmcu=atmega168p -B "C:\Program Files 
(x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev\atmega168p 
"  -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" 
-MT"$(@:%.o=%.o)"   -o "$@" "$<"
  @echo Finished building: $<




# AVR32/GNU Preprocessing Assembler



# AVR32/GNU Assembler




ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif

# Add inputs and outputs from these tool invocations to the build 
variables

# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)

$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) 
$(LINKER_SCRIPT_DEP)
  @echo Building target: $@
  @echo Invoking: AVR/GNU Linker : 4.9.2
  $(QUOTE)C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe 
$(QUOTE)  -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) 
$(LIBS) -Wl,-Map="MultiSwitch_4.map" -Wl,--start-group -Wl,-lm 
-Wl,--end-group -Wl,--gc-sections -mmcu=atmega168p -B "C:\Program Files 
(x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev\atmega168p 
"
  @echo Finished building target: $@
  "C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy 
.exe"  -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R 
.user_signatures  "MultiSwitch_4.elf" "MultiSwitch_4.hex"
  "C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy 
.exe"  -j .eeprom  --set-section-flags=.eeprom=alloc,load 
--change-section-lma .eeprom=0  --no-change-warnings -O ihex 
"MultiSwitch_4.elf" "MultiSwitch_4.eep" || exit 0
  "C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump 
.exe"  -h -S "MultiSwitch_4.elf" > "MultiSwitch_4.lss"
  "C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy 
.exe"  -O srec -R .eeprom -R .fuse -R .lock -R .signature -R 
.user_signatures "MultiSwitch_4.elf" "MultiSwitch_4.srec"
  "C:\Program Files 
(x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.ex 
e"  "MultiSwitch_4.elf"







# Other Targets
clean:
  -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
  -$(RM) $(C_DEPS_AS_ARGS)
  rm -rf "MultiSwitch_4.elf" "MultiSwitch_4.a" "MultiSwitch_4.hex" 
"MultiSwitch_4.lss" "MultiSwitch_4.eep" "MultiSwitch_4.map" 
"MultiSwitch_4.srec" "MultiSwitch_4.usersignatures"

------------


meine c_cpp_properties.json
------------
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\Program Files (x86)\\Atmel\\Atmel Toolchain\\AVR8 
GCC\\Native\\3.4.1061\\avr8-gnu-toolchain\\avr\\include"
            ],
            "browse": {
                "limitSymbolsToIncludedHeaders": false,
                "path": [
                    "C:\\Program Files (x86)\\Atmel\\Atmel 
Toolchain\\AVR8 GCC\\Native\\3.4.1061\\avr8-gnu-toolchain\\avr\\include"
                ]
            },
            "defines": [
                "__AVR_ATmega168PA__"
            ],
            "windowsSdkVersion": "10.0.10586.0",
            "compilerPath": "C:\\Program Files 
(x86)\\Atmel\\Studio\\7.0\\toolchain\\avr8\\avr8-gnu-toolchain\\bin\\avr 
-gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}


-----------
Gast #6276220
Lesenswert?

Huhu,

schau dir mal die "AVR Helper" Extension an. Da must du zwar den avr-gcc 
und co selber installieren und kannst nicht das Atmel Studio nutzen, 
aber vielleicht ist das einfacher zu handhaben.

btw. msys2 lohnt sich dabei immer zu installieren und dananch noch das 
bin Verzeichnis von zum pfad hinzufügen.
Gast #6276304
Lesenswert?

Falls das dein compiler ouput ist:
gcc    -c main.c -o main.o

Dann wird nicht avr-gcc aufgerufen, sondern ein anderer gcc.
Der hat wiederrum nicht die benötigten Header.
Schau mal mit sysinternals process monitor nach welche gcc executable 
wirklich aufgerufen wird.
Gast #6276759
Lesenswert?

Ganz einfach gehts, wenn du dir platformio im vscode installierst.
Das verwaltet dann Compiler & Tools in den gewünschten Versionen, 
Frameworks, Bibliotheken, Flash-tools usw. vollautomatisch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren