点灯的星4 发表于 2013-2-2 21:18:52

avr开发环境的讨论

本人一直用ICCAVR的开发环境。但是最近在网上买了个网络模块,自动的资料里有avr的代码。但是就是不知道用什么开发环境打开的。winavr,AtmelStudio都是过貌似都不是
请高手指教。这里是源文件。

i55x 发表于 2013-2-2 21:34:28

那么iar的可能性比较大

zcx2012 发表于 2013-2-2 21:39:12

gcc 的,就是 winavr 的那个

zcx2012 发表于 2013-2-2 21:48:20

你用AVR Studio 就可以打开了,我估计你是问为什么看到的文件这么乱,那是因为编码格式的不同,你把文件复制到Word 中在 拷贝到原来的文件中就行了

zcx2012 发表于 2013-2-2 21:58:13

attach://89193.png

yklstudent 发表于 2013-2-2 22:01:40

编译了下 就是WINAVR的就是不知道什么版本的
不过估计影响也不大

yklstudent 发表于 2013-2-2 22:06:06

zcx2012 发表于 2013-2-2 21:58 static/image/common/back.gif
attach://89193.png

问下 cmd下可以编译??????

笑笑我笑了 发表于 2013-2-2 22:06:45

是AVR-GCC的,因为有Makefile啊,Makefile里面写了编译器之类的啊.
LS的那张图也很能说明问题啊

笑笑我笑了 发表于 2013-2-2 22:07:45

yklstudent 发表于 2013-2-2 22:06 static/image/common/back.gif
问下 cmd下可以编译??????

执行个shell命令:make就行了

yklstudent 发表于 2013-2-2 22:16:53

笑笑我笑了 发表于 2013-2-2 22:07 static/image/common/back.gif
执行个shell命令:make就行了

进入5楼的界面不难我就是不懂在这样的界面下怎么编译一个工程呢(含多个文件)????
你说的不是很了解 不知道能否给详细讲解下
或者介绍下这方面的资料可以看看

笑笑我笑了 发表于 2013-2-2 22:36:52

yklstudent 发表于 2013-2-2 22:16 static/image/common/back.gif
进入5楼的界面不难我就是不懂在这样的界面下怎么编译一个工程呢(含多个文件)????
你说的不是很了 ...

在UNIX等等下管理工程是用Makefile管理的.Makefile里包含了要编译文件啊啊,编译器啊,要链接的库文件啊,包含头文件啊.
然后Make这个程序会自动寻找到Makefile这个文件,然后解析这个文件的内容,然后调用编译器编译.贴个STM32F3的makefile:# put your *.o targets here, make should handle the rest!
SRCS = main.c stm32f30x_it.c system_stm32f30x.c 12864.c

# all the files will be generated with this name (main.elf, main.bin, main.hex, etc)

PROJ_NAME=main

# that's it, no need to change anything below this line!

###################################################

export CC=arm-none-eabi-gcc
export LD=arm-none-eabi-gcc
export AR=arm-none-eabi-ar
export AS=arm-none-eabi-as
export OBJCOPY=arm-none-eabi-objcopy
export RANLIB=arm-none-eabi-ranlib

export LDFLAGS=-Wl,-T,stm32f30_flash.ld
LDFLAGS += -L../FWLib -lstm32f3
LDFLAGS += -lfastmathfunc

#export CFLAGS=-g -O1 -c -nostdlib -fno-common
#CFLAGS += -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mthumb-interwork -mlittle-endian -mfpu=fpv4-sp-d16
#CFLAGS += -DUSE_STDPERIPH_DRIVER -DSTM32F4XX -DMANGUSTA_DISCOVERY -DHSE_VALUE=8000000
export CFLAGS=-g -O2
CFLAGS += -mlittle-endian -mthumb -mcpu=cortex-m4 -mthumb-interwork -Wall
CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16
CFLAGS += -ffreestanding -nostdlib
CFLAGS += -D STM32F30X -DARM_MATH_CM4
CFLAGS += -I ./

#CWD = $(shell pwd)
#export ROOT=$(CWD)
#export LIB_ROOT=$(ROOT)/lib

###################################################

vpath %.c ../FWLib/src

CFLAGS += -I../FWLib/inc -I../CMSIS/Include
CFLAGS += -I../CMSIS/Device/ST/STM32F30x/Include

SRCS += ../STARTCODE/startup_stm32f30x.s # add startup file to build

OBJS = $(SRCS:.c=.o)

###################################################

.PHONY: proj

all:         proj


lib:
        $(MAKE) -C lib

proj:         $(PROJ_NAME).elf

$(PROJ_NAME).elf: $(SRCS)
        $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
#        $(LD) $(LDFLAGS) --verbose -o $@ $(OBJS) -lstm32f4
        $(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex
        $(OBJCOPY) -O binary $(PROJ_NAME).elf $(PROJ_NAME).bin

clean:
        rm -f *.o
        rm -f $(PROJ_NAME).elf
        rm -f $(PROJ_NAME).hex
        rm -f $(PROJ_NAME).bin如果你用过GCC的话,应该看起来没什么压力吧.

SRCS是要编译的C文件
CC 是C编译器
AS 是汇编器
LD 是链接器
CFLAGS 是编译选项
LDFLAGS 是链接选项
最难的是% 啊 @啊 代表的是什么

yklstudent 发表于 2013-2-2 22:43:07

笑笑我笑了 发表于 2013-2-2 22:36 static/image/common/back.gif
在UNIX等等下管理工程是用Makefile管理的.Makefile里包含了要编译文件啊啊,编译器啊,要链接的库文件啊,包 ...

前辈只是对GCC了解点
但没研究过makefile
都是用WINAVR自动生成的

笑笑我笑了 发表于 2013-2-2 22:52:18

yklstudent 发表于 2013-2-2 22:43 static/image/common/back.gif
前辈只是对GCC了解点
但没研究过makefile
都是用WINAVR自动生成的

可以自己尝试写下Makefile啊,多写两遍简单的,复杂点的也就看的懂了.下面这个可以参考下
http://blog.csdn.net/haoel/article/details/2886
如果在在windows上开发个人觉得没什么必要了解Makefile啊.
MDK,IAR什么的都不是用Makefile管理项目的吧.

zcx2012 发表于 2013-2-2 23:00:59

笑笑我笑了 发表于 2013-2-2 22:52 static/image/common/back.gif
可以自己尝试写下Makefile啊,多写两遍简单的,复杂点的也就看的懂了.下面这个可以参考下
http://blog.csdn ...

windows下面是 IDe自动生成的makefile

zcx2012 发表于 2013-2-2 23:01:34

yklstudent 发表于 2013-2-2 22:06 static/image/common/back.gif
问下 cmd下可以编译??????

我也不懂,我打开就是告诉你是编码错误 才显示成那样的

点灯的星4 发表于 2013-2-3 12:43:10

本帖最后由 点灯的星4 于 2013-2-3 12:59 编辑

看大家说的,好像跟windows下的project不是一个概念。不能像keil一样点击一个project就能直接打开吗。4楼说的似乎有道理,但是我还是不明白,
如何是用winavr的话再用pn进行编辑时应该会有图中的文件,就像project文件一样。但是貌似没找到。

点灯的星4 发表于 2013-2-3 12:53:48

本帖最后由 点灯的星4 于 2013-2-3 12:55 编辑

8楼的意思难道是要在unix或linux平台下编辑吗?本人暂时还停留在windows下的单片机编程,对于其他操作系统还不是很了解,望大神指教

yklstudent 发表于 2013-2-3 13:03:55

avr studio4下打开的

点灯的星4 发表于 2013-2-3 14:56:46

18楼真给力,用avrstudio4打开了。先前我用的是atmelStudio6打开,好像不行。这两不知道什么关系,不知道是不是高版本和低版本的区别。
不过网上不是一直说avrstudio只能用于汇编吗?真是奇怪,这不是能用c的吗。编译是还有1个错误,无语。。。

yklstudent 发表于 2013-2-3 15:24:08

点灯的星4 发表于 2013-2-3 14:56 static/image/common/back.gif
18楼真给力,用avrstudio4打开了。先前我用的是atmelStudio6打开,好像不行。这两不知道什么关系,不知道是 ...

avr studio4和avr studio6没法兼容
各自的工程文件只能自己打开
avr studio4只支持汇编的
内嵌AVRGCC是可以支持C的

点灯的星4 发表于 2013-2-12 10:40:47

yklstudent 发表于 2013-2-3 15:24 static/image/common/back.gif
avr studio4和avr studio6没法兼容
各自的工程文件只能自己打开
avr studio4只支持汇编的


谢谢上楼的解惑。为什么在iccavr上运行正常的程序,移植到avrstudio4中就没有效果呢。它们之间编写的规则也有不同吗
页: [1]
查看完整版本: avr开发环境的讨论