STM32 USB RamDisk
phpskycn2016/03/18软件综合 IP:浙江
这是一个简单的STM32 USB设备驱动例子,利用片内SRAM和USB OTG实现了RamDisk。

使用
STM32F105/7xx, STM32F2xx and STM32F4xx USB On-The-Go Host and Device library V2.2.0
STM32F4xx DSP and Standard Peripherals Library V1.6.1


在STM32F4DISCOVERY Discovery kit(STM32F407VGT6)上使用Keil 5.16编译,测试通过
经过简单移植可以工作在STM32F105/F107/F2/F3/F4 MCU上),STM32F0和STM32F7系列的兼容性未知


仅支持USB OTG FS模式工作
仅支持连续的RAM地址,比如在STM32F407VG上只能使用第一块128kb的SRAM,如果需要使用多块的需要加入二级映射机制
在usbd_storage_sram.c中
通过#define USB_RAMDISK_SIZE  设置存储大小(单位:字节)
数据存储在uint8_t STORAGE_Pool[USB_RAMDISK_SIZE]中,可以通过强制设置该全局变量的位置修改存储位置


经过测试在Windows7/Windos10/Android 5.1的设备上可以正常被识别、读取、写入,但是在Android设备上的格式化操作会失败,
原因未知


NOTE:
使用了STM32标准库的模板工程,请确保USB库和固件库位于..\..\..\Libraries\下
因为STM32USB 固件库的一处bug(usbd_usr.h line 34-36):

<code class="lang-cpp">#if ! defined (USE_STM32446_EVAL) && ! defined (USE_STM32469I_EVAL)
#include "lcd_log.h"</code>


需要确保
..\..\..\Utilities\STM32_EVAL\Common
目录的存在(需要从上述任意固件库中复制出来)。可以自行修复这个bug后去掉这个依赖项。


attachment icon stm32ramdisk.zip 8.34MB ZIP 89次下载
来自:计算机科学 / 软件综合
3
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
phpskycn
专家 老干部 学者 机友 笔友
文章
402
回复
4591
学术分
8
2009/03/15注册,2个月3天前活动

CV

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}