在调试一个程序的时候想看看各个函数用时多少,于是用读取自由计数器并打印的方法来来查看时间,
可是发现下载进去后直接复位运行,出来的结果总是0,
而进入调试模式时,打印的值却是正确的,这让我非常困惑,求问是哪里出问题了呢?
调试的主要代码如下:
printf("%X\n",(*(u32 *)0xE0001000));//打印DWT控制寄存器值
(*(u32 *)0xE0001000)=0x40000001;//原来以为是控制寄存器设置问题,加的调试代码
printf("%X\n",(*(u32 *)0xE0001000));
while(1)
{
printf("%X",(*(u32 *)0xE0001004));//打印自由计数器计数值
Delay(300);
}
打印的结果却全是0,进入调试模式后却打印的都是正确结果。 |