如何在中断服务程序中使用汇编语言

[复制链接]
 楼主| hank2014 发表于 2014-8-15 16:04 | 显示全部楼层 |阅读模式
现在做的一个课题,对实时性有一定的要求,采集需要在3.125us内完成,ADC完成转换就需要680ns,需要在中断中完成总共8个乘累加运算,当然还有采集的任务,现在采用C语言无法满足时间的要求,通过实验发现,只能完成7个乘累加运算。不会用汇编来编写这个中断服务程序,有哪位大侠给一些用汇编编写的中断服务程序或者类似的程序啊,多谢了!!!
airwill 发表于 2014-8-16 07:25 | 显示全部楼层
不知道用的是什么芯片, 什么开发环境?
CCS 直接支持嵌入汇编, 如:
__interrupt void rsvd_ISR(void)      // For test
{
  __asm ("      ESTOP0");
  for(;;);
}
或者直接用汇编写中断函数, 或者子程序, 如:

   .def _DSP28x_DisableInt
   .def _DSP28x_RestoreInt

_DSP28x_DisableInt:
    PUSH  ST1
    SETC  INTM,DBGM
    MOV   AL, *--SP
    LRETR

_DSP28x_RestoreInt:
    MOV   *SP++, AL
    POP   ST1
    LRETR


 楼主| hank2014 发表于 2014-8-16 09:58 | 显示全部楼层
我用的是CCS3.3,DSP是TMS320F2812
 楼主| hank2014 发表于 2014-8-16 09:58 | 显示全部楼层
谢谢了
 楼主| hank2014 发表于 2014-8-16 10:01 | 显示全部楼层
请问有没有中断的例程,还有讲解,否则看不太明白,不敢使用,其实单纯汇编并不难,也知道该如何进行保护现场等,但还是需要一些例程及讲解,有没有相关的书
siyida 发表于 2014-8-16 13:13 | 显示全部楼层
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

29

帖子

0

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

12

主题

29

帖子

0

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