Forum: Compiler & IDEs AVR mit VScode


von Michael M. (michael_m912)


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
}


-----------

von nicht"Gast" (Gast)


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.

von Mate Rigo (Gast)


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.

von Extraleicht (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.