1611|0

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

DM6437向DSP/BIO中增加硬中断的方法 [复制链接]

64+的中断系统和以往的不同,中断是基于事件的。整个硬件CPU接收15个中断,但中断源可以支持最多128个。64+将中断源视为事件"Event",128个事件可以分别通过配置连接到15个CPU中断。而128个事件每连续32个可以合并到四个固定的事件中,即Event0(对应事件号0-31)、Event1(对应事件号32-63)、Event2(对应事件号64-95)、Event3(对应事件号96-127)(实际最大有效中断源为124个)。这样可以通过数量有限的CPU中断来管理大量的中断源,使用灵活。 
    DSP/BIOS默认将Event0-3分别对应到HWI_INT7-10四个中断号。TI驱动通过注册Event到这四个事件,进而对应到相应中断。在中断HWI_INT7-10服务函数中再去判断具体是哪个事件触发的中断。 
    另外还有几个中断是系统硬件复位中断、NMI中断、预保留中断及仿真通讯中断。HWI_INT4-6、HWI_INT13、HWI_INT15这5个中断是未使用中断。用户增加中断服务的话,可以将事件号对应到这5个中断来实现。 
    以T1高32位定时中断为例,介绍一下DM6437应用中如何在DSP/BIOS操作系统中实现硬件中断。首先用户需要将T1配置为双32位定时器,T1高32位定时器中断服务函数为 T1HIsr()。将事件对应到中断HWI_INT5。 

    1 在DSP/BIOS图形配置界面下打开"Scheduling"->"HWI-Hardware Interrupu Service"。 
    2 下拉表中有15个中断。观察各中断使用情况。右键点击"HWI_INT5",弹出下拉菜单中选"Properties"进入中断属性编辑栏。在"General"栏中,"interrpu selection number"项填入事件号"7"(6437数据手册中有中断源对应的事件号)。"function"项填入中断服务函数名"_T1HIsr"(需在C语言编写的函数前加下划线)。然后点"应用","确定"即可退出。 





    注:一些人说还要在"Dispatcher"中勾选"Use Dispatcher"前的复选框。那是复合事件Event0-3才需要的,所以HWI_INT7-10四个中断里的"Use Dispatcher"需要勾上。如果用户定义的新中断不是使用复合事件而是使用单一事件触发的话不需要勾选。但勾选的话不会影响使用。因为新中断未使用Event0-3。 
    3 在应用程序中使能中断。如"C64_enableIER( 1 << 5 )" 使能中断HWI_INT5。 
    4 编写中断服务函数"void T1HIsr()"。 
    注。仿真器通讯中断可能对新中断有影响,有可能导致中断表现不正常。可以在"release"下编译,以减少仿真引起的大量中断。

 
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表