打印

数据到PCI以后,怎么在DSP中设置中断使其处理该数据?

[复制链接]
2239|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
extreme001|  楼主 | 2007-9-3 10:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据到PCI以后,怎么在DSP中设置中断使得其自动调用某段程序处理该数据?

我用DM642,有SDK使得数据通过PCI进入DM642的内部内存空间

那么,我想在CCS中写个程序,使得数据写入后再写一个中断触发信号,然后调用中断处理函数,处理该函数,应该怎么做呢?

谢谢!

相关帖子

沙发
extreme001|  楼主 | 2007-9-3 14:24 | 只看该作者

例如

比如我想:通过PCI写入1-10到DSP的内存,在DSP里将这1-10的数据乘以2,再从PCI读到上位机,应该怎么具体实现呢?

使用特权

评论回复
板凳
aspl| | 2007-9-3 16:03 | 只看该作者

互相产生中断握手可以的

使用特权

评论回复
地板
yxwsz| | 2007-9-4 23:07 | 只看该作者

HDCR寄存器

host向dsp发送数据之后,可以设置HDCR寄存器中的DSPINT位, 向DSP发中断;
对于DSP来说,它收到的是HOSTSW中断(DSP代码使能该中断),如果DSP要知道更详细的信息,则需要host,dsp之间定义一个通讯协议,在dsp内部空间某个固定位置存放通讯数据;

DSP也可以通过调用csl里面的PCI_dspIntReqSet函数来向host发送PCI中断

使用特权

评论回复
5
extreme001|  楼主 | 2007-9-5 15:05 | 只看该作者

那么在vecs.asm中该怎么设置中断向量表呢?

比如,在vecs.asm里,前面的内容是这样的:

===========================
.sect “.vecs”

.align 1024

_vectors:

_vector0:       VEC_ENTRY _c_int00   ;RESET中断

_vector1:       VEC_ENTRY _vec_dummy ;NMI不可屏蔽中断

_vector2:       VEC_ENTRY _vec_dummy ;保留中断1

_vector3:       VEC_ENTRY _vec_dummy ;保留中断2

_vector4:       VEC_ENTRY _vec_dummy ;外部中断INT4

_vector5:       VEC_ENTRY _vec_dummy ;外部中断INT5

_vector6:       VEC_ENTRY _vec_dummy ;外部中断INT6

_vector7:       VEC_ENTRY _vec_dummy ;外部中断INT7

_vector8:       VEC_ENTRY _c_int08 ; EDMA控制器中断EDMAINT,对应于c_int08 ISR

_vector9:       VEC_ENTRY _vec_dummy;JTAGRTDX中断

_vector10:      VEC_ENTRY _vec_dummy;EMIF_SDRAM_Timer中断

_vector11:      VEC_ENTRY _vec_dummy;McBSP_0_Receive中断

_vector12:      VEC_ENTRY _vec_dummy;McBSP_1_Transmit中断

_vector13:      VEC_ENTRY _vec_dummy;Host_Port_Host_to_DSP中断

_vector14:      VEC_ENTRY _vec_dummy;Timer0中断

_vector15:      VEC_ENTRY _vec_dummy;Timer1中断


===========================

我应该设置第几号中断呢?

使用特权

评论回复
6
yxwsz| | 2007-9-5 16:05 | 只看该作者

可以设置

随便,比如4号;
具体把中断映射到那个号上,是可以设置的

void PCI_Config()
{
    //imask = HWI_disable();
    PCI_intEnable(PCI_EVT_PCIMASTER);
    PCI_intEnable(PCI_EVT_PCITARGET);
    PCI_intEnable(PCI_EVT_MASTEROK);
    PCI_intEnable(PCI_EVT_HOSTSW);

    PCI_RSET(PCIIS, 0x00000FFF);   /*clear PCIIS*/

    IRQ_map(IRQ_EVT_DSPINT, 4);
    IRQ_reset(IRQ_EVT_DSPINT);
    IRQ_enable(IRQ_EVT_DSPINT);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

20

帖子

0

粉丝