1.18.1. 基础知识

Esp32-wroom模组默认内置4M flash,其中2M开放给非特权用户( unprivileged users),足以应付大多数嵌入式使用场景。

1.18.2. 程序设计

如上节所讲,ESP32-WROOM内置的4Mflash中2M用作“硬盘”,故不存在启用内置flash的说法。

查询flash的状态,可以通过os模块或uos模块进行(实际上都是uos,之所以设置个os模块是为了兼容python),示例代码如下:

>>> import os

>>> help(os)

object <module 'uos'> is of type module

  __name__ -- uos

  uname -- <function>

  urandom -- <function>

  dupterm -- <function>

  dupterm_notify -- <function>

  ilistdir -- <function>

  listdir -- <function>

  mkdir -- <function>

  rmdir -- <function>

  chdir -- <function>

  getcwd -- <function>

  remove -- <function>

  rename -- <function>

  stat -- <function>

  statvfs -- <function>

  mount -- <function>

  umount -- <function>

  VfsFat -- <class 'VfsFat'>

  VfsLfs2 -- <class 'VfsLfs2'>

>>> os.stat("/")

(16384, 0, 0, 0, 0, 0, 0, 0, 0, 0)

>>> os.statvfs("/")

(4096, 4096, 512, 508, 508, 0, 0, 0, 0, 255)

>>> import uos

>>> help(uos)

object <module 'uos'> is of type module

  __name__ -- uos

  uname -- <function>

  urandom -- <function>

  dupterm -- <function>

  dupterm_notify -- <function>

  ilistdir -- <function>

  listdir -- <function>

  mkdir -- <function>

  rmdir -- <function>

  chdir -- <function>

  getcwd -- <function>

  remove -- <function>

  rename -- <function>

  stat -- <function>

  statvfs -- <function>

  mount -- <function>

  umount -- <function>

  VfsFat -- <class 'VfsFat'>

  VfsLfs2 -- <class 'VfsLfs2'>

>>> uos.statvfs("/")

(4096, 4096, 512, 508, 508, 0, 0, 0, 0, 255)

下图是摘自micropython官网文档os模块/uos模块的说明,Statvfs()函数的返回值,依次如下:

wps73

其中f_blocks*f_bsize就是“硬盘”大小,如示例代码中所示:f_bsize=4096=4k,f_blocks=512,总空间=4x512k=2048k=2M,可用空间=f_bfree*f_blocks=504x4k=2016k≈1.97M。

posted on 2022-07-24 11:22  史久超  阅读(246)  评论(0编辑  收藏  举报
知识改变命运