使用 __breakpoint 实现软件中断

__breakpoint函数用于在C/C++代码中插入断点指令,使得程序执行到该行时会暂停,无论是否在调试状态。在ARM和Thumb代码中,该函数有特定的数值限制。在不支持BKPT指令的平台或架构上,编译器可能产生警告或错误。此功能在调试复杂问题,如hardfault错误时特别有用,能帮助快速定位问题。
摘要由CSDN通过智能技术生成

__breakpoint 函数

这是一个内部函数,它将 BKPT 指令插入编译器生成的指令流中。 它使您能够在 C 或 C++ 代码中包含断点指令。



语法

void __breakpoint(int val)

其中:

val 是一个编译时常量整数(不怎么重要),其范围为:

  • ARM 代码中为 (0~65535)
  • Thumb 代码中为 (0~255)


需要注意的

在不支持 BKPT 指令的平台(mcu)上编译代码时,编译器无法识别 __breakpoint 函数。 在这种情况下,编译器会生成警告或错误。

如果在不支持它的体系结构上执行 BKPT 指令,则会采用未定义指令陷阱。

只要使用了 __breakpoint 函数,代码在执行到该行时就会停下,即使不是在调试状态,也会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值