前言
某客户的产品,需要评估NUCLEO-F746ZG板上的USB功能,使用cube Version 4.15.1 版本工具生成工程,但在win7和win10上遇到驱动不正确。
使用32F411 或F407时枚举及驱动,都很正常
一、 测试
1.1. IDE 环境
Embeded workbench for ARM v7.30
1.2. 修改堆栈大小
原heap为0x200,调整到400时可正常使用,如下图:
PC机上正常,如下图:
1.3. 修改编译选项
在IAR编译选项中,选择检查heap,如下图:
编译执行中发现在USB_CDC.c 文件中第517行分配内存时超过0x200大小,如下图:
二、 结论
应该是驱动代码占用了堆空间不够导致的程序不正常。