低功耗蓝牙芯片CH57x、CH58x、CH59x软中断设置

简介:

单片机的 软中断(Software Interrupt)是一种由程序主动触发的特殊中断机制(通常通过特定指令或函数调用实现),其核心作用是能在受控环境下强制切换执行流程 ,实现系统级功能或调试支持。

作用:

  • 主动触发中断流程 不同于硬件中断(由外部事件触发),软中断通过代码(如 SWI 指令、int 0x80 等)主动跳转到中断服务程序(ISR),实现可控的上下文切换。
  • 权限提升与系统调用 在运行模式分级的系统(如 ARM 的 用户模式/特权模式 )中,软中断是用户程序访问内核功能的唯一合法入口;

 

编译器.s文件定义函数入口:

 

函数定义:

__INTERRUPT关键字必须加上,否则只会触发一次;

void Software_Interrupt_Init(void)
{
    PFIC_EnableIRQ(SWI_IRQn);
}
__HIGH_CODE
__INTERRUPT
void SW_Handler(void)//中断服务函数定义
{
    PRINT("SW_Handler\n");
}

测试连续触发五次:

  PFIC_SetPendingIRQ(SWI_IRQn);//立即进入SW中断
  PFIC_SetPendingIRQ(SWI_IRQn);//立即进入SW中断
  PFIC_SetPendingIRQ(SWI_IRQn);//立即进入SW中断
  PFIC_SetPendingIRQ(SWI_IRQn);//立即进入SW中断
  PFIC_SetPendingIRQ(SWI_IRQn);//立即进入SW中断

测试结果:

 

posted @ 2025-04-27 16:32  oTvTo  阅读(101)  评论(0)    收藏  举报