完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
项目背景,在DSP上挂Fatfs文件系统,而SD卡是挂在FPGA上的,DSP需要通过FPGA与SD卡交互,大概就是会把数据存到FPGA的DDR上,然后FPGA再对SD卡进行读写操作。 问题:SD卡在进行跨簇写的时候需要去读SD内容,可能这个时候,FPGA正在对SD进行写操作,导致DSP这边需要等待。 找到问题方法:启用快速读写,我理解的快速读写是生成一个固定大小的文件,然后把链接这个文件大小的Fat表全部存储到DSP的内存里,如果我需要跨簇些内容,只需读这个Fat表即可。而不需要与SD卡交互。但是无论我怎么增长clmt这个数组的长度,我都只写入了8KB的大小。我的簇大小就是8KB,所以不确定这个东西我理解的对不对,或者有没有其他方法,可以解决这个问题 |
|
相关推荐
1个回答
|
|
实际上,SD卡在进行跨簇写操作时,确实需要读取旧簇的数据以及更新FAT表。然而,对于跨簇写操作进行优化是一个复杂的任务,并且需要考虑到实时性、并发性等因素。下面是一些可能的解决方案:
1. 缓存机制:在DSP中维护一个缓存区,在进行跨簇写操作时,首先将需要读取的簇数据缓存到DSP的DDR中,并通过FPGA将其存储到SD卡。然后,在FPGA进行写操作时,不需要等待SD卡读操作的完成,而是继续进行写操作。当DSP需要读取数据时,先从缓存区读取,如果数据没有命中缓存,则需要等待FPGA完成操作。 2. 双缓冲机制:在DSP中维护两个缓存区,一个用于读取旧簇数据,另一个用于写入新簇数据。这样,在进行跨簇写操作时,可以并行进行读取和写入操作。当DSP需要读取数据时,可以直接从缓存中读取,而不需要等待FPGA的操作。 3. DMA技术:利用DMA(Direct Memory Access)技术,在DSP和FPGA之间进行数据传输。通过配置DMA引擎,可以实现数据的高速传输,减少等待时间,提高系统性能。 关于你提到的快速读写的方法,只是一种优化策略,并不是绝对解决问题的方法。这种方法可以减少对SD卡的访问次数,但无法避免在进行跨簇写操作时仍然需要等待FPGA的读写操作。 综上所述,解决该问题可以综合考虑上述的优化方法,并根据具体应用场景进行调整和优化。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
852 浏览 1 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
592 浏览 0 评论
【敏矽微ME32G070开发板免费体验】使用coremark测试敏矽微ME32G070 跑分
705 浏览 0 评论
【敏矽微ME32G070开发板免费体验】开箱+点灯+点亮OLED
926 浏览 2 评论
657 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12005 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-21 23:14 , Processed in 0.658442 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号