
前言 某客户的产品,需要评估 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 大小,如下图: ![]() 二、 结论 应该是驱动代码占用了堆空间不够导致的程序不正常。 |