stm32F767 使用DWT 来设计延时函数 ,程序如下 初始化 ,但是 我只有在使用jlink调试器的时候 才起作用。 关机 ,拿掉jlink 重新启动的话 ,dwt不计数 了 。就是说 才调试情况下 ,这dwt才工作 。我怀疑过M4
内核可能和M7不一样 ,查了 头文件,还有 ARMV7-M Architecture Reference Manual。 看寄存器的地址什么的都是一样的。
但是就是不行 这个在429上面运行就没啥问题。。。。。。 有谁用过的吗?指教一下 谢谢
(使用的是 Eric的 429 上面的程序原型 )
#define DWT_CYCCNT *((volatile unsigned int *)0xE0001004)
#define DWT_CR *((volatile unsigned int *)0xE0001000)
#define DEM_CR *((volatile unsigned int *)0xE000EDFC)
#define DBGMCU_CR *((volatile unsigned int *)0xE0042004)
#define ITM_LAR *((volatile unsigned int *)0xE0000FB0)
#define DEM_CR_TRCENA (1 << 24)
#define DWT_CR_CYCCNTENA (1 << 0)
void bsp_DWT_Init(void)
{
//ITM_LAR = 0xC5ACCE55;
DEM_CR |= (unsigned int)DEM_CR_TRCENA; /* Enable Cortex-M4's DWT CYCCNT reg. */
//ITM_LAR = 0xC5ACCE55;
DWT_CYCCNT = (unsigned int)0u;
DWT_CR |= (unsigned int)DWT_CR_CYCCNTENA;
} |