Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136094
  • 博文数量: 34
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-14 03:26
文章分类

全部博文(34)

文章存档

2011年(6)

2010年(2)

2009年(4)

2008年(22)

我的朋友

分类: C/C++

2008-09-25 09:54:12

 
IAR的想法不错,把汇编的头文件和C的头文件融合在一起,通过__IAR_SYSTEM_ASM__的宏定义来区分;
 
我们定义一个SFR(特殊功能寄存器)在汇编和C的代码里面是一样的:
    SFR_B(TEST_B,0x10)
    SFR_W(TEST_W,0x20)
 
但在使用过程中发现有个小问题: 在IAR的汇编手册里提到了sfrw是可以实用的,但在实际使用AT90CAN的
过程中发现汇编只支持sfrb而不支持sfrw.导致出现一些问题,因此如下是不对的:
 
 
 
 
 
 

ASMSFRW    MACRO
    sfrw    \1 = \2
    sfrb    \1L = (\2+0)
    sfrb    \1H = (\2+1)
    ENDM

 

参考IAR 5.11 的标准定义如下:

 

 

ASMSFRW    MACRO
    sfrb    \1L = (\2+0)
    sfrb    \1H = (\2+1)
    ENDM

 

 

希望IAR在以后的版本中能够考虑到这个小Bug!

阅读(1377) | 评论(1) | 转发(0) |
0

上一篇:AMP/Tyco Connector

下一篇:指数分布测试Java版

给主人留下些什么吧!~~

chinaunix网友2008-11-13 15:07:48

我也遇到了,定