问一个关于ccs中断点设置的问题

z85343619 2011-08-12 10:57:58
void main( void )
{
/* Initialize BSL */
EVMDM365_init( );

TEST_execute( ADC_test, "ADC Converters", 1 );

printf( "\n***ALL Tests Passed***\n" );
SW_BREAKPOINT;
}

这里#define SW_BREAKPOINT asm( " .long 0xE1200070" );
我想问下SW_BREAKPOINT 在这里起什么作用?是不是就是设置一个中断点,相当于程序调试时运行到这里就停止?
那为什么要这要设置呢?谢谢!
...全文
1307 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
chocolate001 2011-08-23
  • 打赏
  • 举报
回复
你理解的是对的。
#define SW_BREAKPOINT asm( " .long 0xE1200070" );
定义的时注释为Software Breakpoint code. Uses inline assembly command ,即用内联的汇编命令来实现软件中断点。当运行程序时,运行到这里,就会停下来。
其中有一个用处就是当程序出错时,可以打印一行提示信息,并且程序停在这里而并没有退出,这样用户可以使用watch查看变量等调试工作。相当于对可能出现问题的地方做了预判。

6,127

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧