基于C6000 DSP BIOS Link的中断设置

来源:本站
导读:目前正在解读《基于C6000 DSP BIOS Link的中断设置》的相关信息,《基于C6000 DSP BIOS Link的中断设置》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《基于C6000 DSP BIOS Link的中断设置》的详细说明。
简介:基于C6000 DSP BIOS Link的中断设置

为避免编译过程中,一些头文件和库找不到,我们需要将该例子放在OMAPL138BSL软件包安装路径的evmomapl138_v1testsICETEK目录下

如果要使用自己的BSL库,请将压缩包中BSL目录下的evmomapl138_gpio.c替换BSL源程序的evmomapl138_v1bslsrc下的该文件,重新编译库。或者直接使用压缩包中的库

首先在main函数中使用DSPBIOSAPI允许可屏蔽中断:

例如我们使用CPUINT4作为GPIObank23的中断

//可屏蔽中断4允许

C64_enableIER(C64_EINT4);

以下是在DSPBIOS中的操作

第一种方式使用CPU中断直接响应外部事件

一、在Secheduling中选择

HWI–HardwareInterruptFunctionManager前的加号

在展开的列表的ECM–EventCombinerManager上点击鼠标右键,弹出菜单上选择properties

在打开对话框中选择Enableeventcombinermanager

点击确定

二、在HWI–HardwareInterruptFunctionManager下的HWI_INT4~HWI_INT15中,选择一个然后在其上点击鼠标右键,选择properties

打开属性对话框

interruptselectionnumber后的输入框中输入外部事件对应的中断号,如bank23的中断对应的中断号为49,对于不同的CPU的外设器中断号可能不一样参考对应器件的数据手册以及对应处理器的系统参考文章。对于OMAPL138的中断,参考文章:

OMAP-L138ApplicationsProcessorSystemReferenceGuide的3.2.2.1章节InterruptController(INTC

OMAPL138数据手册的第5.7.2章节DSPInterrupts

function后的输入框中输入中断响应的函数(中断服务程序)

如我们中断服务程序为

则在输入框中输入_output_clk注意对于C语言写的中断服务程序在输入框中输入时应在函数名前加下划线”_”

对于用C语言写的中断服务程序,我们还应该做如下的步骤

在中断属性页面上点击Dispatcher选项卡,选中UseDispatcher选项。

InterruptMask后的下拉列表表示在执行当前中断的时候是否允许其他中断发生,即是否允许中断,参考DSPBIOS的在线帮助获得更多的信息

第二中方式CPU响应事件组合器(combiner)生成的中断

一、在Secheduling中选择

HWI–HardwareInterruptFunctionManager前的加号

在展开的列表的ECM–EventCombinerManager上点击鼠标右键,弹出菜单上选择properties

在打开对话框中选择Enableeventcombinermanager

点击确定

展开

ECM–EventCombinerManager,在对应的EVENTn上点击鼠标右键,选择properties,这里作为例子我们使用OMAPL138GPIO23的组中断作为演示,它对应的事件的编号为49,关于什么事件对应于那个事件编号,参考文章:

OMAP-L138ApplicationsProcessorSystemReferenceGuide的3.2.2.1章节InterruptController(INTC

OMAPL138数据手册的第5.7.2章节DSPInterrupts

打开属性对话框

在打开的对话框中,

Comment输入框中输入一些注释,方便我们以后识别该中断的作用

function后的输入框中,输入用CC++写的中断服务程序函数名,且以_开始,如我们的中断服务程序如下

则应该在function输入框中输入_output_clk

unmaskeventsource选项应该选中,告知编译器不要屏蔽该事件的中断,默认的情况下,他们都是被屏蔽的

二、在HWI–HardwareInterruptFunctionManager下的HWI_INT4~HWI_INT15中,选择一个然后在其上点击鼠标右键,选择properties

这里我们需要修改interruptselectionnumber,输入的数字对应的ECM源的关系如下

nterruptSelectionNumber ECMModuleObjects ECMEventRange

0 EVENT4toEVENT31 4-31

1 EVENT32toEVENT63 32-63

2 EVENT64toEVENT95 64-95

3 EVENT96toEVENT127 96–127

如果拟将HWI_INT4映射到ECM32-63,这其中包含GPIO2bank的中断事件,则nterruptSelectionNumber输入框中输入1

当我们在interruptselectionnumber输入框中输入0~3之间的数字时,function输入框中会自动填上函数_ECM_dispatch且不能修改成其他的

Dispatcher选项卡中,选中useDispatcher

如果我们不修改interruptMask选项,它自动选择Self,且Arg中填入一个数值,这个数值和我们在interruptselectionnumber输入框中输如的数值相关联,我们使用默认的。

InterruptMask后的下拉列表表示在执行当前中断的时候是否允许其他中断发生,即是否允许中断,参考DSPBIOS的在线帮助获得更多的信息

点击确定,重新编译项目,下载进行测试

提醒:《基于C6000 DSP BIOS Link的中断设置》最后刷新时间 2024-03-14 01:13:23,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《基于C6000 DSP BIOS Link的中断设置》该内容的真实性请自行鉴别。