DSP/BIOS硬件中断管理

本文介绍了使用DSP/BIOS内核开发应用时中断向量表的配置方式及硬件中断ISR的调用方法,包括静态调用和动态指定ISR函数。此外还详细说明了在编写硬件中断ISR时需要注意的问题及如何正确使用DSP/BIOS API。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用DSP/BIOS 内核开发应用程序,用户不能随意修改中断向量表的位置,该中断向量表将有DSP/BIOS 配置文件中的MEM模块决定。

1.硬件中断ISR的调用:(1)使用DSP/BIOS配置工具静态调用ISR函数

                                       (2)使用HWI_dispatchPlug等函数动态指定ISR函数

当硬件中断的ISR不使用DSP/BIOS提供的调度程序时,在该ISR调用任何影响DSP/BIOS对象的API之前,如需发送一个旗语或启动一个SWI,必须调用HWI_enter汇编宏。一旦调用了HWI_enter汇编宏,在ISR结束时还要调用HWI_exit.具体来讲这些API有:

       SWI_andn:该函数提供的参数与邮箱值做“与”运算,若邮箱为0,则启动该软件中断;

       SWI_andnHook

       SWI_dec:邮箱值减1,若邮箱为0,则启动该软件中断,并恢复邮箱到初始值;

       SWI_inc:启动该软件中断,并对邮箱值加1

    SWI_or:启动该软件中断,并且邮箱值与该函数提供的参数做运算;

    SWI_orHook

       SWI_post:启动软件中断;

    PIP_alloc

    PIP_free

    PIP_get

    PIP_put

    PRD_tick

    SEM_post

    MBX_post

    TSK_yield

        TSK_tick

  2.编写硬件中断ISR注意点:

    1)在一个硬件中断请不要调用SWI_disable和SWI_enable

    2)在NMI(不可屏蔽中断)的ISR中不要使用HWI_enter、HWI_exit以及其他任何API函数

    3)当硬件中断的ISR使用DSP/BIOS的HWI调度程序时,不要再使用HWI_enter、HWI_exit

    4)当任何有关PIP的API调用时该管道的读通知和写通知函数都会运行,所以,当硬件中断ISR调用的PIP的API函数时,这些函数将作为ISR的一部分

    5)当硬件中断ISR调用了HWI_enter、HWI_exit(无论DSP/BIOS调用还是自己调用),中断允许重新打开,这时在一个硬件中断中可以响应另一个硬件中断

3.HWI模块的API函数

 HWI_disable:禁止硬件中断

 HWI_enable:允许硬件中断

 HWI_enter:硬件中断进入部分宏定义

 HWI_exit:硬件中断ISR退出部分宏定义

 HWI_restore:恢复硬件中断状态

 HWI_dispatchPlug:插入硬件中断ISR函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值