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“,点确定。

DSP6455 DSP/BIOS中断配置问题(是否需要ECM-事件组合以及实例)的更多相关文章

  1. DSP/BIOS程序启动顺序

    基于TI的DSP芯片的应用程序分为两种:一般应用程序:DSP/BIOS应用程序. 为简化编程,TI提供了一套C的编程接口,它以API和宏的形式封装了TI的所有硬件模块,这套接口统称DSP/BIOS.D ...

  2. DSP/BIOS使用之初窥门径——滴答时钟及烧写Flash

    操作平台和环境 DSP型号:TMS320C6713 仿真器:XDS510PLUS Flash型号:AM29LV800BT或AM29LV800BT都试过(一般接口一样,区别不大) RAM型号:MT48L ...

  3. 基于CCS3.3平台搭建DSP/BIOS系统

    本人由于换工作的原因,由ccs3.1平台下转化为ccs3.3平台.先说说本人感觉的区别,ccs3.1下的CSL库集成到DSP/BIOS内,而3.3的CSL库在DSP/BIOS下就没有体现. 1.二话不 ...

  4. DSP\BIOS调试Heaps are enabled,but not set correctly

    转自:http://blog.sina.com.cn/s/blog_735f291001015t9i.html Heaps are enabled, but the segment for DSP/B ...

  5. BIOS中断大全

    BIOS中断大全 BIOS中断:1.显示服务(Video Service——INT 10H)  00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标 ...

  6. 2.2 BIOS中断

    BIOS中断 BIOS中断简介 计算机刚启动时,进入实模式下,此时操作系统跟硬件(例如键盘鼠标显卡等)交互通过BIOS进行的.通过调用中BIOS中断的方式来访问硬件设备. BIOS中断就不详细介绍了. ...

  7. 软盘相关知识和通过BIOS中断访问软盘

    一. 软盘基础知识介绍 (1) 3.5英寸软盘 3.5英寸软盘分为上下两面,每面有80个磁道,每个磁道又分为18个扇区,每个扇区大小为512个字节. 软盘大小计算: 2面 * 80磁道 * 18扇区 ...

  8. BIOS 中断大全

    BIOS中断: 1.显示服务(Video Service--INT 10H) 00H -设置显示器模式0CH -写图形象素  01H -设置光标形状0DH -读图形象素  02H -设置光标位置0EH ...

  9. STM32学习笔记(九) 外部中断,待机模式和事件唤醒

    学会知识只需要不段的积累和提高,但是如何将知识系统的讲解出来就需要深入的认知和系统的了解.外部中断和事件学习难度并不高,不过涉及到STM32的电源控制部分,还是值得认真了解的,在本文中我将以实际代码为 ...

随机推荐

  1. Android TextUtil

    Android中计算textView长度问题 今天有一个需求,需要TextView显示两行的信息,但是右下角区域需要空出来,要来显示一张小图片,要实现的效果如图所示. 这里遇到的问题是计算TextVi ...

  2. php验证码的简单例子

    php随机验证码: <?php      $image_width=140;      $image_height=50;      srand(microtime()*10000);      ...

  3. Catalyst揭秘 Day4 analyzer解析

    Catalyst揭秘 Day4 analyzer解析 今天继续解析catalyst,主要讲一下analyzer,在sql语句的处理流程中,analyzer是在sqlparse的基础上,把unresol ...

  4. 2016 Multi-University Training Contest 1 GCD RMQ+二分(预处理)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=5726 题意:有N(N <= 100,000),之后有Q(Q <= 100,000)个区间查询[ ...

  5. 辛星Spring4.x教程开放下载了

    下载地址:  https://pan.baidu.com/s/1kVSAYeb

  6. C# 白话系列之——白话委托

    今天看到首页有个委托的文章,但大都写的太专业,而且没有实用的例子场景.正好昨天做了一个有关委托的功能,所以也来凑个热闹,用白话掰掰 一.委托是什么 我们都知道数据类型,简单点的如,想给一个变量赋值整数 ...

  7. IOS 透​视​投​影​矩​阵​推​导(转)

    http://wenku.baidu.com/link?url=wDkyQR9fDI_tZas1BlMRUnNNoKwiQDygltm2wWxRr_sDwcDB51_QCDfR4Gb5wYrIUZ_t ...

  8. touches获得手指点击的坐标

    -(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObjec ...

  9. 【BZOJ 1084】[SCOI2005]最大子矩阵

    Description 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. Input 第一行为n,m,k(1≤n≤100,1≤m≤2 ...

  10. linux内核分析之进程地址空间管理

    1.struct task_struct 进程内核栈是操作系统为管理每一个进程而分配的一个4k或者8k内存大小的一片内存区域,里面存放了一个进程的所有信息,它能够完整的描述一个正在执行的程序:它打开的 ...