当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : avr 的 Makefile
帖子发表于 : 2013-03-08 23:16 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
代码:
● cat Makefile
CC=avr-gcc
MCU=atmega8
OUTPUT=a
CFLAGS=-Wall -Wextra -mmcu=$(MCU) -O1 -g
AVRDUDE=avrdude -p m8 -c usbasp
OBJCOPY=avr-objcopy -j .text -j .data -O ihex
OBJDUMP=avr-objdump
SIZE=avr-size
#------------------------------------------
allsrc := $(wildcard src/*.c)
allobj := $(patsubst src/%.c, obj/%.o,$(allsrc))

#目标:依赖;命令
compile :: $(allobj) link
all :: compile download monitor

obj/%.o :: src/%.c
   $(CC) $(CFLAGS) -c $< -o $@
#    隐含规则,不适合带路径的情况。
#    for i in src/*.c; do j=`basename $i`; j=obj/${j%%.c}.o; avr-gcc -c $i -o $j -mmcu=atmega8 -g -O1 -Wall; done;
#   $@ 扩展成当前规则的目的文件名, $< 扩展成依靠列表中的第 一个依靠文件,而 $^ 扩展成整个依靠的列表(除掉了里面所有重 复的文件名)。
#    .PHONY 假象目的,强制不检查时间,直接更新。
link:
   $(CC) $(CFLAGS) -o $(OUTPUT).out obj/*
   $(OBJDUMP) -dS $(OUTPUT).out >$(OUTPUT).asm
   $(OBJCOPY) $(OUTPUT).out $(OUTPUT).hex
   $(SIZE) $(OUTPUT).out -C --mcu=$(MCU)
#------------------------------------------
fuse8M:
   $(AVRDUDE) -U lfuse:w:0xe4:m
#------------------------------------------
download:
   $(AVRDUDE) -e -U flash:w:$(OUTPUT).hex
#------------------------------------------
monitor:
   stty -F /dev/ttyUSB0 9600 cs8 -parenb -cstopb
#    stty -F /dev/ttyUSB0 5:0:8bd:0:3:1c:7f:15:4:0:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
   cat /dev/ttyUSB0
#------------------------------------------


_________________
● 鸣学


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译