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 卡类型

  1. 按尺寸分类

    • 标准 SD 卡(Standard SD):32 × 24 mm

    • Mini SD:21.5 × 20 mm

    • Micro SD(TF 卡):15 × 11 mm,最常用

  2. 按容量分类

    类型

    容量范围

    SDSC

    1 MB ~ 2 GB

    SDHC

    4 GB ~ 32 GB

    SDXC

    32 GB ~ 2 TB

    SDUC

    2 TB ~ 128 TB

  3. 按速度等级

    • 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 卡接口

  1. SPI 模式

    • 使用 SPI 总线(MISO, MOSI, SCK, CS)

    • 简单易用,适合 MCU

    • 数据传输速率较低

  2. SD 模式(1-bit / 4-bit)

    • 使用专用 SD 总线

    • 支持 1-bit 或 4-bit 数据线

    • 速率高于 SPI 模式

  3. UHS 模式

    • 支持高速数据传输,常用于摄像机和高性能嵌入式应用

4. 工作原理

  1. 命令/数据传输

    • 主机通过 SD 卡协议发送命令(CMD)

    • 卡片返回响应(R1, R2 等)

    • 读写数据块(Block),每块通常为 512 Byte

  2. 控制器管理

    • 内部控制器负责 坏块管理、错误纠正(ECC)、逻辑到物理地址映射

    • 外部主机无需直接管理 NAND Flash 特性

  3. 数据存储

    • 数据存储在 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 卡应用场景

  1. 消费电子

    • 手机、平板、数码相机、摄像机存储

  2. 嵌入式系统

    • MCU/FPGA 数据存储

    • 日志记录、配置文件保存

  3. 工业应用

    • 工业控制器、数据采集系统

    • 高温环境工业级 SD 卡可使用

  4. 音视频应用

    • 高速视频录制(UHS/V Class)

  5. 汽车电子

    • 行车记录仪、导航系统数据存储

软件说明

  • 工程基于 Edgi-Talk 平台开发。

  • 示例功能包括:

    • SD 卡挂载与初始化

    • 使用 echo 命令写入文件

    • 使用 cat 命令读取文件内容

    • 串口打印操作结果

  • 工程结构清晰,便于理解 RT-Thread 文件系统与 SD 卡接口。

使用方法

编译与下载

  1. 打开工程并完成编译。

  2. 使用 板载下载器 (DAP) 将开发板的 USB 接口连接至 PC。

  3. 通过编程工具将生成的固件烧录至开发板。

  4. 插入 SD 卡至开发板对应接口。

运行效果

  • 烧录完成后,开发板上电即可运行示例工程。

  • 系统会自动挂载 SD 卡,并初始化文件系统。

  • 用户可在 串口终端 使用以下命令操作文件:

  1. 写入文件 test.txt

echo "Hello RT-Thread SDCARD!" ./test.txt
  1. 读取文件内容:

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