我有一个Makefile这样的:传递一个额外的参数,使
baud=19200
src=dimmer
avrType=attiny13
programmerDev=/dev/ttyUSB003
programmerType=stk500v1
object:
avr-gcc -g -DF_CPU=$(avrFreq) -Wall -Os -mmcu=$(avrType) -c -o $(src).o $(src).cpp
read:
@for memory in calibration eeprom efuse flash fuse hfuse lfuse lock signature application apptable boot prodsig usersig; do \
avrdude -p $(avrType) -c$(programmerType) -P$(programmerDev) -b$(baud) -v -U $$memory:r:./$(avrType).$$memory.hex:i; \
done
如预期其中一期工程。当我输入make read
时,几个文件从微控制器中提取出来。这可能需要一点时间,因为连接速度和数据量都很慢,所以我认为只需输入make read flash
就可以了,但我不知道该怎么做。
当然,我可以让条目像read_flash
,read_hfuse
......但我有一种感觉,它可以做得更聪明。
我也希望能够运行一个像make read all
这样的命令,它将依次从控制器执行每个文件。
现在我是创建Makfile的新手了,所以也许我一直在错误的轨道上。请随时解释应该如何完成。
我在Linux上。
我不明白你的第一句话,你能澄清一下吗? “如果你可以接受一个高度GNU特定的makefile(我认为使用便携式make比GNU更好,而不是写入便携式makefile),” – jippie
这个答案包含一个makefile,它只能在GNU make。从这个意义上说,它不是“便携”的。我也在说这不一定是件坏事,因为不是编写一个可移植的makefile,最好定位一个可移植的'make'程序。见[保罗的制造规则](http://mad-scientist.net/make/rules.html)中的第一个条目。 – Idelic