STM32F746跑freeRTOS设的断点表现不正常,时间不对。
现象是,明明os延时1秒,结果马上到断点,而且相应代码没有动作。我最初以为是Cache作怪,关闭了也还有问题。
再试了下是不是STM32Cube问题,结果跑L452没问题。{:sweat:}
(PS:全速跑功能正常) 更新:将ST-Link烧J-Link模式,异常没有了。 是不是系统时钟频率没有配置对啊 ??????? hpdell 发表于 2018-9-18 22:09
是不是系统时钟频率没有配置对啊 ???????
应该不是,我设的216MHz。关闭断点,全速仿真或重启运行,现象是正常的。 styleno1 发表于 2018-9-18 22:10
应该不是,我设的216MHz。关闭断点,全速仿真或重启运行,现象是正常的。 ...
你把 配置后的时钟频率读出来看看是否是 216MHz ?
另外你有没有使用 stm32f7xx 系列单片机的 dwt 作为延时功能使用啊 ? 也没有产生异常,好像只是错误地触发了断点,断点处代码实际没有运行。(没有试过狂按F5,看什么时候真运行了) styleno1 发表于 2018-9-18 22:14
也没有产生异常,好像只是错误地触发了断点,断点处代码实际没有运行。(没有试过狂按F5,看什么时候真运行 ...
printf("stm32F7xx HAL_RCC_GetHCLKFreq = %d MHz\r\n", HAL_RCC_GetHCLKFreq());
printf("stm32F7xx HAL_RCC_GetPCLK1Freq = %d MHz\r\n", HAL_RCC_GetPCLK1Freq());
printf("stm32F7xx HAL_RCC_GetPCLK2Freq = %d MHz\r\n\r\n", HAL_RCC_GetPCLK2Freq());
上述是 打印 系统时钟频率的,你试试看是否正确,如果正确再找其他原因 hpdell 发表于 2018-9-18 22:13
你把 配置后的时钟频率读出来看看是否是 216MHz ?
另外你有没有使用 stm32f7xx 系列单片机的 dwt ...
之前没有用DWT。不过你提到printf,我用的Event Recorder,会用到DWT。 本帖最后由 styleno1 于 2018-9-18 23:20 编辑
全速会有输出,正常,开断点有问题,没输出。(另外,试了不带OS的例程,没这个毛病)
希望有人用Cube建个工程也测下。{:handshake:} styleno1 发表于 2018-9-18 23:19
全速会有输出,正常,开断点有问题,没输出。(另外,试了不带OS的例程,没这个毛病)
希望有人用Cube建个 ...
我使用 stm32f77的单片机,使用的也是 FreeRTOS 系统,打断点貌似都很好,没有你所说的情况发生啊 更新,换同事电脑试了跑例程,一样的现象,莫不是ST-Link带坑。 这个是Cortex M7 r0p0 r0p1的坑,www.keil.com/support/docs/3778.htm hpdell 发表于 2018-9-18 23:58
我使用 stm32f77的单片机,使用的也是 FreeRTOS 系统,打断点貌似都很好,没有你所说的情况发生啊 ...
F77x是高版本的M7,断点没问题。
caixiuwen 发表于 2018-9-21 09:57
这个是Cortex M7 r0p0 r0p1的坑,www.keil.com/support/docs/3778.htm
看了这篇,写的是“ARM: single stepping Cortex-M7 enters pending exception handler”
按详细描述,跟我这的现象不太一样,它指的是单步会进中断响应。 styleno1 发表于 2018-9-24 22:49
看了这篇,写的是“ARM: single stepping Cortex-M7 enters pending exception handler”
按详细描述,跟 ...
确实不一样,不过应该都是调试的bug。网上也找不到详细的解释了。 styleno1 发表于 2018-10-13 14:51
更新:将ST-Link烧J-Link模式,异常没有了。
Segger有个workaround。https://forum.segger.com/index.php/Thread/2819-SOLVED-Interrupts-while-performing-single-step-CORTEX-M7/ 这个贴最下面提到了。 是不是编译开了优化,导致代码段共享了?不开优化试试。一般来说,要短点debug,一般不开优化。 styleno1 发表于 2018-9-24 22:49
看了这篇,写的是“ARM: single stepping Cortex-M7 enters pending exception handler”
按详细描述,跟 ...
(引用自13楼)
请教下,现在的m7 stm32f746还有这个问题吗? 如果不是上文提到的M7版本Bug,那就是STlink 没有下载最新代码进去。
页:
[1]