然而,实际上SD卡主机端的应用程序能否使用的MMC上的数据,因为是涉及到安全和文件格式的问题,所以是由应用程序决定。 特别是用到安全性的情况下,基本上没有兼容性。...SD卡默认操作的扇区大小是512字节。扇区大小,可以通过指令设置。就算不是512,也可以通过指令设置成512,因为这个值不太大,占用内存不太多,适合单片机使用。...SD卡响应命令成功,可以继续接收4字节的OCR寄存器值; OCR寄存器的第30位(CCS)指示了卡的类型是否为SDHC,此位为1则为SDHC,为0则为SDSC。...然后就可以读取4字节的OCR 寄存器的值。OCR寄存器的第30位(CCS)指示了卡的类型是否为SDHC,此位为1则为SDHC,为0则为SDSC。...图5-5-1 写多个扇区的步骤: 1、发送CMD55命令(正常应返回0x01) 2、 发送CMD23命令(设置多扇区写入前预先擦除N个block)---写入的数量 3、 发送CMD25命令,设置写入的扇区位置
二、MMC/SD卡的模型和工作原理 PIN脚、SD卡总线、SD卡结构、SD卡寄存器、上电过程 SD卡寄存器: OCR:操作电压寄存器: 只读,32位 第31位: 表示卡上电的状态位...(resp[4] & 0x80)); // 直到r3中的ocr回复值中的31位为1的时候表示上电完成了 if(resp[4]&0x40)// 电压验证最后一次应答中带有数据访问模式位,如果为...1,则类似SDHC卡基于块地址访问 { sd2_0 = 1; // 也可以利用r3 返回值中的ocr的30位来检查是高容量卡(>2G)还是标准卡 其实也可以利用cmd9...mmc卡的参数不一样 mmc卡的参数是自己设定一个rca值 ,但是sd卡是通过回复值中读取rca,上面sd卡的初始化中有描述 OUTREG16(A_MSC_CLKRT(0), 1);...Class5 (擦除卡命令集):CMD32:设置擦除块的起始地址.CMD33:设置擦除块的终止地址.CMD38: 擦除所选择的块.
0到2G的SD卡,最普通的卡;2G到32G的SDHC卡,也就是现在最常用的大容量SD卡;还有我没有见过的SDXC卡,容量好像在32G以上。...同时还有手机上的TF卡,实际上也是SD卡 只不过做工不同而已,MMC卡。...),则说明你的SD卡的硬件层版本是2.0的,支持大容量储存,也就是SDHC卡。...我所使用的卡就是SDHC卡,所以有6个字节的返回值,这个在后面说明。另外要说的一点,我曾经直接跳过了CMD8的发送,直接进行了下一步命令,SD卡返回了错误的信息,没有进入正确的读写准备状态。...发送了CMD58命令后,SD卡的下一组返回值为R1返回值+OCR寄存器的内容。根据datasheet我们可以得到很多信息,上面已经提到,具体的位置手册上很明白。
向 SD 卡中烧写 u-boot 烧写位置 : 烧写的 u-boot 位于 sd卡的末端, 如果SD卡存满了数据, 就会将最后的数据破坏掉, 烧写的 u-boot 在文件系统中是看不到的; 计算位置...: 根据SD卡类型计算出 烧写 u-boot 的初始位置; -- SD卡 : SD 卡 最后2个文件块 不能用于烧写 u-boot, 因此烧写的位置是 SD卡块大小 减去 2 再减去 u-boot 的块大小..., 注意是 块 大小, 一块是 512字节; -- SDHC卡 : SDHC 卡 最后 1026 字节不能用于烧写 u-boot, 因此烧写的位置是 SDHC卡 块大小 减去 1026, 再减去 u-boot...; -- bs : 设备的文件块大小; -- count : 烧写的源文件块大小; -- seek : 烧写的sd卡的初始位置, 设立是 sd卡块大小 - 2 - 528; 需要注意的问题 : --...: tftp 50000000 uboot.bin 命令; -- 命令解释 : 下载 uboot.bin 文件到 内存的 50000000 位置; atxb # tftp 50000000 uboot.bin
三维图形中指定绘图的区域, 譬如下图绘制就是 x 和 y 上的环形区域. 想知道这个区域上最大值是多少吗? 答案已经揭晓啦!!! (点击图片下方,查看清晰原图)
可以读取内存芯片 ID、启用 quad SPI 模式、禁用写保护、擦除扇区、进行批量擦除、编程页面和轮询状态寄存器。...虽然这是一个较慢的接口,但在一般情况下,在没有实现到 SD 卡的完整 9 位双向接口时,必须使用 SPI 接口来访问卡。...此外,对于那些顽固的 Verilog 作者来说,这个核心是用 Verilog 编写的,而不是在 GitHub 上找到的XESS 提供的演示 SD 卡控制器(用 VHDL 编写的)。...10 SD卡控制器 https://opencores.org/projects/sdcard_mass_storage_controller 重点是为 SD/SDHC 卡提供快速简单的接口。...https://www.fpga4fun.com/SD.html fpga4fun上的项目 包括SPI和高速模式两种。
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。...给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。...偷窃到的最高金额 = 1 + 3 = 4 。...偷窃到的最高金额 = 2 + 9 + 1 = 12 。...积累的最大价值 } return dp[len - 1]; } } 题目用例有[2, 1, 1, 2] 转化成原型就是:给定一个正数数组,求不相邻的位置上的数字之和的最大值
它在MMC的基础上发展而来,增加了两个主要特色:SD卡强调数据的安全安全,可以设定所储存的 使用权限,防止数据被他人复制;另外一个特色就是传输速度比2.11版的MMC卡快。...在数据传输和物理规范上,SD卡(24mm*32mm*2.1mm,比MMC卡更厚一点),向前兼容了MMC卡.所有支持SD卡的设备也支持MMC卡。SD卡和2.11版的MMC卡完全兼容。...3.2.4.Class5 (擦除卡命令集): CMD32:设置擦除块的起始地址。 CMD33:设置擦除块的终止地址。 CMD38: 擦除所选择的块。...3.3.SD卡的工作流程 首先看下脱离操作系统如何在ARM处理器上实现SD卡的读写。过程可以分为3个大的步骤:初始化sd卡、写sd卡、读sd卡。...4.4.1.卡的检测中涉及到的函数 tcc_mmc_probe(host/tcc_sdhc.c) mmc_alloc_host(core/core.c) mmc_rescan(core/core.c
Raspberry Pi Imager 是为 microSD 卡安装操作系统的一种快速简便的方法,可以与您的 Raspberry Pi 一起使用。或者,从下面的操作系统中选择,可以手动下载和安装。...如何烧录树莓派 OS / 优麒麟(树莓派版)到您的 microSD 存储卡 去树莓派官网 下载 raspberry pi image 工具 选择镜像 选择 sd 卡 点击 write 与树莓派搭配使用的工具...: SDFormatter 介绍 https://www.sdcard.org/downloads/formatter/index.html SDFormatter 是一个简单和有用的 SD 卡修复工具也是内存卡修复工具...,专门设计为 TF 卡/手机 SD 卡/ SD 卡 / SDHC 卡 / SDXC 内存卡修复使用,此内存卡修复工具除了可以在 WIN 系统上运行,还支持苹果 MACOSX 系统上运行。...注意:本工具只能格式化修复你的内存卡,不能恢复你的内存卡数据,但可以让你的内存卡起死回生,所以你也可以先进行数据恢复再使用本工具修复!
注意,操作SD卡是采用的函数HAL_SD_XXXX,而操作eMMC是采用的函数HAL_MMC_XXXX,也就是说他们采用的函数前缀是不同的。 SD卡官网: www.sdcard.org 。...SDMMC_CKIN 来自SD/SDIO/MMC卡的外部驱动器的时钟反馈(用于SDR12,SDR25,SDR50和DDR50)。 SDMMC_CK SD/SDIO/MMC卡的时钟。...RelCardAdd 卡相对地址。 BlockNbr 整个卡的块数。 BlockSize 每个块的字节数。 LogBlockNbr 整个卡的逻辑块数。...= HAL_SD_STATE_READY; return HAL_OK; } else { return HAL_BUSY; } } 函数描述: 此函数主要用于SD卡擦除...第2个参数是擦除的起始扇区地址,地址单位是第几个扇区(512字节为一个扇区)。 第3个参数是擦除的结束扇区地址,地址单位是第几个扇区(512字节为一个扇区)。
根据SD卡的容量,可划分为SDSC(SD Standard Capacity)、SDHC(SD High Capacity)、SDXC(SD Extended Capacity)三种标准。...现今,市场的主流SD产品是SDHC和SDXC这两种较大容量的存储卡,而SDSC卡因容量过小,已逐渐被市场淘汰。...点击 DMA Settings 添加 SDIO 对应 DMA2 的通道4。DMA模式选择循环模式,方向选为内存到外设。...\r\n" ); } 4.7 擦除SD卡块数据 操作SD卡后最好先用函数HAL_SD_GetCardState()确定一下卡的状态再进行其他操作。...\r\n"); } 5.2 读取SD卡块数据 如果读写失败,可能SD通信速度太高,可将hsd.Init.ClockDiv值改大 操作SD卡后最好先用函数HAL_SD_GetCardState()确定一下卡的状态再进行其他操作
一、概念 1、mmc的概念 mmc有很多种意义,具体如下: mmc MultiMedia Card,多媒体存储卡, 但后续泛指一个接口协定(一种卡式),能符合这接口的内存器都可称作mmc储存体。...它在MMC的基础上发展而来,增加了两个主要特色:SD卡强调数据的安全安全,可以设定所储存的使用权限,防止数据被他人复制。兼容mmc接口规范。...sdio type card (1)sdio设备:SDIO是在SD标准上定义了一种外设接口,它和SD卡规范间的一个重要区别是增加了低速标准。在SDIO卡只需要SPI和1位SD传输模式。...mmc协议 类似i2c协议、spi协议,mmc总线上也有一套自己的通讯规范。通信规范后续在说明。 而上述mmc设备基于上mmc总线通讯规范上由自身硬件特性设置了自己的一套协议。...这里补充说明,sdhci并不是实际的host驱动,而是上述说明的sdhc标准的host的驱动部分。
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/debug-mpc5748g-devkit-sdhc-module/ 现象: 在测试工程中无法初始化SD卡,但是在示例工程中却可以...猜测 可能是引脚初始化的问题 解决方案 使用debug中的查看寄存器功能记录了两个工程中与SDHC相关的引脚的寄存器值,发现如下不同: 寄存器名称 | 该寄存器对应的引脚 | 正常工作的寄存器内容 |...rate control 随后,在测试工程中修改driver strength 和slew rate control后,SD卡初始化正常 后续工作: 曾经把示例工程中的Generated_Code搬移到测试工程中...driver strength 实际上是有很多并联的驱动模块,寄存器里选择哪种strength,就会有多少驱动模块加入到IO口中 slew rate control 暂时没有权威资料,但是这个与IO口信号的上升沿陡峭程度有关...一个对pad解释较为清楚的文档 其他 刚刚发现自己的markdown编辑器不能识别表格?有待以后解决 至于具体表格里面哪一栏是正常工作的记不清楚了,使用S32DS内置的样例工程测试下就好
SD卡 SD卡(Secure Digital Memory Card)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,...SD卡按容量分类,可以分为3类:SD卡、SDHC卡、SDXC卡 容量 命名...STM32的SDIO接口 简介:SDIO Secure Digital Input and Output,安全数字输入输出接口,在SD卡接口的基础上发展而来,兼容SD卡,并可以连接SDIO设备...从SD卡初始化流程可知,不管什么卡(这里我们将卡分为4类:SD2.0高容量卡(SDHC,最大32G),SD2.0标准容量卡(SDSC,最大2G),SD1.x卡和MMC卡),首先我们要执行的是卡上电(设置...SDIO_POWER[1:0]=11),上电后发送CMD0,对卡进行软复位,之后发送CMD8命令,用于区分SD卡2.0,只有2.0及以后的卡才支持CMD8命令,MMC卡和V1.x的卡,是不支持该命令的。
上篇文章(链接),小枣君给大家详细介绍了DRAM的沧桑往事。 DRAM属于易失性存储器,也就是大家常说的内存。...他发明了一种全新的、能够快速进行擦除操作的浮栅存储器,也就是——“simultaneously erasable(同步可擦除) EEPROM”。...这一年,西门子和闪迪合作,使用东芝的NAND Flash技术,开发了著名的MMC卡(Multi Media Memory,多媒体内存)。...后来,又有了MiniSD、MicroSD、MS Micro2和Micro SDHC等,相信70后和80后的小伙伴一定非常熟悉。...巨大的成本效应,开始将计算机推进闪存时代。 2007年,手机进入智能机时代,再次对闪存市场技术格局造成影响。 此前的功能机时代,手机对内存的要求不高。
从上到下分别是, 树莓派cm3+主板 tf内存卡 读卡器 3.5寸lcd显示屏 外壳 内存卡 这里注意以下内存卡的选用最好是class10.因为内存卡充当主机硬盘,因此内存卡的传输快慢决定着系统流畅性....(Class10(10MB/sec)是针对TF内存卡(SDHC)的传输规范) 读卡器 用于烧录系统进tf卡 可忽略配件 显示屏,外壳.显示屏其实是可以使用hdmi线连接显示器使用,外壳可无,但是为了主板安全起见最好购买...这里我的主板是3b+选择,这里推荐IDM多线程下载.不然速度很慢. ? 打开Win32DiskImager,镜像选择我们上面下好的系统,设备选择tf卡. ?...选择写入即可.写入速度取决于读卡器. retropie配置 写入完成后,我们将tf卡插到主板上,插上电源自动开机....手柄,蓝牙和wifi设置请参照这个视频,我也是. https://www.bilibili.com/video/BV1cW41117kj 电脑上通过访问地址 \\retropie访问树莓派(需配置连接好
它是在SD卡接口的基础上发展而来,它可以兼容之前的SD卡,并可以连接SDIO接口设备,比如:蓝牙、WIFI、照相机等。 ...SD卡 SD卡(Secure Digital MemoryCard)即:安全数码卡,它是在MMC的基础上发展而来,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用...不管什么卡(这里我们将卡分为 4 类:SD2.0 高容量卡(SDHC,最大32G),SD2.0 标准容量卡(SDSC,最大 2G),SD1.x 卡和 MMC 卡),首先我们要执行的是卡上电(需要设置 SDIO_POWER...[1:0]=11),上电后发送 CMD0,对卡进行软复位,之后发送 CMD8 命令,用于区分 SD 卡 2.0,只有 2.0 及以后的卡才支持 CMD8 命令,MMC 卡和 V1.x 的卡,是不支持该命令的...在发送 CMD8 后,发送 ACMD41(注意发送 ACMD41 之前要先发送 CMD55),来进一步确认卡的操作电压范围,并通过 HCS 位来告诉 SD 卡,主机是不是支持高容量卡(SDHC)。
然后我们回到某一个具体的 device 上(如 lpuart,usdhc)。...而各个 consumer,可以在自己的 dts node 中,直接引用 pinctrl driver 定义的 pin state,并在设备驱动的相应的位置,调用 pinctrl subsystem 提供的...要操作一个引脚,首先要 get 引脚,然后设置方向,读值、写值。 建议使用“devm_”版本的相关函数。...比如在 Linux 开发过程中,先申请了GPIO,再申请内存;如果内存申请失败,那么在返回之前就需要先释放GPIO资源。...如果使用devm的相关函数,在内存申请失败时可以直接返回:设备的销毁函数会自动地释放已经申请了的GPIO资源。
假如现在我要向磁盘中写入一张图片的数据,这个图片的数据大小刚好为一个 Page。最坏的情况就是,内存中恰好只有一个 Block 恰好有一个 Page 的无效数据可以擦除。...为了存下这张图片,于是主控就把这个 Block 的所有数据读至缓存,擦除Block上的内容,再向缓存中加上这个4KB 新数据后最后写回 Block 中。...我的天啊,其实想存储的就是1个 Page 的图片内容,但是实际上确造成了整个 Block 的内容都被重新写入,同时原本简单一步搞定的事情被还被分成了前后四步执行(闪存读取、缓存改、闪存擦除、闪存写入)造成延迟大大增加...,经反复擦写 SD 卡制造闲置数据块后,该效率降低至原始值的50%。...主动调用 TRIM 后,可以发现 SD 卡的 I/O 效率指标均恢复至接近原始值水平(但仍未完全达到初始状态的水平)。
从上到下分别是, 树莓派cm3+主板 tf内存卡 读卡器 3.5寸lcd显示屏(非必须) 为了后续安装可视化系统准备 外壳(非必须) 内存卡 这里注意以下内存卡的选用最好是class10.因为内存卡充当主机硬盘...,因此内存卡的传输快慢决定着系统流畅性....(Class10(10MB/sec)是针对TF内存卡(SDHC)的传输规范) 读卡器 用于烧录系统进tf卡 可忽略配件 显示屏,外壳.显示屏其实是可以使用hdmi线连接显示器使用,外壳可无,但是为了主板安全起见最好购买...RetroPie其实是一个开源的游戏模拟器,可以运行在树莓派(Raspberry Pi)上,使其成为一款游戏机,特别是复古游戏机,可玩性特别高。 简单来说,PS2以下平台包括主机和掌机全部兼容!...选择写入即可.写入速度取决于读卡器. retropie配置 写入完成后,我们将tf卡插到主板上,插上电源自动开机. 不想配置蓝牙手柄可以使用microusb线直连手柄即可.
领取专属 10元无门槛券
手把手带您无忧上云