使用STM32CubeIDE在NUCLEO-l4r5zi开发板上使用ST-LINK进行调试。 创建一个新项目,选择NUCLEO-l4r5zi开发板。
使用默认设置创建项目——能够正常调试并单步执行main()函数。
在main函数的最后while(1)循环前添加printf("Entering while loop\n")。 在USB初始化过程中,程序会在USB_SetCurrentMode()里的HAL_Delay(50u)调用时陷入系统存储器区域循环。系统被锁死。
注释掉HAL_Delay调用后,printf输出"Entering ",随后仍会陷入系统存储器区域。
尝试将Min_Stack和Min_Heap增加到128K,但问题依旧。
使用int __io_putchar(int ch)重定向STDOUT不会导致此问题,仅添加printf时会出现。
请教这种问题如何解决?
|