低功耗蓝牙芯片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中断
测试结果:


浙公网安备 33010602011771号