Board logo

标题: 如何编写WinAVR的 Makefile文件 [打印本页]

作者: 苹果也疯狂    时间: 2015-3-20 22:25     标题: 如何编写WinAVR的 Makefile文件

编译能生成可供AVR执行的代码、仿真调试文件等。


可能大家会奇怪,上面的Main.C 代码,没有告诉电脑AVR芯片的型号、工作频率等,电脑如何知道这些数据?


WinAVR/GCC 使用一个叫 Makefile 的文件,存放这些参数。在WinAVR上也有一个叫Mfile的应用程序去处理这个Makefile 文件。但我们测试时发现,Mfile 的缺陷很多,不好用,并且容易弄错。我们推荐大家直接用记事本等,直接编译这个文件。为了方便阅读与修改,我们将最常用的内容,放到Makefile的最前面,并且作了中文注解。


直接点击这里查看Makefile的具体内容。你可以 复制到本地电脑另存为Makefile,不要改名。


在我们的示范Makefile,会看到以下的内容。建议大家只修改:单片机的类型、系统时钟频率、目标文件名及C源文件名这四项。大家可参考我们的示范修改:




#这是一个简单Makefile,仅用于初学者使用
#修改于WINAVR20050214所生成的Makefile
#简单实验只需更改 [单片机类型][目标文件名][C源文件名][系统时钟频率]即可
#修改好参数后另存到单片机程序所在目录,然后执行[Make All]命令
#生成 烧录FLASH的*.Hex,烧录EEPROM的*.Eep,调试用的*.Elf 文件
#
#           Www.OurAVR.Com


# MCU Name

# 单片机类型 参考格式是:Atmega8 / At90s2313 / Attiny15

MCU = Atmega16


# Processor Frequency.

# 系统时钟频率(Hz),用于生成延时 _delay_us() _delay_ms() 见Delay.H

# This Will Define A Symbol, F_CPU, In All Source Code Files Equal To The

# Processor Frequency. You Can Then Use This Symbol In Your Source Code To

# Calculate Timings. Do NOT Tack On A ''UL'' At The End, This Will Be Done

# Automatically To Create A 32-Bit Value In Your Source Code.

F_CPU = 1000000


# Target File Name (Without Extension).

# 目标文件名(即生成的.Hex/.Eep/.Elf的文件名)

TARGET = Main


# List C Source Files Here. (C Dependencies Are Automatically Generated.)

# C源文件名(不带路径)

# 多个文件名间用空格隔开 例如 SRC = File1.C File2.C File3.C

# 不需要加上 H头文件

SRC = $(TARGET).C


#**************后面内容基本不需要修改,除非你是老手*****************************#


# Output Format. (Can Be Srec, Ihex, Binary)

# 输出烧录文件格式

FORMAT = Ihex


# Optimization Level, Can Be [0, 1, 2, 3, S].

# 优化级别

# ...... 下面的内容此处省略 ....


将我们这个示范的 Makefile 文件,下载后拷贝到 C:avr_test 目录中。上面我们已经设置了ATmega16芯片,工作在1M的频率里,主文件名叫 Main.C ,只有一个文件。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0