Air202F(64Mb ROM模块)Flash空间划分说明

                        <p class="MsoNormal" align="left" style="line-height: 14.4pt; background: rgb(243, 245, 249);"><span lang="EN-US" style="font-size:8.5pt;font-family:&quot;Helvetica&quot;,&quot;sans-serif&quot;;mso-fareast-font-family:

宋体;color:#333333;mso-font-kerning:0pt”>Air202F是上海合宙通信科技有限公司推出的64Mb RomGSM/GPRS 通信模块。与以往的Air202Air800等模块相比,重要的区别是Flash空间由32Mb扩充到64Mb,软件上可以同时支持SSLTTS、虚拟SIM卡、UI等所有功能。伴随着另一重大利好消息的发布(Air202F模块价格为含税19元),开发者们再也不用为了捉襟见肘的Flash空间而苦恼不已了!<o:p>

64Mb8M字节)是如何划分的?<o:p>

Air202F模块对应的lodLuat_VXXXX_8955F或者Luat_VXXXX_8955F_FLOAT,那么这8M字节的Flash是如何被划分的呢?先看下图

<o:p> 

<o:p> 

<o:p> 其中,在Luat开发模式下,跟用户二次开发密切相关的是“脚本、资源区”和“文件系统区”这两个分区,这两个分区在lod中已经配置好,用户无法改变,下文描述的分区二字,若无特殊说明,指的就是“脚本、资源区”和“文件系统区”

每个分区的大小和具体的lod相对应,以Luat_V0029_8955.lod为例,用记事本打开Luat_V0029_8955.lod,可以看到前十几行中有如下两行内容:<o:p>

1.   #$SPIFFS_FLASH_SIZE=0X0227000<o:p>

2.  #$SCRIPT_DATA_SIZE=0x00170000<o:p>

#$SCRIPT_DATA_SIZE=0x00170000:表示脚本资源区的大小为:0x00170000字节=1.4375M字节<o:p>

#$SPIFFS_FLASH_SIZE=0X0227000:表示文件系统区的大小为:0X0227000字节=2.15234375M字节<o:p>

请记住:每种分区的大小并不是一成不变,是和具体的lod相对应,lod发生改变,分区的大小可能会发生改变<o:p>

 明白了每种分区的大小如何计算后,那么每种分区都用来存放什么内容呢?<o:p>

1、脚本、资源区<o:p>

通过LuaTools烧写的脚本文件(.lua文件)<o:p>

通过LuaTools烧写的图片、音频、证书等文件(.png、.mp3.crt等文件)<o:p>

总之, 只要是LuaTools的“下载脚本”界面烧写进去的任何文件,都会被放在“脚本、资源区”,所以在这个界面烧写进去的这些文件总空间就不能超过“脚本、资源区”的大小<o:p>

2、文件系统区<o:p>

文件系统区存在一个利用率的问题,因为除了存储文件的具体内容,还要存储文件索引表等其他信息,文件数量越多,利用率越低,文件数量越少,利用率越高,利用率一般在85%以上。<o:p>

远程升级包文件<o:p>

nvm模块产生的文件<o:p>

程序运行过程中创建的任何文件,例如通过http下载的一幅图片、一首音乐等<o:p>

总之,只要是程序运行过程中创建的任何文件,都会存在在“文件系统区”。可通过rtos.get_fs_free_size()实时输出文件系统的可用剩余空间(单位为字节)<o:p>

谈一下远程升级功能对文件系统空间的使用<o:p>

1Luatools会对原始的脚本和资源文件进行压缩,生成一个.bin文件格式的升级包<o:p>

2、设备通过网络下载这个.bin文件到文件系统区中<o:p>

3、重启设备,解压缩.bin文件,把原始的脚本和资源文件全部解压缩到文件系统区中,所以要保证远程升级可以正常运行,文件系统至少剩余“.bin文件大小+原始的脚本和资源文件大小”的空间<o:p>

下图举例说明

<o:p>

<o:p>

<o:p>

原始脚本和资源文件共200KB,生成的升级包文件为100KB,则设备中剩余的的可用文件系统空间至少300KB(再考虑一下文件系统利用率的问题,假设85%的利用率,至少要剩余300*100/85=353KB

上次更新 2021-01-28