我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 指令字 >

基于TMS320C6455系列DSP的中断系统的使用

归档日期:06-11       文本归类:指令字      文章编辑:爱尚语录

  公司推出的的一款新型高性能单核定点DSP.它是TI公司基于第三代先进VeloviTI VLIW(超长指令字)结构开发出来的新产品,在通信,医疗图像,无线传输方面都可以大有作为.TMS320C6455主频达到了1GHz,1ns的指令周期.每周期执行8条32位指令,最大峰值速度达到8000频率下,8000个16位“16位的MACs能在1秒钟发生.TMS320C6455还带有Seria/Rabits,实现了极高的多处理性能,降低了系统消耗,比此前的外部存储器接口快12倍,这使得多DSP级连变得十分方便.TMS320CC6455片内是基于C64xx内核的L1/L2存储结构.片上集成有大量的存储空间.L1P为32K字节,L1D为32K字节 L2为2M字节、比此前C64x器的存储器容量件翻一番,其中L1P和L2都可直接映射到存储空间。

  电路总线C).两个多路缓冲串口总线fMcBSPs),两个64位通用定时器(可以配置成4个32位定时器),一个可配置的16位或32位主机接口(HPI6/HPI32).一个PCI总线管脚的通用输入/输出端口(GPIO),一个10/100/1000M以太网媒体访问控制器(EMAC)。一个无缝外部存储器接口(64一bit EMIFA),一个32位DDR2 Sdram接口。

  C6455由于自带千兆EMAC,外接PHY物理层芯片即可实现一个千兆以太网口。千兆以太网的实现使得C6455嵌入式处理器与台式机等设备的数据传输变得异常方便。TI为C6455等处理器提供了NDK(Network Develop Kit),通过NDK的使用可以简化C6455中TCP/IP或者UDP等数据传输协议的实现。

  rrupt Selector,它的功能好比一个筛子(shuffle),对所有中断事件进行选择性映射。如下图示:

  看了这个图,我们又不难发现,中断选择器是一个128--》12的映射,这也就意味着,有116个系统事件被过滤掉了。

  EVENT[127:4]是系统事件,这个事件的编号根据芯片的不同而不同,拿6455来说,部分映射情况如下面两个图片所示:

  最后,比较特别的是Event[3:0],它是组合事件,通过下图的介绍应该就一目了然了。

  可见,Event0对应 4-31号事件的组合事件,Event2对应32-63号事件的组合事件,以此类推。

  (注:每组都是4个32位寄存器,每一组的EVTxxx0[3:0]都不使用,故这里不涉及到组合事件)

  系统事件发生时(124个),它们在事件标志寄存器中(EVTFLAGx)的对应位会被置1,此时可以通过向EVTCLR寄存器中对应位写入1来清除中断标志,然后执行中断服务程序。若不清除,那么相同事件再次发生时会产生问题。故,手动清除中断标志是必须的!且只能通过向EVTCLR寄存器中写入1来清除,不能直接向EVTFLAG寄存器写入0,因为EVTFLAG寄存器是Read Only的。

  另外,EVTSET寄存器的存在意义就是我们可以手动产生中断,这一点可以让我们

  中断服务程序的功能。介绍完上面三个基本的寄存器组,我们可以开始讨论组合事件的机制了。先看下图:

  可以明显的看出,124个事件被分成了4组。然后经过两个寄存器的运算,产生组合事件。

  EVT MASK寄存器组用于决定每一个组中的哪些事件被屏蔽掉。默认情况下,没有事件被屏蔽(全0)。

  鉴于最终的组合事件EVTx的发生机制是对Group中所有事件进行或运算,即只要Group中有一个事件发生,就代表组合事件发生。

  MEVT FLAG寄存器同EVT FLAG寄存器的值相同,表示事件是否发生。这样一旦知道了EVTMASK和MEVT FLAG两个寄存器的值就可以断定组合事件EVTx(0《=x《=3)是否发生了。

  通过上面的介绍,应该已经很清楚C6455的中断机制了,再贴一张图来巩固一下上面所说的内容:

  说到这里,我们对上图中红色框以及它之前的东西了解的很清楚了,下面就是Interrupt Selector的机制了。

  其实很简单,为12个中断分别配置对应的事件编号即可。只需要3个寄存器就OK啦。

  假设我要让INT4映射到GPIO4,那么通过查找前面的图,发现GPINT4的事件编号是55,那么只要把INTMUX1的低7位设置成0x37即可。

本文链接:http://egao-p.com/zhilingzi/45.html