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()函数的返回值,依次如下:
其中f_blocks*f_bsize就是“硬盘”大小,如示例代码中所示:f_bsize=4096=4k,f_blocks=512,总空间=4x512k=2048k=2M,可用空间=f_bfree*f_blocks=504x4k=2016k≈1.97M。
----*----*----*----*----*----*----*----*----*----*----*----
史久超
email:shijiuchao1983@163.com
tel:15999550975 微信同号
qq:157185173 经常不在线,尽量微信