物联网下的RTOS开发(四)——数据存储

数据存储

在window或者linux下开发程序,程序员往往不会关心文件存储的介质。因为操作系统已经为我们封装好了操作硬件(磁盘)的可能会用的绝大部分接口。只要我们调用一下相关IO接口就能完成对磁盘的操作。而目前IOT设备资源很限,用于存储的可以是ram或者flash,ram的容量往往是几K字节到几百K字节,flash往往小于8M字节。这给我们带来没有很好地文件系统支持。磁盘的擦写均匀管理,掉电数据保存等问题,这些都会增加开发的复杂性,带来数据保存稳定性以及代码可移植性的问题。
接下去我会根据工作开发中遇到的经验提出几种现有的方案,以及推荐的做法。

一、存储介质

IOT系统下的存储介质可以简单分为ram和flash。我们知道ram掉电就会丢失,但是注意是掉电而不是重启。这样我们就有机会将重启原因,或者一些必须重启才能完成工作而又要保留flag的一些参数存储在这里。
Flash分为norflash 和 nandflash,IOT的设备这两种都会遇到,如果能上nandflash的系统主芯片能够提供的资源也会相对丰富,存储的接口一般会提供,这里我们主要讨论norflash。flash的特点是,只能将bit为1的地方写成0,这样写之前就要擦除操作。读取flash的速度是很快的,但是写很慢,擦除更慢。这里我用上海复旦微FM25Q16A型号为例,以下图片摘自其datasheet,可以看出擦除一个sector(4K)正常需要35ms的时间。对于MCU来说这个时间已经有点久了。如果程序设计不当,会影响其他任务的执行,甚至可能导致看门狗喂狗不及时而导致系统重启的情况。

在这里插入图片描述在这里插入图片描述

另外还有一种因为故事

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值