[AVR单片机] avr studio 5如何建立既有汇编文件,也有C文件的工程【已解...

[复制链接]
2500|5
 楼主| springvirus 发表于 2015-6-11 11:20 | 显示全部楼层 |阅读模式
本帖最后由 springvirus 于 2015-6-15 08:59 编辑

RT,本人刚开始用avr studio,看到建立工程,还有对工程分类的,貌似没法建立一个既有汇编文件,也有C文件的工程,谢谢

偶在avr studio 5中实验,可以先在源码文件的工程目录下,新建xx.s型的汇编文件,然后在工程处右键->add->Existing Item...,加入此汇编文件。
经编译,没有问题。
编译如下:
AVRGCC1.c
                Invoking: AVR/GNU C Compiler
                "D:/AVR Studio 5 real/AVR ToolChain/bin/avr-gcc.exe" -funsigned-char -funsigned-bitfields -O0 -fpack-struct -fshort-enums -g2 -Wall -c -std=gnu99  -mmcu=atmega644p   -MD -MP -MF"AVRGCC1.d" -MT"AVRGCC1.d" -o"AVRGCC1.o" ".././AVRGCC1.c"
                Finished building: .././AVRGCC1.c
test.s
                Invoking: AVR/GNU Assembler
                "D:/AVR Studio 5 real/AVR ToolChain/bin/avr-gcc.exe" -Wa,-gdwarf2 -x assembler-with-cpp -c  -mmcu=atmega644p   -o"test.o" ".././test.s"
                Finished building: .././test.s


。。。

Build succeeded.
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

694844985 发表于 2015-6-11 11:34 | 显示全部楼层
john_lee 发表于 2015-6-14 00:28 | 显示全部楼层
对于使用GNU toolchain作为开发工具来说,在工程中使用汇编文件已经没有多大的意义了,确要使用汇编的话,方法就按照楼上所说。
 楼主| springvirus 发表于 2015-6-15 09:00 | 显示全部楼层
john_lee 发表于 2015-6-14 00:28
对于使用GNU toolchain作为开发工具来说,在工程中使用汇编文件已经没有多大的意义了,确要使用汇编的话, ...

功能实现的一些地方需要指令执行的准确时间,所以选择C+汇编方式
john_lee 发表于 2015-6-15 10:00 | 显示全部楼层
springvirus 发表于 2015-6-15 09:00
功能实现的一些地方需要指令执行的准确时间,所以选择C+汇编方式

是的,我也经常需要使用汇编来写部分程序,但我决不会去编写单独的汇编文件。
god54188 发表于 2015-8-24 16:24 | 显示全部楼层
本帖最后由 god54188 于 2015-8-24 16:29 编辑

参考文件AVR1886 很详细的写了C 调用汇编。
写不写汇编,主要看你做什么工作。如果靠单片机吃饭,我会自己写一套汇编库自己用。也就十几个模块。
如果是随便玩玩,写个跑马灯,交作业之类的,C 快的很。
当然了,最好的是C写框架,汇编 写接口调用。
以前看过studio 的编译,好像访问IO都是用LDS 载入内存,没用过 in out ,都变成双指令周期了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

128

主题

4602

帖子

14

粉丝
快速回复 在线客服 返回列表 返回顶部