(四)使用ccs进行dsp编程--ccs编程入门.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(四)使用ccs进行dsp编程--ccs编程入门

使用CCS 进行DSP 编程(四) ——实现Host 和DSP 通信 pacificxu 首先对题目进行一下解释,之所以取这个名字,是为了与前面三篇文章相对 应,连成一个系列,这里不仅仅涉及使用CCS 进行DSP 编程,主机端的程序便 是用 Visual C++实现的。通信包括许多手段:中断、mailbox 、直接数据传输等 等,这里并不一一列举。 现在讨论实现Host 和DSP 通信。假定读者对CCS 的使用已经比较了解,并 有了一定的CCS 编程经验。如果读者还不太了解,请参阅《使用CCS 进行DSP 编程(一)——CCS 编程入门》、《使用CCS 进行DSP 编程(二)——实现FFT》、 《使用CCS 进行DSP 编程(三)——实现DMA 和Interrupt》及其他CCS 的学 习文档。 下面用闻亭公司的C6xP 板硬件和闻亭公司的PCI 仿真器为例,来实现Host 和DSP 通信。对于‘C6Xpa 板同样有效。 闻亭公司的C6xP 板是一款具有PCI 接口的高速信号处理EVM 板,接口芯 片是AMCC 的S5933,兼容PCI Local Bus Revision 2.1 协议。PCI 接口比较适合 用来进行Host 和DSP 的高速大数据量数据交换。主机通过HPI 接口可直接访问 DSP 的所有存储空间,允许主机初始化DSP ,可以从主机加载程序。 前面几篇文章所讲的都是从JTAG 接口加载程序,这样比较适合于程序的开 发调试,对于实际的系统来说,大部分都是系统自己从EEPROM 或Flash 加载, 现在我们可以从主机通过应用程序来加载,基于此,许多耗时的算法PC 机不能 实时完成的可以由DSP 来完成。 这个过程可以这样来描述:PC 机执行应用程序,加载算法到DSP 端,并将 需要处理的数据传送到DSP ,DSP 计算完成后将数据传回 PC ,整个过程由PC 来控制启动、工作、完成,使用起来比较方便。当然,DSP 算法还需要首先用仿 真器通过JTAG 接口调试好才行。 接下来看看实现这个功能的一个典型系统框图: 在这个框图里,我简化了主机PC 执行程序的其他部分,突出了与DSP 进行 通信有关的内容。 对任何一个系统,复位状态必须是确定的,这样才有一个确定的前提,对硬 件电路如此,对于软件编程也是如此。因为这里的关于主机与 DSP 通信是针对 确定物理硬件的(闻亭公司‘C6Xp 板和‘C6Xpa 板),编程是建立在对应的支 持库上的,未使用闻亭公司 ‘C6Xp 板或 ‘C6Xpa 板的读者可能对一些地方不太 理解,但原理性的地方应该是一致的。 对于PCI 插卡与操作系统的关系,我不做过多的说明。闻亭公司‘C6Xp 板 和‘C6Xpa 板可以看作标准的PCI 插卡,“驱动级”有两个文件支持, evm6x.vxd (对于NT4.0 是evm6x.sys )和evm6x.dll,我们所关心的是evm6x.dll ,它提供 了类似于WIN32 的API 一样的函数接口,用户可以直接在 Visual C++和 C++ Builder 下调用。 在应用程序中,需要包含头文件 evm6xdll.h,在这个头文件中,包含了对以下函 数的定义: 读者可以对比较感兴趣的函数做进一步的了解,这些函数的参数和使用方法在 TI 的文档 (spru308.pdf )中有详细的说明,我就不一一说明。顺便说一下,如果 读者同时有几块类似的PCI 插卡,可以通过使用不同的板卡索引分别对不同的板 卡进行操作: 对第一块卡,board_index 为0 ,第二块卡,board_index 为1,┉┉,对每一块确 定的卡都有相应的操作句柄对应,相互之间互相不影响。 在DSP 端的CCS 编程中,同样会用到相关的头文件:board.h 和pci.h ,以 及相关的运行时库为drv6x.lib 。其中与主机交换信息的函数列表如下: 现在,对我们要使用的硬件和软件资源都已经有了一定的了解,可以开锅造 饭了。对DSP 端的程序,读者可以根据自己的需要来编写,我直接采用Chest Nut 先生的程序来做例子,大家使用时可别忘了饮水思源啊^%(^$%%( :_ : 其中引用的头文件gather.h 源文件如下: 程序中首先对使用的硬件进行初始化,接下来进行死循环,DSP 端一直读主

您可能关注的文档

文档评论(0)

牛X文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档