1. 起因:因为某种原因,需要把原来的代码做成库给第客户调用,但是原来的代码用到好多定义为死循环的DEBUG_BREAK, 如果可以直接调试代码当然没有问题,但是现在要作为库给别人使用,这种代码就很不合理了,我的想法是能不能让DEBUG_BREAK获取当前PC值,并传递给某个接口函数,然后根据Map文件可以大致定位问题出在哪里。
2.问题:要获取PC,多半是要使用内嵌汇编,但是TI编译器的内嵌汇编的格式是怎么样的?比如怎么把PC的值移到某个C变量里面去?我试了一下gcc格式,但是编译不过:
#define DEBUG_BREAK() do { UINT32 PC; \
__asm( " mov %0, pc" \
:"=r"(PC)); \
*DebugBreakHook(PC); \
}while (0) \
或者哪位大虾有更好的方法,还望不吝赐教