战舰V3适配oneos系列03:添加SD卡驱动及文件系统
战舰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卡驱动及文件系统相关推荐
- 战舰V3适配oneos系列02:添加串口驱动
战舰V3适配oneos系列02:添加串口驱动 参考: https://os.iot.10086.cn/v2/doc/detailPage/documentHtml?idss=1574615317503 ...
- 战舰V3适配oneos系列01:bsp适配
战舰V3适配oneos系列01:bsp适配 本系列以oneos2.3.0提供的STM32F103ZE模板为基础,将oneos在战舰V3上运行起来,并逐步适配相关外设 本系列计划周更 本系列相关代码将上 ...
- 战舰V3适配oneos系列05:添加外部SRAM
战舰V3系列05:添加外部SRAM 本系列以 oneos2.3.0 提供的 STM32F103ZE 模板为基础,将 oneos 在战舰 V3 上运行起来,并逐步适配相关外设,计划周更 本系列相关代码将 ...
- S3C2416裸机开发系列十六_sd卡驱动实现
S3C2416裸机开发系列十六 sd卡驱动实现 象棋小子 1048272975 SD卡(Secure Digital Memory Card)具有体积小.容量大.数据传输快.可插拔.安全性好等优 ...
- 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. 系统配置 ...
- Android添加sd卡权限
Android添加sd卡权限 1.在AndroidManifest.xml中添加 <uses-permission android:name="android.permission.R ...
- S5PV210开发系列五 sd卡驱动实现
SD卡(Secure Digital Memory Card)具有体积小.容量大.数据传输快.可插拔.安全性好等优点,被广泛应用于便携式设备上.例如作为数码相机的存储卡,作为手机.平板多媒体扩展卡用的 ...
- STM32+雷龙SD NAND(贴片SD卡)完成FATFS文件系统移植与测试
一.前言 在STM32项目开发中,经常会用到存储芯片存储数据. 比如:关机时保存机器运行过程中的状态数据,上电再从存储芯片里读取数据恢复:在存储芯片里也会存放很多资源文件.比如,开机音乐,界面上的菜单 ...
- Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动——解决无法挂载SD卡的根文件系统
系列文章目录 Exynos4412 移植针对Samsung的Linux-6.1(一)下载.配置.编译Linux-6.1 Exynos4412 移植针对Samsung的Linux-6.1(二)SD卡驱动 ...
最新文章
- 路由器与集线器、交换机的根本区别
- Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
- 使用nsenter进入docker容器后端报错 mesg: ttyname failed: No such file or directory
- 如何基于asp.net core的Identity框架在mysql上作身份验证处理
- Linux 使用 jstat 命令查看 jvm 的 GC 情况
- fastjson反序列化过滤字段属性_Fastjsonlt;=1.2.47反序列化漏洞源码分析及复现
- 【英语学习】【WOTD】ratiocination 释义/词源/示例
- java 为何 无效_java – 为什么compareTo无效导致Collections.sor...
- Java神鬼莫测之MyBatis--各类数据库like字段使用方式(一)
- 怎样访问远程服务器文件夹,远程访问服务器文件夹
- Win10提示对电脑进行保护已阻止此应用无法打开
- standard-version(发版与 Changelog 自动化)
- 顶级计算机专家一年赚多少,成为一个计算机专家需要多高的IQ?请实话实说
- spring cloud bus的使用及使用bus发布自定义事件
- H.266/VVC相关技术学习笔记4:HEVC和VVC中块划分的差别
- 【统计学习】5分钟了解假设检验中的第一类错误和第二类错误
- GeoPandas官方中文文档--译著
- 跟着吴坚鸿学单片机——第2天:delay()延时实现LED灯的闪烁
- Windows下载Hadoop,本地执行MapReduce
- 超市智能商品推荐系统设计