发新帖我要提问
12
返回列表
打印

STM32+FLASH实现U盘

[复制链接]
楼主: haolaishi
手机看帖
扫描二维码
随时随地手机跟帖
21
haolaishi|  楼主 | 2015-4-27 11:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
    地址的重新影射过程:当对一个地址进行读写操作时,首先要对其进行重影射。首先判断是否有坏块,当坏块数量为0时,就直接返回原来的地址即可。当坏块数量不为0时,先判断最后一次访问和本次访问的地址是否属于同一页,如果属于,那么就直接影射到上一次影射过的块地址。如果不属于,那么就需要去查坏块影射表了。如果只有一个坏块,只要直接比较即可,不用查表。如果坏块数量大于2,那么就需要查表。由于表中地址是按从小到大的顺序排列的,所以可以先和第一个和最后一个判断,如果不在该范围内,那么也不用重新影射,返回原来的地址即可。如果在该范围内,就使用二分查表法查表,搜索它是否在坏块表中。如果是的话,就重新影射地址,并将这个地址保存,以备下一次重影射时地址未跨块直接使用。最大支持50个坏块,在最坏的情况下,该二分查表法需要判断6次。

使用特权

评论回复
22
haolaishi|  楼主 | 2015-4-27 11:28 | 只看该作者
六、USB文件说明
    1、USB固件库文件
usb_conf.h        // USB库文件配制;
    usb_type.h        // USB库文件类型声明,使USB库文件具有独立性;
    usb_def.h         // USB库文件公用的宏定义;
    usb_regs.h        // USB控制器寄存器描述;
    usb_regs.c        // USB控制器寄存器底层操作函数;
    usb_init.c        // USB控制器初始化;
    usb_int.c         // USB高优先级中断和低优先级中断处理函数,在本例中没有用到高优先级中级,所以去掉了;
    usb_mem.c         // 这个函数用于将USB端点的数据传送给主机和主机的数据传送到USB端点;
    usb_croe.c        // USB2.0协议处理;

使用特权

评论回复
23
haolaishi|  楼主 | 2015-4-27 11:29 | 只看该作者
2、USB Mass Storage Bulk Only实现
//以下文件也是出自STM32官方,但要根据实际的应用作修改.
  usb_pwr.c         // USB控制器的电源管理函数;
  usb_istr.c        // USB低优先级中断入;
  usb_endp.c        // 非控制端点处理(大容量数据存储输入和输出函数);
  usb_prop.c        // Mass Storage相关属性:mass初始化、复位等等;
  usb_bot.c         // BOT状态机,CBW解析和调用SCSI处理(批量数据输入输出的状态转换通过BOT状态机实现),这个程序负责接收主机的CBW包,并解析,调用SCSI命令处理函数,返回CSW;
  usb_scsi.c        // SCSI命令处理;
  usb_desc.c        // USB描述符;

使用特权

评论回复
24
haolaishi|  楼主 | 2015-4-27 11:29 | 只看该作者

使用特权

评论回复
25
rogerllg| | 2015-4-27 20:05 | 只看该作者
大哥你牛的,不过代码不能下载~

使用特权

评论回复
26
rogerllg| | 2015-4-27 20:08 | 只看该作者
http://www.cnblogs.com/heiyue/p/4381335.html

到这个地址去下载,哈哈。

使用特权

评论回复
27
laserpic| | 2015-4-30 23:28 | 只看该作者
非常详细.

使用特权

评论回复
28
wuyong2k| | 2015-7-29 14:26 | 只看该作者
好东西啊 非常感谢!!!

使用特权

评论回复
29
haolaishi|  楼主 | 2015-7-30 16:51 | 只看该作者
wuyong2k 发表于 2015-7-29 14:26
好东西啊 非常感谢!!!

:lol必须好东西

使用特权

评论回复
30
gzydominating| | 2015-11-24 21:45 | 只看该作者
资料连接不能用

使用特权

评论回复
31
perry_peng| | 2015-11-27 10:44 | 只看该作者
谢谢分享。

使用特权

评论回复
32
sblpp| | 2016-11-7 18:30 | 只看该作者
还是无法下载啊,能再发下链接吗?谢谢了

使用特权

评论回复
33
vibra2016| | 2016-11-8 21:04 | 只看该作者
这个分享是非常详细的,采用stm32来做住MCU的,性能上是够用的。

使用特权

评论回复
34
vibra2016| | 2016-11-8 21:05 | 只看该作者
重点是stm32的USB的数据传输的,这一点直接选用自带USB模块的MCU比较好

使用特权

评论回复
35
vibra2016| | 2016-11-8 21:06 | 只看该作者
另一重点就是需要注意大容量的flash的选取的,,作为U盘的话,性能好坏这个是关键的

使用特权

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

本版积分规则