- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(三)使用ccs进行dsp编程--ccs编程入门
使用CCS 进行DSP 编程(三)
——实现DMA 和Interrupt
pacificxu
现在讨论在CCS 进行DSP 编程来实现DMA 和Interrupt 功能。假定读者对
CCS 的使用已经比较了解,并有了一定的CCS 编程经验。如果读者还不太了解,
请参阅《使用CCS 进行DSP 编程(一)——CCS 编程入门》、《使用CCS 进行
DSP 编程(二)——实现FFT》及其他CCS 的学习文档。
下面用闻亭公司的C6xPa 板硬件和闻亭公司的PCI 仿真器为例,来实现DSP
的DMA 传输和硬件Interrupt 功能。
首先来描述一下使用的硬件资源。闻亭公司的C6xPa 板有两路独立的最高采
样率为40MHz 精度为 12bit 的A/D ,它与DSP 的EXT_INT7 相连,可以产生外
部中断信号,通过FPGA 的逻辑可以控制A/D 的采集和采集多少数据产生一次
中断,采集的数据放在DPRAM 中(0x1400000 开始的地址空间),通过 DMA
传输到DSP 芯片上的存储器中(0开始的地址空间)。
在C 语言环境中使用DMA 和Interrupt 功能,需要包含两个头文件dma.h
和intr.h ,同时要用到相应的运行时库文件“csl6201.lib ”和“dev6x.lib ”。对这
两组头文件和运行时库文件,我们深入研究一下,看一看我们比较关心的函数有
哪些。下一次用到这些函数时,别忘了带上相应的运行时库文件%*^*^喔。
在dev6x.lib 库文件中,直接与实现DMA 和Interrupt 功能相关的函数有如
下几个:
dma_init
dma_global_init
dma_reset
intr_reset
intr_init
intr_hook
intr_map
intr_isn
intr_get_cpu_intr
isr_jump_table
在csl6201.lib 库文件中,直接与实现DMA 功能相关的函数有如下几个:
DMA_AllocGlobalReg
DMA_GetEventId
DMA_GBL_PRIVATE
DMA_Open
DMA_Start
DMA_HCHA0
DMA_HCHA1
DMA_HCHA2
DMA_HCHA3
DMA_Wait
DMA_SetGlobalReg
DMA_ConfigA
DMA_ConfigB
DMA_Stop
DMA_AutoStart
DMA_Pause
DMA_Reset
DMA_GetGlobalReg
DMA_SetAuxCtl
DMA_Close
DMA_FreeGlobalReg
DMA_Init
DMA_GetS
文档评论(0)