搜索
bottom↓
回复: 3

如何实现在ICCAVR中调用aiom16.s汇编程序头文件?

[复制链接]

出0入0汤圆

发表于 2010-9-28 20:34:52 | 显示全部楼层 |阅读模式
用asm(".include aiom16.s");调用报如下错误

C:\iccv7avr\bin\imakew -f PROGRAMRUNNINGTIMETEST.mak
    iccavr -c -IE:\project\Program\TestFolder\ProgramRunningTimeTest -e -D__ICC_VERSION="7.16A" -DATMEGA  -l -g -Wa-

IE:\project\Program\TestFolder\ProgramRunningTimeTest -MLongJump -MEnhanced -MHasMul  

E:\project\Program\TestFolder\ProgramRunningTimeTest\main.c
!W E:\project\Program\TestFolder\ProgramRunningTimeTest\main.c(11):[warning] empty declaration



因在.c文件中需要用到asm("PORTD=0x12");来指定PORTD的地址,如果能够直接将aiom16.s的汇编头文件包含进来,在.c文件中就不要asm

("PORTD=0x12");这样的语句了,那么该如何在ICCAVR中实现C语言和汇编语言混用,将aiom16.s的汇编头文件包含进来呢?万高手指教!

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2010-9-29 00:46:01 | 显示全部楼层
问的好,把我问的都木纳了,不知道如何回答是好。一锅糨糊。

出0入0汤圆

 楼主| 发表于 2010-10-2 15:28:59 | 显示全部楼层
回复【1楼】machao
-----------------------------------------------------------------------

对不起,马老师,我没有表达清楚!
重新描述一下:
在ICCAVR中,如果用下面的程序
#include <iom16v.h>
void main( void )
{
  asm("sbi PORTD,0 ");
}
就会出现如下错误:
!E main.s(18): absolute expression expected
但是如果用下面的程序,就不会报错, 看起来像是程序不识别变量PORTD,需要自己去指定地址。
#include <iom16v.h>
void main( void )
{
  asm("PORTD=0x12");
  asm("sbi PORTD,0 ");
}
在汇编头文件aiom16.s中,含有PORTD=0x12语句,那么如果能够将汇编头文件aiom16.s在上述程序中包含进来,
就不需要在程序中写asm("PORTD=0x12"); 这样的语句了。同理在<iom16v.h>头文件中的变量也可以拿来用了。
问题是如何将汇编头文件aiom16.s在上述程序中包含进来呢?

出0入0汤圆

发表于 2010-10-2 17:11:01 | 显示全部楼层
你的方法很好了。


在你的基础上改进下,不知道好不好用,楼主可以试下。


建一个*.h文件

里面的内容是:

void abcdef(void)  //函数名随便定,不要跟其它重复了就行
{
asm("PORTD=0x12");
asm("PORTC=0x15");
asm("PORTB=0x18");
//把你所要声明的内容都按以上方式写上
}


然后调用这个.h文件,不需要调用abcdef()函数。

如:

#include <iom16v.h>
#include "***.h"

void main( void )
{
  asm("sbi PORTD,0 ");
}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-3-29 23:03

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表