阅读:1504回复:4
通过PCI2040对DSP:5409的程序上载问题
各位大侠,我在做PCI2040与DSP5409的数据采集卡,可是现在我的程序怎么也无法加载上去,请各位集思广益,给点意见想法帮帮忙!谢谢。
部分相关程序如下: (其中调用程序传输的是32位数据,但是只有低16位有效,是通过CCS EVM中的save memory data得到.dat数据的。且在我的测试中从DSP读取数据,发现所有数据均写入DSP。DSP程序起始地址:0x1000。) ULONG *pBuffer = NULL; USHORT StartPos = 0; ULONG wLength = 0 ; pBuffer = (PULONG)I.IoctlBuffer(); // HRST0#产生中断,使对应的DSP复位 m_Hpi_Csr_MemoryRange.outw(PCI_Hpi_rst_OFFSET,0x0001); // HPIError报告,若错误发生,则置位中断寄存器的第30位,产生中断,与默认一致 m_Hpi_Csr_MemoryRange.outw(PCI_Hpi_err_rpt_OFFSET,0x0000); // 选择DSP0 m_Hpi_Csr_MemoryRange.outw(PCI_Hpi_dsp_impl_OFFSET,0x0001); // 为54X,位宽为8位,与默认情况一致,没有必要但保留 m_Hpi_Csr_MemoryRange.outw(PCI_Hpi_data_width_OFFSET,0x0000); // 设置没有中断事件,与默认情况一致,没有必要但保留 m_Hpi_Csr_MemoryRange.outd(PCI_Irp_event_set_OFFSET,0x00000000); // 关闭中断事件,与默认情况一致,没有必要但保留 m_Hpi_Csr_MemoryRange.outd(PCI_Irp_event_clr_OFFSET,0x00000001); // 复位时不设置中断,与默认情况一致,没有必要但保留 m_Hpi_Csr_MemoryRange.outd(PCI_Irp_msk_set_OFFSET,0x00000000); // 关闭所有可能的中断,包括31位:总开关;30位:HPIError;0位:IntDSP0; m_Hpi_Csr_MemoryRange.outd(PCI_Irp_msk_clr_OFFSET,0x00000001); //延时等待稳定 _asm{ NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; } m_Hpi_Csr_MemoryRange.outw(PCI_Hpi_rst_OFFSET,0x0000); _asm{ NOP; NOP; NOP; NOP; NOP; NOP; NOP; NOP; } wLength = I.IoctlInputBufferSize(); //单位为字节 StartPos = 0x1000; //中断向量首地址 m_Ctl_MemoryRange.outw(PCI_DSP_HPIC_OFFSET,0x0101); m_Ctl_MemoryRange.outw(PCI_DSP_HPIA_OFFSET,(StartPos-1)); for(USHORT i=0;i<wLength/4;i++) { m_Ctl_MemoryRange.outw(PCI_DSP_HPID0_OFFSET,(USHORT)pBuffer); } m_Hpi_Csr_MemoryRange.outw(PCI_Hpi_rst_OFFSET,0x0001); // 再次复位 Delay();//100cycles m_Hpi_Csr_MemoryRange.outw(PCI_Hpi_rst_OFFSET,0x0000); // 再次置位 m_Ctl_MemoryRange.outw(PCI_DSP_HPIC_OFFSET,0x0101); m_Ctl_MemoryRange.outw(PCI_DSP_HPIA_OFFSET,0x007f); m_Ctl_MemoryRange.outw(PCI_DSP_HPID1_OFFSET,0x1000); 现在这样,可以查看到数据写入DSP,但是程序仍不动。将最后对0x007f置数的步骤放在reset之前也不对,请问究竟有什么我没有考虑到的问题?? 若有作过的前人还可以将正确的参考程序发到:cb615cb@163.com。 感谢不尽。 |
|
沙发#
发布于:2003-08-03 16:50
解决实际问题是最大的乐趣。但是分数也不是问题。
|
|
板凳#
发布于:2003-08-05 09:22
StartPos 有必要减去1吗?
|
|
地板#
发布于:2003-08-05 14:39
StartPos 有必要减去1吗?
数据读是后变地址,数据写是先变地址自增。 该问题已经解决! 谢谢! |
|
地下室#
发布于:2004-09-18 09:46
大虾,能不能吧你的电路图附一张,小弟正为这个发愁了好长时间
邮箱:naoshou@sohu.com 多谢了:) |
|
|