打印
[STM32F1]

spi flash 如何同时U盘存储和一般数据存储

[复制链接]
4577|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ccd007|  楼主 | 2017-7-3 17:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在105板子上想将spi flash分为两个区间,一部分做U盘,一部分做常用数据存储空间。目前发现spi flash作为U盘的功能正常后,我想读取后半部分空间里面存储的数据时读不出来,一直处于发送指令的状态。请问有人遇到过类似问题么,怎么解决?
沙发
feelhyq| | 2017-7-3 17:22 | 只看该作者
U盘做什么用?文件系统吗?如果是文件系统,可以看看基于SPI flash文件系统驱动部分,其中有Flash容量识别的代码,将其改下就行了。

使用特权

评论回复
板凳
ccd007|  楼主 | 2017-7-3 17:38 | 只看该作者
feelhyq 发表于 2017-7-3 17:22
U盘做什么用?文件系统吗?如果是文件系统,可以看看基于SPI flash文件系统驱动部分,其中有Flash容量识别 ...

容量部分我已经改为spiflash容量的一半了。插到电脑上也能当做正常U盘使用,但主板上运行另外一半容量的读写时,进入发送指令的死循环了—— while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);

使用特权

评论回复
地板
feelhyq| | 2017-7-3 17:45 | 只看该作者
ccd007 发表于 2017-7-3 17:38
容量部分我已经改为spiflash容量的一半了。插到电脑上也能当做正常U盘使用,但主板上运行另外一半容量的 ...

那应该从SPI驱动代码本身找原因,不管U盘怎么分的 本质上都是通过SPI读写数据。很有可能你操作的U盘SPI驱动和操作的SPI后半部分空间驱动不兼容

使用特权

评论回复
5
ccd007|  楼主 | 2017-7-3 18:04 | 只看该作者
feelhyq 发表于 2017-7-3 17:45
那应该从SPI驱动代码本身找原因,不管U盘怎么分的 本质上都是通过SPI读写数据。很有可能你操作的U盘SPI驱 ...

关掉USB初始化,spiflash后半部分的的读写时没有问题的。所以应该是U盘是采用中断进入spiflash的读写的,对普通模式的spiflash产生了影响。我不住不断开关中断对USB接收和传输数据有没影响。不知谁还有更好的办法。

使用特权

评论回复
6
feelhyq| | 2017-7-3 18:26 | 只看该作者
ccd007 发表于 2017-7-3 18:04
关掉USB初始化,spiflash后半部分的的读写时没有问题的。所以应该是U盘是采用中断进入spiflash的读写的, ...

本质上来讲 中断时不会对SPI读写flash有影响的,Flash没有读写超时,你看到的只是表面,沉下心多分析分析,你能够解决的。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
ccd007 + 2
7
ccd007|  楼主 | 2017-7-3 18:54 | 只看该作者
feelhyq 发表于 2017-7-3 18:26
本质上来讲 中断时不会对SPI读写flash有影响的,Flash没有读写超时,你看到的只是表面,沉下心多分析分析 ...

谢谢,我再试试

使用特权

评论回复
8
MOn51| | 2017-7-3 20:11 | 只看该作者
你把SPI-FLASH 分成2部分,确定开始地址和扇区数就可以了。我的做法是:0-99扇区,做基本FLASH,100~最后给U盘用。效果很好。这里使用物理地址,你减去偏移量,得到逻辑地址,再操作。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
ccd007 + 2
9
ccd007|  楼主 | 2017-7-3 20:43 | 只看该作者
MOn51 发表于 2017-7-3 20:11
你把SPI-FLASH 分成2部分,确定开始地址和扇区数就可以了。我的做法是:0-99扇区,做基本FLASH,100~最后给 ...

不用特殊操作么?我现在用的是4M字节的spiflash,前面2M当做U盘,后面2M当做基本FLASH。U盘读写没问题,基本的flash读写反而出现了问题。基本读写程序是一样的,而且去掉U盘功能,读写也不存在问题。不知道为什么会这样2M的分法怎么说也应该是整扇区分区了。我就怕正常读写flash扇区时需要关掉中断防止U盘影响,对我的程序时序影响太大。

使用特权

评论回复
10
gygp| | 2017-7-3 22:49 | 只看该作者
使用的是多大的U盘?

使用特权

评论回复
11
chenci2013| | 2017-7-3 22:49 | 只看该作者
使用的是FATFS吗?

使用特权

评论回复
12
biechedan| | 2017-7-3 22:50 | 只看该作者
这个真不知道怎么操作呢,只读写过Flash。

使用特权

评论回复
13
wangdezhi| | 2017-7-3 22:50 | 只看该作者
用作U盘之后,可以写入数据txt文档。

使用特权

评论回复
14
isseed| | 2017-7-3 22:51 | 只看该作者
超出Flash空间了吗?

使用特权

评论回复
15
xietingfeng| | 2017-7-3 22:52 | 只看该作者
16
suzhanhua| | 2017-7-3 22:52 | 只看该作者
这个还真不知道,用过fatfs而已。

使用特权

评论回复
17
mituzu| | 2017-7-3 22:53 | 只看该作者
数据存在必须分开吗

使用特权

评论回复
18
hellosdc| | 2017-7-3 22:53 | 只看该作者
能不能在虚拟一个EEPROM?

使用特权

评论回复
19
gygp| | 2017-7-3 22:54 | 只看该作者
太大的U盘好像读取不了。

使用特权

评论回复
20
chenci2013| | 2017-7-3 22:54 | 只看该作者
现在读取U盘用的文件系统是什么

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

56

帖子

2

粉丝