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);
}