• c64x+ DSP/BIOS硬件中断的配置


    转自:http://blog.csdn.net/zzsfqiuyigui/article/details/6943026

    64+的中断系统和以往的不同,中断是基于事件的。整个硬件CPU接收15个中断,实际用户可用12个可屏蔽中断,但系统可以支持最多128个中断源。64+将中断源视为事件"Event",128个事件可以分别通过配置连接到12个可屏蔽中断。而128个事件每连续32个可以合并到四个固定的事件中,即Event0(对应事件号0-31)、Event1(对应事件号32-63)、Event2(对应事件号64-95)、Event3(对应事件号96-127)(实际最大有效中断源为124个)。这样可以通过数量有限的CPU中断来管理大量的中断源,使用灵活。下图是系统事件映射图:

    中断控制器通过上述这些事件向C64x+ CPU输出如下信号:

    1.一个可屏蔽,硬件异常(EXCEP)

    2.12个可屏蔽硬件中断(INT4到INT15)

    3.一个可用于中断或才异常的不可屏蔽中断(NMI)

    4.一个复位中断(RESET)

    中断控制器包括以下几个模块,用于将事件路由到中断或者异常:

    1.中断选择器:将系统事件路由到12个可屏蔽中断中

    2.事件组合器:将大量的事件减小到四个组合后的事件。

    3.异常组合器:系统所有事件异常组合成一个CPU的异常输入
    以下是中断控制器的框图:

    '

    在DSP/BIOS下进行基于事件的中断配置如下(假设我们要配置的是idma1传输完成中断, idma1的完成中断事件号是14,将其路由到INT4):

    1.首先,在dsp/bios图形配置文件中选择HWI-Hardware Interrupt Service Routine Manager,选择HWI_INT4,右键它,点“Properties”,打开属性编辑框。

    2.其次,在"Genral"选项中的“interrupt selection number ”中输入0,(因为idma1事件号是14,属于Event0),点击“应用”,这时"function"中会自动生成"_ECM_dispatch"。点“确定”退出属性设置。

    3.选择“ECM-Event Combiner Manager”,点右键“Properties”,选择属性框中"Enable event combiner manager"中的复选框

    4.在源文件中编写idma1中断服务程序,isr_idma1(),

    5在EVENT14中点右键,选择"Properties",打开属性框,在"function"中输入"_isr_idma1"."arg"框中输入14(事件号),同时选中"unmask event source“,点确定

    6.设置完毕,运行程序,当idma1传输完成即可执行isr_idma1函数


  • 相关阅读:
    Android 布局中设置分割线
    程序员的创意爱情告白大法
    java中路径/和\的区别
    Oracle解锁表
    Android组件TextView细节
    android this,getApplication(),getApplicationContext()的区别
    ORA01013: user requested cancel of current operation
    Android自定义View之一:初探实例
    使用开源jabber(XMPP)协议及openfire架设内部即时通讯服务
    九、为ASP.NET MVC应用程序创建单元测试
  • 原文地址:https://www.cnblogs.com/youngforever/p/3104724.html
Copyright © 2020-2023  润新知