如果发生故障,记录物联网设备的内部工作是否错误?

时间:2018-01-04 14:58:48

标签: c logging iot rtos

我目前正在开展物联网项目,我想记录我的软件和硬件的执行情况。 我想记录它们然后将它们发送到某个DB,以防我需要远程查看我的设备。

wip IoT设备必须尽可能小,因此在闪存模块内经常写入的行为对我来说似乎很奇怪。 我知道它将在Cortex-M4上运行RTOS OS Nucleus,并通过SPI连接一些模块。

有更多专业知识的人可以启发我吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您必须估算需要进入日志的每小时/每日/任何数据量,并推断出产品的预期使用寿命。微控制器闪存通常不用于记录,因此它既没有耐久的闪存单元(一般10K-100K写周期,相比1M专用数据芯片或更多,在uC规格表中查找)也没有磨损均衡。磨损均衡是防止软件过于频繁地写入同一物理单元的任何方法(例如,这将是简单文件系统的目录)。 对于您的日志,您必须创建一个非常聪明或复杂的方法来规避任何闪存生命周期问题。 但问题并没有止在那里:通常,当写入“写入”时,MCU无法从闪存中读取数据。表示控制内部闪存状态机(编程电压,饱和时间等)的指令序列延迟(几微秒到几毫秒,具体取决于芯片),直到新值可靠地存储在存储器中。而且,也许你猜对了,"阅读"在此上下文中也意味着读取指令,即必须确保在Flash写入期间可能出现的任何代码和中断仅在RAM,高速缓存或其他存储器中执行代码而不在正常指令存储器中执行。它是可行的,但是你在HW层之上运行的SW系统越复杂,它就越不可靠地工作。