我目前正在做一个IoT项目,我想记录我的软件和硬件的执行情况。我想记录它们,然后将它们发送到某个数据库,以防我需要远程查看我的设备。
wip IoT设备必须尽可能小巧,所以经常在闪存模块中写入内容的行为对我来说似乎很奇怪。我知道它将在Cortex-M4上运行RTOS Nucleus,并通过SPI连接一些模块。
有更多专业知识的人能给我启迪吗?
谢谢。
发布于 2018-01-05 22:48:18
您必须估计每小时/每天/任何数据量,这些数据量需要记录到日志中并外推到产品的预期寿命。微控制器闪存通常不是用来记录日志的,因此它既没有耐用的闪存单元(一些10K-100K写入周期,通常与专用数据芯片的1M或更多相比-可以在uC规格表中查找),也没有损耗均衡。损耗平衡是防止软件过于频繁地写入同一物理单元(例如,简单文件系统的目录)的任何方法。对于您的日志,您必须创建一个相当聪明或复杂的方法来规避任何闪存生命周期问题。但问题还不止于此:通常,MCU在写入闪存时无法从闪存中读取数据,“写入”指的是控制内部Flash状态机(编程电压、饱和时间等)的长时间(几微秒到几毫秒,取决于芯片)的指令序列。直到新值在存储器中可靠地稳定下来。也许你已经猜到了,在这种情况下“读取”也意味着读取指令,也就是说,你必须确保在闪存写入过程中可能发生的任何代码和中断都只是在RAM、缓存或其他存储器中执行代码,而不是在正常的指令存储器中执行。这是可行的,但您在HW层之上运行的SW系统越复杂,它就越不可能可靠地工作。
https://stackoverflow.com/questions/48097921
复制相似问题