Edgi-Talk_SDCARD 示例工程
中文 | English
简介
本示例工程基于 Edgi-Talk 平台,演示 SD 卡文件操作功能,运行在 RT-Thread 实时操作系统 (M33 核) 上。 通过本工程,用户可以快速体验 SD 卡的挂载、文件写入与读取功能,并通过 串口命令行 操作文件,为后续存储应用开发提供参考。
SD 卡简介
1. 概述
SD 卡(Secure Digital Card) 是一种小型、便携的非易失性存储设备,广泛用于 嵌入式系统、相机、手机、数据记录仪 等场景。
SD 卡由 控制器 + NAND Flash 存储芯片 组成,外部通过标准接口与主机通信。
主要特点:
小巧轻便,体积通常为 32 × 24 × 2.1 mm(标准卡)
采用 非易失性闪存(NAND Flash) 存储数据
支持热插拔和掉电保护
2. SD 卡类型
按尺寸分类
标准 SD 卡(Standard SD):32 × 24 mm
Mini SD:21.5 × 20 mm
Micro SD(TF 卡):15 × 11 mm,最常用
按容量分类
类型
容量范围
SDSC
1 MB ~ 2 GB
SDHC
4 GB ~ 32 GB
SDXC
32 GB ~ 2 TB
SDUC
2 TB ~ 128 TB
按速度等级
Class 2/4/6/10:最低写入速度分别为 2、4、6、10 MB/s
UHS(Ultra High Speed):UHS-I/UHS-II/UHS-III,速率可达 312 MB/s
Video Speed Class(V6/V10/V30/V60/V90):适用于高清视频录制
3. SD 卡接口
SPI 模式
使用 SPI 总线(MISO, MOSI, SCK, CS)
简单易用,适合 MCU
数据传输速率较低
SD 模式(1-bit / 4-bit)
使用专用 SD 总线
支持 1-bit 或 4-bit 数据线
速率高于 SPI 模式
UHS 模式
支持高速数据传输,常用于摄像机和高性能嵌入式应用
4. 工作原理
命令/数据传输
主机通过 SD 卡协议发送命令(CMD)
卡片返回响应(R1, R2 等)
读写数据块(Block),每块通常为 512 Byte
控制器管理
内部控制器负责 坏块管理、错误纠正(ECC)、逻辑到物理地址映射
外部主机无需直接管理 NAND Flash 特性
数据存储
数据存储在 NAND Flash 中
支持多次擦写和擦写寿命管理(典型寿命 10 万次擦写)
5. SD 卡性能指标
参数 |
描述 |
|---|---|
容量 |
1 GB ~ 128 TB |
数据块大小 |
512 Byte(标准) |
接口速率 |
SPI/SD 1-bit/4-bit/UHS |
最大传输速度 |
25 MB/s(标准),312 MB/s(UHS-III) |
工作电压 |
3.3 V(部分 Micro SD 支持 1.8 V) |
工作温度 |
-25 ℃ ~ 85 ℃(工业级) |
耐用性 |
擦写次数 10^4 ~ 10^5 |
6. SD 卡应用场景
消费电子
手机、平板、数码相机、摄像机存储
嵌入式系统
MCU/FPGA 数据存储
日志记录、配置文件保存
工业应用
工业控制器、数据采集系统
高温环境工业级 SD 卡可使用
音视频应用
高速视频录制(UHS/V Class)
汽车电子
行车记录仪、导航系统数据存储
软件说明
工程基于 Edgi-Talk 平台开发。
示例功能包括:
SD 卡挂载与初始化
使用
echo命令写入文件使用
cat命令读取文件内容串口打印操作结果
工程结构清晰,便于理解 RT-Thread 文件系统与 SD 卡接口。
使用方法
编译与下载
打开工程并完成编译。
使用 板载下载器 (DAP) 将开发板的 USB 接口连接至 PC。
通过编程工具将生成的固件烧录至开发板。
插入 SD 卡至开发板对应接口。
运行效果
烧录完成后,开发板上电即可运行示例工程。
系统会自动挂载 SD 卡,并初始化文件系统。
用户可在 串口终端 使用以下命令操作文件:
写入文件
test.txt:
echo "Hello RT-Thread SDCARD!" ./test.txt
读取文件内容:
cat ./test.txt
串口输出示例:
\ | /
- RT - Thread Operating System
/ | \ 5.0.2 build Sep 8 2025 11:02:30
2006 - 2022 Copyright by RT-Thread team
found part[0], begin: 1048576, size: 29.739GB
Hello RT-Thread
This core is cortex-m33
Mount SD card success!
> echo "Hello RT-Thread SDCARD!" ./test.txt
> cat ./test.txt
Hello RT-Thread SDCARD!
使用
echo命令可以写入任意字符串到 SD 卡文件中,cat命令可以读取并显示文件内容。
注意事项
请确保 SD 卡已正确插入且格式化为 FAT 文件系统(FAT16/FAT32)。
如需修改工程的 图形化配置,请使用以下工具打开配置文件:
tools/device-configurator/device-configurator.exe
libs/TARGET_APP_KIT_PSE84_EVAL_EPC2/config/design.modus
修改完成后保存配置,并重新生成代码。
如果 SD 卡无法挂载,请检查硬件接口和电源配置。
启动流程
系统启动顺序如下:
+------------------+
| Secure M33 |
| (安全内核启动) |
+------------------+
|
v
+------------------+
| M33 |
| (非安全核启动) |
+------------------+
|
v
+-------------------+
| M55 |
| (应用处理器启动) |
+-------------------+
⚠️ 请严格按照以上顺序烧写固件,否则系统可能无法正常运行。
若示例工程无法正常运行,建议先编译并烧录 Edgi_Talk_M33_Blink_LED 工程,确保初始化与核心启动流程正常,再运行本示例。
若要开启 M55,需要在 M33 工程 中打开配置:
RT-Thread Settings --> 硬件 --> select SOC Multi Core Mode --> Enable CM55 Core