论坛» 嵌入式开发» MCU

使用ADS的AXD出现的问题

菜鸟
2006-01-09 22:23 1楼

各位:

我使用的是ADS,编译好之后,使用AXD进行调试,有时会发现出现‘unable set breakpoint!’的提示,这时无法进行调试,但是,有时什么也没有改变,就又可以了。这是怎么回事啊?

菜鸟
2006-01-09 22:35 2楼
有几个可能:
1. 你的程序在FLASH里调试的时候,最多只能设置2个断点(硬件断点)。这种情况下,你最好把VECTOR CATCH和SEMIHOSTING给关掉,因为他们都可能会占用断点资源的。
2. 如果你的程序是在RAM/SDRAM里调试的话,应该不会出现你UNABLE SET BREAKPOINT的提示的,除非是你把断点设置在数据段;另外一个可能就是软件的限制。
菜鸟
2006-01-09 23:06 3楼
我是在SDRAM里调试的,使用的是JTAG口+HJTAG,我只是刚load完就出现提示,我还没设断点的,也就谈不上把断点设置在数据段了,另外我发现一般在main函数的第一句上AXD会自动设置一个断点,关于软件的限制,我装ADS的时候,也装了license了,应该是解压版本吧,版本是ADS1.2
菜鸟
2006-01-09 23:31 4楼

1. AXD会自动在MAIN入口处设置断点,因为用户经常希望程序能够运行到MAIN处,然后停下来;
2. 每次RELOAD程序的时候,AXD会尝试恢复上一次调试时候设置的断点,如果你的程序修改过了
或者是SDRAM配置变化了,都可能出现不能设置断点提示;
3. 如果你的SDRAM配置没有成功的话,设置断点会有问题。因为H-JTAG会尝试在SDRAM里设置软
件断点,如果读写的时候不成功,H-JTAG就会用硬件断点来替代。这样的话,就会占用断点资源。


麻烦你用H-JTAG帮我做一个测试吧:
你RELOAD同一个程序几次,每次RELOAD的之前,都重新配置一下SDRAM
看看会不会CAN'T SET BREAKPOINT的错误提示。

菜鸟
2006-01-09 23:53 5楼

对于第一点,我明白了;

对于第二点,那样的话,AXD就不让你继续调试了么?我刚才遇到的好像不简单的是提示,而是不让继续调试,我还得重新load,然后莫名其妙的就好了,而且也没有规律可循。遇到这种情况正确的做法是什么?

对于第三点,(不客气,哈哈,能为大侠做点事是我的荣幸),我不知道重新配置一下SDRAM,怎么配置啊,现在我还没来得及详细的研究SDRAM的那些配置参数,我现在是利用一个现成的测试程序来做启动程序(配置SDRAM)。

菜鸟
2006-01-10 00:09 6楼

第二点: 一般都是重新RELOAD一次,没什么影响的;
第三点: 如果你是用别的初始化程序来配置SDRAM,应该没有问题;

你在调试的时候帮我留意一下吧,如果在出现类似的情况,你在和我联系吧。我会尝试分析一下,是不是H-JTAG处理的问题。

谢谢!

菜鸟
2006-01-10 00:26 7楼
好的,多谢
共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]