Thread 中讨论的其他器件:EK-TM4C1294XL
您好!
在下面的代码示例中、我打开 USB 记忆棒、检查它是否已连接、然后再次将其关闭。
但是每次执行函数 USBCopy ()时、HeapMemory 的20个字节将不再被释放。
在一个任务内调用 USBCopy 函数。 此任务的堆栈大小为2048字节
我有 EK-TM4C1294XL Launch Pad 并使用 TI-RTOS 版本:TI-RTOS 2.16.1.14。
此代码来自 TI 示例项目。 如果在 TI USB 示例项目中删除了 BIOS_exit (0)并且插入了等待循环、您还可以看到缺少20个字节。
原因可能是什么? 我请求帮助
void usbCopy(void) { // Variables for the CIO functions USBMSCHFatFs_Handle usbmschfatfsHandle; USBMSCHFatFs_Params usbmschfatfsParams; // Mount and register the USB Drive USBMSCHFatFs_Params_init(&usbmschfatfsParams); usbmschfatfsParams.serviceTaskStackPtr = usbServiceTaskStack; usbmschfatfsParams.serviceTaskStackSize = sizeof(usbServiceTaskStack); usbmschfatfsHandle = USBMSCHFatFs_open(0, USB_DRIVE_NUM, &usbmschfatfsParams); if (usbmschfatfsHandle == NULL) { //System_abort("Error starting the USB Drive\n"); } else { System_printf("Drive %u is mounted\n", USB_DRIVE_NUM); System_flush(); } // Need to block until a USB Drive has been enumerated if (!USBMSCHFatFs_waitForConnect(usbmschfatfsHandle, 10000)) { System_printf("No USB drive present, aborting...\n");System_flush(); return; } System_printf("usb close\n"); System_flush(); USBMSCHFatFs_close(usbmschfatfsHandle); }