现在工程里所有文件都已经编译通过,最后出现如下错误:
avr-objcopy -j .text -j .data -O ihex DataLineSwitch.out DataLineSwitch.hex
avrdude -p atmega128 -c usbasp -e -U flash:w:DataLineSwitch.hex
process_begin: CreateProcess(NULL, avrdude -p atmega128 -c usbasp -e -U flash:w:DataLineSwitch.hex, ...) failed.
make (e=2): 系统找不到指定的文件。
make: *** [all] Error 2
make: Leaving directory `D:/cellhunter/Mydesign/DataLineSw/sourcecode/DataLineSwitch/DataLineSwitch'
Done executing task "RunCompilerTask" -- FAILED.
Done building target "CoreBuild" in project "DataLineSwitch.cproj" -- FAILED.
Done building project "DataLineSwitch.cproj" -- FAILED.
Build FAILED.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========
这个是什么原因呀?搞过的,跪求!谢谢!
------最佳解决方案--------------------
是不是文件不在目录路径下
------其他解决方案--------------------
先确定你的软件是好用的 编个例子试试看
------其他解决方案--------------------
最近在折腾以前买的atmega128a开发板;
你个这句
AVRDUDE=avrdude -p atmega128a -c usbasp -e -U flash:w:
atmega128a
换成
atmega128
我看avrdude的说明只有atmega128这个标示. 前天刚下载成功了.用usb-avr-jtag(山寨的)也可以调试了.eclipse和命令行都弄过.
------其他解决方案--------------------
嗯,是的,后来发现是avrdude文件不在目录下。修改了makefile,产生别的问题了:http://blog.csdn.net/zhengmeifu/article/details/7890049。会的看看。
------其他解决方案--------------------
软件是OK的,现在问题是:我用自己的Makefile就编译成最终的.hex文件,用系统默认的makefile就能编译成功。我要知道我的makefile错在哪?
CC=avr-gcc
CFLAGS=-Wall -Wextra -mmcu=atmega128a -O1 -save-temps -g
AVRDUDE=avrdude -p atmega128a -c usbasp -e -U flash:w:
OBJCOPY=avr-objcopy -j .text -j .data -O ihex
foo:
.PHONY:all
all:DataLineSwitch.hex
# $(AVRDUDE)DataLineSwitch.hex
#DataLineSwitch.hex:DataLineSwitch.out
# $(OBJCOPY) DataLineSwitch.out DataLineSwitch.hex
DataLineSwitch.hex:DataLineSwitch.c adc.o 24c512.o config.h clib.o glob.o glob.h 74hc595d.o i2c.o i2c.h timer.o uart.o uart.h ch375hft.o CH375HFD.h e2prom.o
$(CC) $(CFLAGS) -o DataLineSwitch.hex -c DataLineSwitch.c adc.o 24c512.o clib.o glob.o 74hc595d.o i2c.o timer.o uart.o ch375hft.o e2prom.o -lCH375HFD
上面#号注视掉就能编译通过。AVRDUDE好像是烧写flash的工具。