Forum: Compiler & IDEs AVR mit VScode


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael M. (michael_m912)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.