DSP

DSP6455 DSP/BIOS中断配置问题(是否需要ECM-事件组合以及实例)

2019-07-13 16:34发布

2013-06-20 21:08:48 中断的配置有两种常用的方式: 一是通过CSL提供的API进行配置,这种方法相对DSP/BIOS偏底层,也比较麻烦;这种方法要求对中断系统的工作方式很清楚。 二是通过DSP/BIOS的图形界面配置,这种方法对于新手来说更加方便,不用写代码,就能完成中断的配置;相对第一种,该方法对开发者的要求较低。   6455的中断是基于事件的,共有128个事件,但CPU可用的中断只有12个,这就有了事件组合(event combination),将128个事件分为4组,减小到四个组合后的事件。 关于如何通过DSP/BIOS配置中断,以及是否使用ECM(event combiner manager),详见TI中的问答贴: http://e2e.ti.com/support/dsp/tms320c6000_high_performance_dsps/f/112/t/11832.aspx 如帖子中所述,当中断数量小于12时,不必要用ECM,当然,也可以通过event combiner进行分组; 当中断数量大于12时,需要通过event combiner将事件分组,从而处理多余12个事件的中断。 下面以配置GPIO4引脚为外部中断为例,分别用上面两种方式配置中断。 (参考:http://blog.csdn.net/gtatcs/article/details/8903509,该博文给出了使用ECM的配置例子,写的很详细) 不用ECM: 首先新建一个DSP/BIOS配置文件,根据工程需要配置CLK、MEM等,此处只说明中断的配置。 step1: 选中HWI-Hardware Interrupt Service Routine Manager,右键properties,弹出如下窗口: 在此处选择外部中断的除法方式是上升沿还是下降沿。 (疑问:6455有16个GPIO,datasheet上说的是都可配置为中断引脚,为何此处只有4、5、6、7引脚的极性设置?是只能配置4个外部中断吗?) step2: 选中HWI_INT4,设置属性如下: 其中,interrupt selection number设置为55,是因为GPINT4对应的event number为55(event number可在6455的datasheet上找到);function为中断服务程序的名字。 在dispatcher下,使能 "use dispatcher" 选项。关于dispatcher的作用,详见: step3: 确认HWI-Hardware Interrupt Service Routine Manager下的ECM没有勾选,如下:   至此,中断配置完成。   使用ECM的配置步骤如下:   step1: 选中HWI-Hardware Interrupt Service Routine Manager,右键properties,弹出如下窗口:     在此处选择外部中断的除法方式是上升沿还是下降沿。   (疑问:6455有16个GPIO,datasheet上说的是都可配置为中断引脚,为何此处只有4、5、6、7引脚的极性设置?是只能配置4个外部中断吗?)   step2: 选中HWI_INT4,设置属性如下:       其中,interrupt selection number设置为1,是因为GPINT4对应的event number为55(event number可在6455的datasheet上找到),而event32-63对应的EVT1;这时"function"中会自动生成"_ECM_dispatch"。点“确定”退出属性设置。   在dispatcher下,使能 "use dispatcher" 选项。关于dispatcher的作用,详见:http://blog.csdn.net/zzsfqiuyigui/article/details/6940795     step3: 选中ECM,在下面选项打钩,使能ECM:   step4: 在EVENT55中点右键,选择"Properties",打开属性框,在"function"中输入"_HEI_int4_isr"."arg"框中输入14(事件号),同时选中"unmask event source“,点确定。