如何在C语言中嵌入汇编软件陷阱?

[复制链接]
1269|5
 楼主| DENG_LI_JUN 发表于 2014-11-19 21:08 | 显示全部楼层 |阅读模式
为提高单片机抗干扰能力,我要在C语言中嵌入汇编语言的软件陷阱,我用的是MSP430F135的,其程序存储区起始地址是0C000H,我是这么写在未使用的中断服务程序中的,但编译提示错误Error[Og010]: Inline assembler instruction does not have a unique size: "        JMP 0X0C000"      不知是什么原因?求教高手。
#pragma vector=TIMERA0_VECTOR                                                           
__interrupt void Timer_A(void)               
{
  asm("NOP");
  asm("NOP");
  asm("JMP 0X0C000");                    
}
dirtwillfly 发表于 2014-11-19 21:55 | 显示全部楼层
觉得抗干扰和 用不用汇编语言,没有必然的联系
dirtwillfly 发表于 2014-11-19 22:03 | 显示全部楼层
Inline assembler instruction does not have a unique size: "        JMP 0X0C000
这个问题只看这两句汇编看不出问题的
Unshining 发表于 2014-11-19 23:12 | 显示全部楼层
你这样还不如直接使用WDT功能
 楼主| DENG_LI_JUN 发表于 2014-11-20 13:47 | 显示全部楼层
由于使用环境比较恶劣,电磁兼容要求高,光有看门狗效果不理想。
 楼主| DENG_LI_JUN 发表于 2014-11-20 21:58 | 显示全部楼层
在MSP430的汇编指令集中找到原因了,由于JMP的寻址空间是以PC为基准的1K范围,容易超出寻址范围,而BR指令的寻址空间是64K,可以到任何地址,这样正常通过编译了。谢谢大家关注。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

18

帖子

0

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