I'm sorry i can't solve it by myself, i'm not used with arm-elf-gcc and these makefile commands. :/ the directory with the source and the error screenshot are attached,. so the error is the following: --------------------------------------------------------------------- <after make command> arm-elf-gcc -c -Wa boot.s -o boot.o process_begin: CreateProcess((null), arm-elf-gcc -c -Wa boot.s -o boot.o,...) failed. make (e=2): The system cannot find the file specified. make: *** [boot.o] Error 2 --------------------------------------------------------------------- The makefile is the following: PRG = blink OBJ = boot.o blink.o OPTIMIZE = -g # USE_THUMB_MODE = YES LDSCRIPT = lpc2214-rom.ld DEFS = LIBS = # You should not have to change anything below here. CC = arm-elf-gcc OBJCOPY = arm-elf-objcopy OBJDUMP = arm-elf-objdump ARCH = arm-elf-ar CFLAGS=-Wall -I. $(DEBUG) -mcpu=arm7tdmi -nostartfiles -T$(LDSCRIPT) \ -Wcast-align $(OPTIMIZE) $(DEFS) ifeq ($(USE_THUMB_MODE),YES) CFLAGS += -mthumb -mthumb-interwork endif ASFLAGS=-Wa $(PRG).elf: $(OBJ) $(LDSCRIPT) makefile $(CC) $(CFLAGS) $(LDFLAGS) $(LIBS) $(OBJ) -o $@ clean: rm -rf *.o *.lst $(PRG).elf $(PRG).hex $(PRG).bin lst: $(PRG).lst %.lst: %.elf $(OBJDUMP) -h -S $< > $@ %.o : %.s makefile $(CC) -c $(ASFLAGS) $< -o $@ %.o : %.c makefile $(CC) -c $(CFLAGS) $< -o $@ hex: $(PRG).hex %.hex: %.elf $(OBJCOPY) -O ihex $< $@ bin: $(PRG).bin %.bin: %.elf $(OBJCOPY) -O binary $< $@ run: $(PRG).hex jtag_flash $(PRG).hex debug: $(PRG).hex jtag_flash $(PRG).hex N arm-elf-insight $(PRG).elf & jtag_stub -----------------------------------------------------------
:
Locked by Moderator
Verify that arm-elf-gcc.exe is in a directory mentioned in the path-environment variable.
my path variable is the following: %SystemRoot%\system32; %SystemRoot%; %SystemRoot%\System32\Wbem; C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\; C:\Program Files\MATLAB\R2009b\runtime\win64; C:\Program Files\MATLAB\R2009b\bin; C:\GNUARM\bin; C:\GNUARM\bin\utils\bin; C:\GNUARM\bin\utils; i tried again and it still happening :(
arm-elf-gcc.exe in located in c:\gnuarm\bin ? Try start->run->cmd->arm-elf-gcc --version to check if the system finds the executable. I don't know the latest version of GNUARM but there have been issues with Vista but IRC at a later stage while linking. If the executable is in the path but make still can not find the compiler you may try another package, i.e. Yagarto (prefix still arm-elf AFAIK), Codesourcery G++ lite (prefix arm-none-eabi-) or DevkitARM (prefix arm-eabi). Adjust the prefix in the makefile if needed.
Martin Thomas wrote: > arm-elf-gcc.exe in located in c:\gnuarm\bin ? Try > start->run->cmd->arm-elf-gcc --version to check if the system finds the > executable. I don't know the latest version of GNUARM but there have > been issues with Vista but IRC at a later stage while linking. If the > executable is in the path but make still can not find the compiler you > may try another package, i.e. Yagarto (prefix still arm-elf AFAIK), > Codesourcery G++ lite (prefix arm-none-eabi-) or DevkitARM (prefix > arm-eabi). Adjust the prefix in the makefile if needed. yes... thats what i did... now i'm using winarm on vista and it works perfectly now :)
I have the same error also on vista. I checked the arm-elf-gcc version 4.1.1. which is in the C:\WinAVR\bin folder. This is included in the path variables. The makefile comes from a sparkfun bootloader tutorial example so that should work, sadly it does not. It seems that it cannot find the file, can you suggert where this reference goes wrong? FLASH_TOOL = LPC12 #FLASH_TOOL = UVISION #FLASH_TOOL = OPENOCD # MCU name and submodel MCU = arm7tdmi-s SUBMDL = LPC2138 #THUMB = -mthumb #This is needed to run IAP function call stuff THUMB_IW = -mthumb-interwork ## Create ROM-Image (final) RUN_MODE=ROM_RUN ## Create RAM-Image (debugging) - not used in this example #RUN_MODE=RAM_RUN # not supported in this example: ## Exception-Vector placement only supported for "ROM_RUN" ## (placement settings ignored when using "RAM_RUN") ## - Exception vectors in ROM: ##VECTOR_LOCATION=VECTORS_IN_ROM ## - Exception vectors in RAM: ##VECTOR_LOCATION=VECTORS_IN_RAM # Target file name (without extension). TARGET = main # List C source files here. (C dependencies are automatically generated.) # use file-extension c for "c-only"-files SRC = $(TARGET).c SRC += syscalls.c # List C source files here which must be compiled in ARM-Mode. # use file-extension c for "c-only"-files #SRCARM = $(LIBPATH)irq.c # List C++ source files here. # use file-extension cpp for C++-files (use extension .cpp) CPPSRC = # List C++ source files here which must be compiled in ARM-Mode. # use file-extension cpp for C++-files (use extension .cpp) #CPPSRCARM = $(TARGET).cpp CPPSRCARM = # List Assembler source files here. # Make them always end in a capital .S. Files ending in a lowercase .s # will not be considered source files but generated files (assembler # output from the compiler), and will be deleted upon "make clean"! # Even though the DOS/Win* filesystem matches both .s and .S the same, # it will preserve the spelling of the filenames, and gcc itself does # care about how the name is spelled on its command-line. ASRC = # List Assembler source files here which must be assembled in ARM-Mode.. ASRCARM = Startup.S #ASRCARM = crt.S #ASRCARM += $(WINARM_COMMON)\Common_WinARM/src/swi_handler.S ## Output format. (can be ihex or binary) ## (binary i.e. for openocd and SAM-BA, hex i.e. for lpc21isp and uVision) FORMAT = ihex #FORMAT = binary # Optimization level, can be [0, 1, 2, 3, s]. # 0 = turn off optimization. s = optimize for size. # (Note: 3 is not always the best optimization level. See avr-libc FAQ.) OPT = s #OPT = 0 ## Using the Atmel AT91_lib produces warning with ## the default warning-levels. ## yes - disable these warnings; no - keep default settings #AT91LIBNOWARN = yes AT91LIBNOWARN = no # Debugging format. # Native formats for AVR-GCC's -g are stabs [default], or dwarf-2. # AVR (extended) COFF requires stabs, plus an avr-objcopy run. #DEBUG = stabs DEBUG = dwarf-2 # List any extra directories to look for include files here. # Each directory must be seperated by a space. EXTRAINCDIRS = # List any extra directories to look for library files here. # Each directory must be seperated by a space. #EXTRA_LIBDIRS = ../arm7_efsl_0_2_4 EXTRA_LIBDIRS = # Compiler flag to set the C Standard level. # c89 - "ANSI" C # gnu89 - c89 plus GCC extensions # c99 - ISO C99 standard (not yet fully implemented) # gnu99 - c99 plus GCC extensions CSTANDARD = -std=gnu99 # Place -D or -U options for C here CDEFS = -D$(RUN_MODE) # Place -I options here #CINCS = -I $(LIBPATH) CINCS = # Place -D or -U options for ASM here ADEFS = -D$(RUN_MODE) ifdef VECTOR_LOCATION CDEFS += -D$(VECTOR_LOCATION) ADEFS += -D$(VECTOR_LOCATION) endif CDEFS += -D__WinARM__ ADEFS += -D__WinARM__ # Compiler flags. # -g*: generate debugging information # -O*: optimization level # -f...: tuning, see GCC manual and avr-libc documentation # -Wall...: warning level # -Wa,...: tell GCC to pass this to the assembler. # -adhlns...: create assembler listing # # Flags for C and C++ (arm-elf-gcc/arm-elf-g++) CFLAGS = -g$(DEBUG) CFLAGS += $(CDEFS) $(CINCS) CFLAGS += -O$(OPT) CFLAGS += -Wall -Wcast-align -Wimplicit CFLAGS += -Wpointer-arith -Wswitch CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow -Wunused CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$<) CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS)) # flags only for C CONLYFLAGS += -Wnested-externs CONLYFLAGS += $(CSTANDARD) ifneq ($(AT91LIBNOWARN),yes) #AT91-lib warnings with: CFLAGS += -Wcast-qual CONLYFLAGS += -Wmissing-prototypes CONLYFLAGS += -Wstrict-prototypes CONLYFLAGS += -Wmissing-declarations endif # flags only for C++ (arm-elf-g++) # CPPFLAGS = -fno-rtti -fno-exceptions CPPFLAGS = # Assembler flags. # -Wa,...: tell GCC to pass this to the assembler. # -ahlns: create listing # -g$(DEBUG): have the assembler create line number information ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:.S=.lst),-g$(DEBUG) #Additional libraries. # Extra libraries # Each library-name must be seperated by a space. # To add libxyz.a, libabc.a and libefsl.a: # EXTRA_LIBS = xyz abc efsl #EXTRA_LIBS = efsl EXTRA_LIBS = #Support for newlibc-lpc (file: libnewlibc-lpc.a) #NEWLIBLPC = -lnewlib-lpc MATH_LIB = -lm # CPLUSPLUS_LIB = -lstdc++ # Linker flags. # -Wl,...: tell GCC to pass this to linker. # -Map: create map file # --cref: add cross reference to map file LDFLAGS = -nostartfiles -Wl,-Map=$(TARGET).map,--cref LDFLAGS += -lc LDFLAGS += $(NEWLIBLPC) $(MATH_LIB) LDFLAGS += -lc -lgcc LDFLAGS += $(CPLUSPLUS_LIB) LDFLAGS += $(patsubst %,-L%,$(EXTRA_LIBDIRS)) LDFLAGS += $(patsubst %,-l%,$(EXTRA_LIBS)) # Set Linker-Script Depending On Selected Memory and Controller #This line is used if you want to load main.hex into 0x00 #LDFLAGS +=-Tlpc2138.cm LDFLAGS += -Tmain_memory_block.ld # ------------------------------------------------------------------------ --- # Flash-Programming support using lpc21isp by Martin Maurer # only for Philips LPC and Analog ADuC ARMs # # Settings and variables: #LPC21ISP = lpc21isp LPC21ISP = lpc21isp LPC21ISP_PORT = com1 LPC21ISP_BAUD = 38400 LPC21ISP_XTAL = 12000 LPC21ISP_FLASHFILE = $(TARGET).hex # verbose output: #LPC21ISP_DEBUG = -debug # enter bootloader via RS232 DTR/RTS (only if hardware supports this # feature - see Philips AppNote): LPC21ISP_CONTROL = -control # ------------------------------------------------------------------------ --- # Define directories, if needed. ## DIRARM = c:/WinARM/ ## DIRARMBIN = $(DIRAVR)/bin/ ## DIRAVRUTILS = $(DIRAVR)/utils/bin/ # Define programs and commands. SHELL = sh CC = arm-elf-gcc CPP = arm-elf-g++ OBJCOPY = arm-elf-objcopy OBJDUMP = arm-elf-objdump SIZE = arm-elf-size NM = arm-elf-nm REMOVE = rm -f COPY = cp # Define Messages # English MSG_ERRORS_NONE = Errors: none MSG_BEGIN = "-------- begin (mode: $(RUN_MODE)) --------" MSG_END = -------- end -------- MSG_SIZE_BEFORE = Size before: MSG_SIZE_AFTER = Size after: MSG_FLASH = Creating load file for Flash: MSG_EXTENDED_LISTING = Creating Extended Listing: MSG_SYMBOL_TABLE = Creating Symbol Table: MSG_LINKING = Linking: MSG_COMPILING = Compiling C: MSG_COMPILING_ARM = "Compiling C (ARM-only):" MSG_COMPILINGCPP = Compiling C++: MSG_COMPILINGCPP_ARM = "Compiling C++ (ARM-only):" MSG_ASSEMBLING = Assembling: MSG_ASSEMBLING_ARM = "Assembling (ARM-only):" MSG_CLEANING = Cleaning project: MSG_FORMATERROR = Can not handle output-format MSG_LPC21_RESETREMINDER = You may have to bring the target in bootloader-mode now. # Define all object files. COBJ = $(SRC:.c=.o) AOBJ = $(ASRC:.S=.o) COBJARM = $(SRCARM:.c=.o) AOBJARM = $(ASRCARM:.S=.o) CPPOBJ = $(CPPSRC:.cpp=.o) CPPOBJARM = $(CPPSRCARM:.cpp=.o) # Define all listing files. LST = $(ASRC:.S=.lst) $(ASRCARM:.S=.lst) $(SRC:.c=.lst) $(SRCARM:.c=.lst) LST += $(CPPSRC:.cpp=.lst) $(CPPSRCARM:.cpp=.lst) # Compiler flags to generate dependency files. ### GENDEPFLAGS = -Wp,-M,-MP,-MT,$(*F).o,-MF,.dep/$(@F).d GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d # Combine all necessary flags and optional flags. # Add target processor to flags. ALL_CFLAGS = -mcpu=$(MCU) $(THUMB_IW) -I. $(CFLAGS) $(GENDEPFLAGS) ALL_ASFLAGS = -mcpu=$(MCU) $(THUMB_IW) -I. -x assembler-with-cpp $(ASFLAGS) # Default target. all: begin gccversion sizebefore build sizeafter finished end #ifeq ($(FORMAT),ihex) #build: elf hex lss sym #hex: $(TARGET).hex #IMGEXT=hex #else #ifeq ($(FORMAT),binary) #build: elf bin lss sym hex FW.SFE build: elf lss sym hex FW.SFE #bin: $(TARGET).bin hex: $(TARGET).hex #IMGEXT=bin #else #$(error "$(MSG_FORMATERROR) $(FORMAT)") #endif #endif elf: $(TARGET).elf lss: $(TARGET).lss sym: $(TARGET).sym # Eye candy. begin: @echo @echo $(MSG_BEGIN) finished: @echo $(MSG_ERRORS_NONE) end: @echo $(MSG_END) @echo # Display size of file. HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex ELFSIZE = $(SIZE) -A $(TARGET).elf sizebefore: @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi sizeafter: @if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi # Display compiler version information. gccversion : @$(CC) --version # Program the device. ifeq ($(FLASH_TOOL),UVISION) # Program the device with Keil's uVision (needs configured uVision-Workspace). program: $(TARGET).$(IMGEXT) @echo @echo "Programming with uVision" # C:\Keil\uv3\Uv3.exe -f uvisionflash.Uv2 -ouvisionflash.txt $(REMOVE) ../Common_WinARM/$(TARGET).hex $(COPY) $(TARGET).hex ../Common_WinARM/ C:\Keil\uv3\Uv3.exe -f ..\Common_WinARM\uvisionflash.Uv2 else ifeq ($(FLASH_TOOL),OPENOCD) # Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script". program: $(TARGET).$(IMGEXT) @echo @echo "Programming with OPENOCD" C:\WinARM\utils\openocd\openocd_svn59\openocd.exe -f oocd_flash2138_wig.cfg else # Program the device. - lpc21isp will not work for SAM7 program: $(TARGET).$(IMGEXT) @echo @echo $(MSG_LPC21_RESETREMINDER) $(LPC21ISP) $(LPC21ISP_OPTIONS) $(LPC21ISP_DEBUG) $(LPC21ISP_FLASHFILE) $(LPC21ISP_PORT) $(LPC21ISP_BAUD) $(LPC21ISP_XTAL) endif endif # Create final output file (.hex) from ELF output file. %.hex: %.elf @echo @echo $(MSG_FLASH) $@ $(OBJCOPY) -O ihex $< $@ # Create final output file (.bin) from ELF output file. #%.bin: %.elf # @echo # @echo $(MSG_FLASH) $@ # $(OBJCOPY) -O binary $< $@ # Create final output file (.bin) from ELF output file. FW.SFE: main.elf @echo @echo $(MSG_FLASH) $@ $(OBJCOPY) -O binary $< $@ # Create extended listing file from ELF output file. # testing: option -C %.lss: %.elf @echo @echo $(MSG_EXTENDED_LISTING) $@ $(OBJDUMP) -h -S -C $< > $@ # Create a symbol table from ELF output file. %.sym: %.elf @echo @echo $(MSG_SYMBOL_TABLE) $@ $(NM) -n $< > $@ # Link: create ELF output file from object files. .SECONDARY : $(TARGET).elf .PRECIOUS : $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) %.elf: $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) @echo @echo $(MSG_LINKING) $@ $(CC) $(THUMB) $(ALL_CFLAGS) $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) --output $@ $(LDFLAGS) # $(CPP) $(THUMB) $(ALL_CFLAGS) $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) --output $@ $(LDFLAGS) # Compile: create object files from C source files. ARM/Thumb $(COBJ) : %.o : %.c @echo @echo $(MSG_COMPILING) $< $(CC) -c $(THUMB) $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@ # Compile: create object files from C source files. ARM-only $(COBJARM) : %.o : %.c @echo @echo $(MSG_COMPILING_ARM) $< $(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@ # Compile: create object files from C++ source files. ARM/Thumb $(CPPOBJ) : %.o : %.cpp @echo @echo $(MSG_COMPILINGCPP) $< $(CPP) -c $(THUMB) $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@ # Compile: create object files from C++ source files. ARM-only $(CPPOBJARM) : %.o : %.cpp @echo @echo $(MSG_COMPILINGCPP_ARM) $< $(CPP) -c $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@ # Compile: create assembler files from C source files. ARM/Thumb ## does not work - TODO - hints welcome ##$(COBJ) : %.s : %.c ## $(CC) $(THUMB) -S $(ALL_CFLAGS) $< -o $@ # Assemble: create object files from assembler source files. ARM/Thumb $(AOBJ) : %.o : %.S @echo @echo $(MSG_ASSEMBLING) $< $(CC) -c $(THUMB) $(ALL_ASFLAGS) $< -o $@ # Assemble: create object files from assembler source files. ARM-only $(AOBJARM) : %.o : %.S @echo @echo $(MSG_ASSEMBLING_ARM) $< $(CC) -c $(ALL_ASFLAGS) $< -o $@ # Target: clean project. clean: begin clean_list finished end clean_list : @echo @echo $(MSG_CLEANING) $(REMOVE) ../Common_WinARM/$(TARGET).hex $(REMOVE) $(TARGET).hex $(REMOVE) $(TARGET).bin $(REMOVE) $(TARGET).obj $(REMOVE) $(TARGET).elf $(REMOVE) $(TARGET).map $(REMOVE) $(TARGET).obj $(REMOVE) $(TARGET).a90 $(REMOVE) $(TARGET).sym $(REMOVE) $(TARGET).lnk $(REMOVE) $(TARGET).lss $(REMOVE) $(COBJ) $(REMOVE) $(CPPOBJ) $(REMOVE) $(AOBJ) $(REMOVE) $(COBJARM) $(REMOVE) $(CPPOBJARM) $(REMOVE) $(AOBJARM) $(REMOVE) $(LST) $(REMOVE) $(SRC:.c=.s) $(REMOVE) $(SRC:.c=.d) $(REMOVE) $(SRCARM:.c=.s) $(REMOVE) $(SRCARM:.c=.d) $(REMOVE) $(CPPSRC:.cpp=.s) $(REMOVE) $(CPPSRC:.cpp=.d) $(REMOVE) $(CPPSRCARM:.cpp=.s) $(REMOVE) $(CPPSRCARM:.cpp=.d) $(REMOVE) .dep/* # Include the dependency files. -include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*) # Listing of phony targets. .PHONY : all begin finish end sizebefore sizeafter gccversion \ #build elf hex lss sym clean clean_list program
Problem solved, nothing was wrong. You have to start programmers notepad from pn.exe You can find an explanation on this link: http://winarm.scienceprog.com/winarm-tools/quick-start-using-winarm.html I can make all with errors none now.