Non Maskable Interrupt(NMI)不可屏蔽中断 学习总结

CRBNMI.C里面有function

         VOID CRBGpi8SmiHandler (

    IN EFI_HANDLE                   DispatchHandle,

    IN EFI_SMM_GPI_DISPATCH_CONTEXT *DispatchContext )

{

                       // Porting if needed

}

 

为什么通过相应的GPIO会产生一个SMI信号?

l  The corresponding GPI must be routed in the GPI_ROUT register to cause an SMI.

l  MmPci32(LPC_BUS, LPC_DEVICE, LPC_FUNC, ICH_REG_LPC_GPI_ROUT) |= 1 << (2 * GpiNo);

将配对的GPI在GPI_POUT中设置,SMI信号就可以rout到相应的GPIO

 

软件触发NMI的流程:

在SMI的Handle处理程序中设置相应的寄存器来触发NMI,流程如下(参考SBSMI.C里的SBGpi14SmiHandler() ):

         TCO_BASE_ADDRESS=0x0460

         ICH_IOREG_TCO1_CNT=0x08

ICH_IOREG_TCO1_STS=0x04

ALIAS

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值