Air202F是上海合宙通信科技有限公司推出的64Mb Rom的GSM/GPRS 通信模块。与以往的Air202、Air800等模块相比,重要的区别是Flash空间由32Mb扩充到64Mb,软件上可以同时支持SSL、TTS、虚拟SIM卡、UI等所有功能。伴随着另一重大利好消息的发布(Air202F模块价格为含税19元),开发者们再也不用为了捉襟见肘的Flash空间而苦恼不已了!
Air202F模块对应的lod为Luat_VXXXX_8955F或者Luat_VXXXX_8955F_FLOAT,那么这8M字节的Flash是如何被划分的呢?先看下图
每个分区的大小和具体的lod相对应,以Luat_V0029_8955.lod为例,用记事本打开Luat_V0029_8955.lod,可以看到前十几行中有如下两行内容:
1. #$SPIFFS_FLASH_SIZE=0X0227000
2. #$SCRIPT_DATA_SIZE=0x00170000
#$SCRIPT_DATA_SIZE=0x00170000:表示脚本资源区的大小为:0x00170000字节=1.4375M字节
#$SPIFFS_FLASH_SIZE=0X0227000:表示文件系统区的大小为:0X0227000字节=2.15234375M字节
请记住:每种分区的大小并不是一成不变,是和具体的lod相对应,lod发生改变,分区的大小可能会发生改变
明白了每种分区的大小如何计算后,那么每种分区都用来存放什么内容呢?
l 通过LuaTools烧写的脚本文件(*.lua文件)
l 通过LuaTools烧写的图片、音频、证书等文件(*.png、*.mp3、*.crt等文件)
总之, 只要是LuaTools的“下载脚本”界面烧写进去的任何文件,都会被放在“脚本、资源区”,所以在这个界面烧写进去的这些文件总空间就不能超过“脚本、资源区”的大小
文件系统区存在一个利用率的问题,因为除了存储文件的具体内容,还要存储文件索引表等其他信息,文件数量越多,利用率越低,文件数量越少,利用率越高,利用率一般在85%以上。
l 远程升级包文件
l nvm模块产生的文件
l 程序运行过程中创建的任何文件,例如通过http下载的一幅图片、一首音乐等
总之,只要是程序运行过程中创建的任何文件,都会存在在“文件系统区”。可通过rtos.get_fs_free_size()实时输出文件系统的可用剩余空间(单位为字节)
1、Luatools会对原始的脚本和资源文件进行压缩,生成一个*.bin文件格式的升级包
2、设备通过网络下载这个*.bin文件到文件系统区中
3、重启设备,解压缩*.bin文件,把原始的脚本和资源文件全部解压缩到文件系统区中,所以要保证远程升级可以正常运行,文件系统至少剩余“*.bin文件大小+原始的脚本和资源文件大小”的空间
下图举例说明
原始脚本和资源文件共200KB,生成的升级包文件为100KB,则设备中剩余的的可用文件系统空间至少300KB(再考虑一下文件系统利用率的问题,假设85%的利用率,至少要剩余300*100/85=353KB)
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!