嵌入式硬件篇---OpenMV存储

发布于:2025-08-05 ⋅ 阅读:(16) ⋅ 点赞:(0)

OpenMV存储部分

OpenMV 开发板的存储部分可以简单理解为 “不同用途的存储器”,就像我们的电脑有硬盘(存文件)、内存(临时运行程序)一样,OpenMV 也有几个不同的存储区域,各自分工明确。下面用通俗易懂的方式介绍:

1. 内部闪存(Flash)—— 相当于 “系统盘”

  • 作用
    这是 OpenMV 自带的 “固定硬盘”,主要用来存程序和系统文件。
    你编写的 Python 代码(.py 文件)下载到 OpenMV 后,就存在这里;开发板的操作系统(固件)也存在这里。

  • 特点

    • 非易失性:断电后数据不会丢,下次上电还能直接运行里面的程序(所以脱机运行必须靠它)。
    • 容量不大:一般是 2MB 或 4MB(不同型号略有差异),够存中小型程序,但存大量图片、视频就不够了。
    • 不能随便改:擦写次数有限(虽然日常用基本够),而且每次修改程序都要 “重新下载”,就像给手机装新 app 一样。
  • 通俗比喻:类似手机里的 “系统存储”,装操作系统和常用 app,断电后内容不变。

2. 内存(RAM)—— 相当于 “工作台”

  • 作用
    程序运行时,临时数据都存在这里。比如摄像头实时采集的图像、代码里的变量、计算过程中的临时结果等,都在内存里快速处理。

  • 特点

    • 速度极快:比闪存快得多,适合临时存放正在处理的数据,保证程序流畅运行(比如实时识别物体时,图像数据必须快速读写)。
    • 易失性:断电就清空,所以不能用来长期存数据。
    • 容量小:通常是 128KB 或 256KB(不同型号不同),只能临时用,不能当 “仓库”。
  • 通俗比喻:类似我们办公的 “桌面”,临时放正在处理的文件,用完(断电)就清空,下次重新拿出来用。

3. SD 卡(外部存储)—— 相当于 “移动硬盘”

  • 作用
    这是可选的外部存储,需要自己插卡。主要用来存大量数据:比如拍摄的照片 / 视频、训练好的模型文件(如神经网络模型)、日志文件等。

  • 特点

    • 容量大:可以插 16GB、32GB 甚至更大的卡,适合存闪存装不下的东西。
    • 灵活插拔:存满了可以拔下来插电脑上读取,方便数据转移。
    • 非必需:OpenMV 没插 SD 卡也能运行程序,只有当程序里明确要 “存图片到 SD 卡”“读模型文件” 时,才必须插卡,否则会报错。
  • 通俗比喻:类似手机的 “内存卡”,扩展存储空间,存照片、视频这些占地方的东西,可随时取下。

总结:三者的关系

  • 程序 “住” 在内部闪存里,断电也不会丢,上电后自动跑到内存里运行。
  • 运行时产生的临时数据(如图像)在内存里快速处理。
  • 如果程序需要 “存档”(如拍照片),就把数据存到SD 卡里(如果插了的话)。

简单说:闪存是 “长期住宅”,内存是 “临时工作台”,SD 卡是 “额外仓库”。日常用 OpenMV 跑简单程序,有闪存和内存就够了;要存大量数据,才需要 SD 卡。

OpenMV脱机运行

OpenMV 并非必须插入 SD 卡才能脱机运行程序,其程序运行主要依赖内部的闪存(Flash),SD 卡更多是用于扩展存储功能,而非运行程序的必要条件。

具体说明:

  1. 程序存储与运行

    • OpenMV 开发板内部有自带的闪存(例如部分型号有 2MB 闪存),可以直接将程序(.py 文件)存储在内部闪存中。
    • 当开发板上电后,会自动从内部闪存加载并运行程序,实现脱机工作,无需依赖 SD 卡。
  2. SD 卡的作用

    • 扩展存储:用于保存拍摄的图片、视频,或存储较大的数据集(如训练好的模型文件)、日志文件等。
    • 临时调试:在开发阶段,可能通过 SD 卡读取程序进行快速测试,但这并非脱机运行的必需方式。
  3. 特殊情况

    • 若程序中明确包含读取 / 写入 SD 卡的操作(如 sensor.snapshot().save("/sd/img.jpg")),则脱机运行时必须插入 SD 卡,否则会因找不到存储路径而报错。
    • 对于需要处理大量数据(如超过内部闪存容量的模型)的程序,可能需要 SD 卡来存储额外资源,但这是程序设计的特殊需求,而非开发板本身的限制。

综上,仅运行基础程序时,OpenMV 无需 SD 卡即可脱机工作;但如果程序涉及 SD 卡操作或依赖外部存储资源,则必须插入 SD 卡。


网站公告

今日签到

点亮在社区的每一天
去签到