战舰V3系列03:添加SD卡驱动及文件系统

本系列以 oneos2.3.0 提供的 STM32F103ZE 模板为基础,将 oneos 在战舰 V3 上运行起来,并逐步适配相关外设,计划周更

本系列相关代码将上传 gitee 供测试体验,仓库: https://gitee.com/dreamfly233/OneOS/tree/OneOS-V2.3.0/

这是本系列的第3期,尝试修复ST非H7系列SDIO驱动的问题,影响正点原子战舰V3、万耦天工等SDIO连接SD卡的开发板,并进行挂载文件系统的实验

准备项:

复制上个教程的stm32f103zet6-atk-warship_v3-serial文件夹,并重命名为stm32f103zet6-atk-warship_v3-sdcard

cubemx配置:

下面是战舰V3 SD卡部分的原理图:

打开projects\stm32f103zet6-atk-warship_v3-sdcard\board\CubeMX_Config 下 的 cubemx 工程文件(CubeMX_Config.ioc),参照原理图进行配置:

配置SDIO使用的dma:

勾选使能SDIO的中断:

完成以上配置后点击GENERATE CODE生成代码

menuconfig配置及生成工程

在stm32f103zet6-atk-warship_v3-sdcard文件夹打开oneos-cube并进入menuconfig

定位到 Drivers→ SDIO下,勾选Using SD/MMC device drivers,Enable SDIO debug log output 项可选

sdio的日志依赖dlog输出,若上一步勾选了Enable SDIO debug log output项,在下面勾选dlog:

定位到Kernel→ Inter-task communication and synchronization,勾选上SDIO需要的内核IPC项如图:

这里按esc退出保存配置,并使用scons --ide=mdk5生成mdk工程

打开project.uvprojx工程

这里需要对"drivers\hal\st\drivers\drv_sdio.c"进行修改
添加SDIO_IRQHandler中断处理函数

对F103开发板,24M的频率过高需要调整,否则会出现如下报错:

调整SDIO工作频率

编译下载,在shell中使用device查看生成的设备:

出现sd0块设备,说明SDIO的SD卡驱动基本没有问题,下面可以挂载文件系统了

参考demos下的sd挂载例程,将"demos\driver\sdmmc_test.c"这个文件复制到"projects\stm32f103zet6-atk-warship_v3-sdcard\application"文件夹,并加入mdk工程

使用sdmmc_test命令进行挂载

成功挂载文件系统,使用echo、ls、mkdir、cat、rm等命令即可在shell中对文件系统进行测试:

  • 注意:SD卡需要提前格式化为fat格式,建议格式化为fat32

战舰V3适配oneos系列03:添加SD卡驱动及文件系统相关推荐

  1. 战舰V3适配oneos系列02:添加串口驱动

    战舰V3适配oneos系列02:添加串口驱动 参考: https://os.iot.10086.cn/v2/doc/detailPage/documentHtml?idss=1574615317503 ...

  2. 战舰V3适配oneos系列01:bsp适配

    战舰V3适配oneos系列01:bsp适配 本系列以oneos2.3.0提供的STM32F103ZE模板为基础,将oneos在战舰V3上运行起来,并逐步适配相关外设 本系列计划周更 本系列相关代码将上 ...

  3. 战舰V3适配oneos系列05:添加外部SRAM

    战舰V3系列05:添加外部SRAM 本系列以 oneos2.3.0 提供的 STM32F103ZE 模板为基础,将 oneos 在战舰 V3 上运行起来,并逐步适配相关外设,计划周更 本系列相关代码将 ...

  4. S3C2416裸机开发系列十六_sd卡驱动实现

    S3C2416裸机开发系列十六 sd卡驱动实现 象棋小子    1048272975 SD卡(Secure Digital Memory Card)具有体积小.容量大.数据传输快.可插拔.安全性好等优 ...

  5. STM32CubeMX系列09——SDIO(SD卡读写、SD卡移植FATFS文件系统)

    文章目录 1. 准备工作 1.1. 简单扫盲 1.1.1. SD卡 1.1.2. TF卡 1.1.3. SDIO接口 1.2. 所用硬件及原理图 2. 创建工程 2.1. 选择主控 2.2. 系统配置 ...

  6. Android添加sd卡权限

    Android添加sd卡权限 1.在AndroidManifest.xml中添加 <uses-permission android:name="android.permission.R ...

  7. S5PV210开发系列五 sd卡驱动实现

    SD卡(Secure Digital Memory Card)具有体积小.容量大.数据传输快.可插拔.安全性好等优点,被广泛应用于便携式设备上.例如作为数码相机的存储卡,作为手机.平板多媒体扩展卡用的 ...

  8. STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试

    一.前言 在STM32项目开发中,经常会用到存储芯片存储数据. 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复:在存储芯片里也会存放很多资源文件.比如,开机音乐,界面上的菜单 ...

  9. Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统

    系列文章目录 Exynos4412 移植针对Samsung的Linux-6.1(一)下载.配置.编译Linux-6.1 Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动 ...

最新文章

  1. 路由器与集线器、交换机的根本区别
  2. Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
  3. 使用nsenter进入docker容器后端报错 mesg: ttyname failed: No such file or directory
  4. 如何基于asp.net core的Identity框架在mysql上作身份验证处理
  5. Linux 使用 jstat 命令查看 jvm 的 GC 情况
  6. fastjson反序列化过滤字段属性_Fastjsonlt;=1.2.47反序列化漏洞源码分析及复现
  7. 【英语学习】【WOTD】ratiocination 释义/词源/示例
  8. java 为何 无效_java – 为什么compareTo无效导致Collections.sor...
  9. Java神鬼莫测之MyBatis--各类数据库like字段使用方式(一)
  10. 怎样访问远程服务器文件夹,远程访问服务器文件夹
  11. Win10提示对电脑进行保护已阻止此应用无法打开
  12. standard-version(发版与 Changelog 自动化)
  13. 顶级计算机专家一年赚多少,成为一个计算机专家需要多高的IQ?请实话实说
  14. spring cloud bus的使用及使用bus发布自定义事件
  15. H.266/VVC相关技术学习笔记4:HEVC和VVC中块划分的差别
  16. 【统计学习】5分钟了解假设检验中的第一类错误和第二类错误
  17. GeoPandas官方中文文档--译著
  18. 跟着吴坚鸿学单片机——第2天:delay()延时实现LED灯的闪烁
  19. Windows下载Hadoop,本地执行MapReduce
  20. 超市智能商品推荐系统设计

热门文章

  1. Oracle Workflow Builder 下载地址
  2. 电脑有网络,QQ却登录不上?
  3. 学生成绩管理系统 c++版
  4. 学校校园教务老师选课排课系统 毕业设计毕设源码毕业论文参考(1)功能概要
  5. natapp 外网映射本地
  6. 在Odunpazari现代博物馆,棉花糖激光盛宴以不同寻常的方式将自然带入生活
  7. 移动端车牌识别哪家好
  8. 【立创EDA开源推荐】001期 | 基于航顺HK32F030R8串行Flash烧录器
  9. G -- HDU 4329 MAP
  10. Android日志收集