TMS320C6455外部中断实现 浅谈外部中断的使用.doc

上传人:白大夫 文档编号:3274258 上传时间:2019-08-07 格式:DOC 页数:5 大小:25.50KB
返回 下载 相关 举报
TMS320C6455外部中断实现 浅谈外部中断的使用.doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《TMS320C6455外部中断实现 浅谈外部中断的使用.doc》由会员分享,可在线阅读,更多相关《TMS320C6455外部中断实现 浅谈外部中断的使用.doc(5页珍藏版)》请在三一文库上搜索。

1、TMS320C6455外部中断实现 浅谈外部中断的使用本文主要是关于TMS320C6455的相关介绍,并着重对TMS320C6455外部中断实现进行了详尽的阐述。TMS320C6455TMS320C6455是TI公司推出的的一款新型高性能单核定点DSP它是TI公司基于第三代先进VeloviTI VLIW(超长指令字)结构开发出来的新产品,在通信,医疗图像,无线传输方面都可以大有作为TMS320C6455主频达到了1GHz,1ns的指令周期每周期执行8条32位指令,最大峰值速度达到8000MIPS这意味着在1G时钟频率下,8000个16位“16位的MACs能在1秒钟发生TMS320C6455还带

2、有SeriaRapidlOfr)总线,互连速率每秒高达25Gbits,实现了极高的多处理性能,降低了系统消耗,比此前的外部存储器接口快12倍,这使得多DSP级连变得十分方便TMS320CC6455片内是基于C64xx内核的L1L2存储结构片上集成有大量的存储空间L1P为32K字节,L1D为32K字节 L2为2M字节、比此前C64x器的存储器容量件翻一番,其中L1P和L2都可直接映射到存储空间。TMS320C6455的外围总线包括:一个内部集成电路总线(I2C)两个多路缓冲串口总线fMcBSPs),两个64位通用定时器(可以配置成4个32位定时器),一个可配置的16位或32位主机接口(HPI6H

3、PI32)一个PCI总线,一个16管脚的通用输入输出端口(GPIO),一个101001000M 以太网媒体访问控制器(EMAC)。一个无缝外部存储器接口(64一bit EMIFA),一个32位DDR2 SDRAM接口。C6455由于自带千兆EMAC,外接PHY物理层芯片即可实现一个千兆以太网口。千兆以太网的实现使得C6455嵌入式处理器与台式机等设备的数据传输变得异常方便。TI为C6455等处理器提供了NDK(Network Develop Kit),通过NDK的使用可以简化C6455中TCP/IP或者UDP等数据传输协议的实现。外部中断外部中断和其他模块中断中断原理一样,也是先设置中断级,然

4、后PIE级,最后CPU级,外部中断的中断寄存器在中断头文件中,中断触发设置在中断C文件中,外部中断作为一个单独的模块使用。28335支持8 个可屏蔽的外部中断(XINT1XINT7, XNMI)。XNMI 可设置成INT13 或者CPU 的NMI 中断。每一个中断可设置成负边沿、正边沿或者正负边沿触发,并且设置启用或禁用(包括XNMI 在内)。XINT1, XINT2,和XNMI 还包含一个16 位自由运行的递增计数器,当检测到一个有效的中断边沿时,该计数器复位为0。这个计数器可被用于中断精确计时。与281x 器件不同,28335没有专用的外部中断引脚。XINT1,XINT2 和XINT 中断

5、可设置成GPIO0-GPIO31 引脚的输入。XINT3XINT7 中断可设置成GPIO32-GPIO63 引脚的输入。外部中断控制寄存器的位定义如下图所示。由上可知,配置外部中断的步骤为:1、配置GPIO为外部中断引脚。2、设置外部中断触发条件。3、开启PIE中断。4、设置中断向量表。5、开启CPU中断。6、编写中断函数,清除PIE中断标志位。TMS320C6455外部中断实现中断模块CSL库使用上面介绍了很多,其实就是想说清楚C6455的中断机制。实际使用还是CSL比较方便。使用CSL配置中断需要如下几个步骤:1. 初始化中断模块2. 使能NMI3. 全局中断使能4. 打开中断模块5. 绑

6、定中断服务程序6. 使能相应事件完整中断配置例子-把GPIO4事件映射到INT4CSL_Status intStat;CSL_IntcContext gpiocontext;CSL_IntcEventHandlerRecord isr_gpio;CSL_IntcEventHandlerRecord record1;CSL_IntcGlobalEnableState state;CSL_IntcParam vectId;CSL_IntcHandle gpioIntcHandle;CSL_IntcObj gpioIntcObj;static void HANDLE_INTR4(void *arg)

7、/中断服务程序/*-* 初始化外部中断4*-*/void InitAndEnableIntc4(void)/初始化gpiocontext.numEvtEntries = 1;gpiocontext.eventhandlerRecord = record;intStat = CSL_intcInit(/使能NMI(不可屏蔽中断)intStat = CSL_intcGlobalNmiEnable();/全局中断使能intStat = CSL_intcGlobalEnable(/打开中断模块(把GPIO4中断事件映射到系统中断INT4)vectId = CSL_INTC_VECTID_4;gpioI

8、ntcHandle = CSL_intcOpen(/绑定中断服务程序isr_gpio.handler = (CSL_IntcEventHandler)CSL_intcPlugEventHandler(gpioIntcHandle, /绑定/使能该事件(开始监听)CSL_intcHwControl(gpioIntcHandle, CSL_INTC_CMD_EVTENABLE, NULL);CSL_Status intStat;CSL_IntcContext gpiocontext;CSL_IntcEventHandlerRecord isr_gpio;CSL_IntcEventHandlerRe

9、cord record1;CSL_IntcGlobalEnableState state;CSL_IntcParam vectId;CSL_IntcHandle gpioIntcHandle;CSL_IntcObj gpioIntcObj;static void HANDLE_INTR4(void *arg)/中断服务程序/*-* 初始化外部中断4*-*/void InitAndEnableIntc4(void)/初始化gpiocontext.numEvtEntries = 1;gpiocontext.eventhandlerRecord = record;intStat = CSL_intc

10、Init(/使能NMI(不可屏蔽中断)intStat = CSL_intcGlobalNmiEnable();/全局中断使能intStat = CSL_intcGlobalEnable(/打开中断模块(把GPIO4中断事件映射到系统中断INT4)vectId = CSL_INTC_VECTID_4;gpioIntcHandle = CSL_intcOpen(/绑定中断服务程序isr_gpio.handler = (CSL_IntcEventHandler)CSL_intcPlugEventHandler(gpioIntcHandle, /绑定/使能该事件(开始监听)CSL_intcHwControl(gpioIntcHandle, CSL_INTC_CMD_EVTENABLE, NULL);结语关于TMS320C6455外部中断相关介绍就到这了,如有不足之处欢迎指正。相关阅读推荐:基于TMS320C6455的高速SRIO接口设计相关阅读推荐:基于TMS320C6000系列DSP的维特比译码程序优化设计

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1