打印

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

[复制链接]
479|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2017-11-7 10:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
c64x+ DSP/BIOS硬件中断的配置


  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函数


相关帖子

沙发
huster89| | 2020-1-15 14:38 | 只看该作者
sysbios设置是简单

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝