因为我开发的产品程序是基于BIOS的,产品主要的功能已经实现,因此其他的功能也必须在BIOS下实现。
现在还差一个功能,就是连接PC后,让PC将产品识别为U盘。
我已经在BIOS下成功实现了48M虚拟U盘,其中48M就是USB_DEV_MSC中映射到内存上的空间。
在将
disk_read(),disk_write(),disk_initialize(),disk_ioctl()这4个函数映射到SD卡操作时遇到了问题。
我本来想直接使用FatFs中的函数,但是在FatFs中这几个函数可能用到了信号量,而调用它们的上层函数
USBDMSCStorageRead,USBDMSCStorageWrite,USBDMSCStorageNumBlocks可能是在ISR中执行的。最后就只能移植不带BIOS的MMCSD例程中的实现函数来实现disk_read()等4个函数。
通过上述方法,实现了所需要的USB读卡器功能。
因为我开发的产品程序是基于BIOS的,产品主要的功能已经实现,因此其他的功能也必须在BIOS下实现。
现在还差一个功能,就是连接PC后,让PC将产品识别为U盘。
我已经在BIOS下成功实现了48M虚拟U盘,其中48M就是USB_DEV_MSC中映射到内存上的空间。
在将disk_read(),disk_write(),disk_initialize(),disk_ioctl()这4个函数映射到SD卡操作时遇到了问题。
我本来想直接使用FatFs中的函数,但是在FatFs中这几个函数可能用到了信号量,而调用它们的上层函数USBDMSCStorageRead,USBDMSCStorageWrite,USBDMSCStorageNumBlocks可能是在ISR中执行的。最后就只能移植不带BIOS的MMCSD例程中的实现函数来实现disk_read()等4个函数。
通过上述方法,实现了所需要的USB读卡器功能。
举报