通常,在运行RTOS的SBC中,将数据/事件日志写入外部介质(如SD卡)将是一项容易的任务。然而,在使用微控制器的嵌入式系统中,例如PIC微芯片,具有有限的数据/程序存储器。虽然一些芯片组支持外部媒体,但假设没有,那么如何登录MCU?
我能想到的唯一可行的方法就是把它写到MCU的EEPROM中,但是这可行吗?如果可以做到这一点,那么如何写和读呢?
发布于 2011-08-11 14:51:29
可以对任何存储设备执行日志记录,包括SD卡(假设相关硬件外设可用)。如果通过串行端口连接了外部设备,则可以向其写入数据。
通常,只有在异常情况下才会执行事件日志记录。写入EEPROM或闪存(对于较新的设备)相对较慢,会消耗功率,并且会耗尽有限的资源(空间和擦除周期)。
对于调试,通常使用串行端口(或Cortex-M3上的SWO端口)。
发布于 2011-08-11 19:44:12
您可以实现一个日志记录工具,它只需在每次您想要记录一个事件时将一个字节写入一个数组。然后可以检索日志列表并将其转换为人类可读的事件列表。这种方法的好处是对实时应用程序的侵入性较小。
我在一个应用程序中使用了这种方法,其中在1-2分钟的测试会话中生成了100-200个事件。然后通过串口下载该列表,并使用一个小Python脚本进行分析。
发布于 2011-08-11 20:03:08
根据您的数据需求,您可以选择SPI闪存或I²C EEPROM。
I2C EEPROMS在存储方面较小,但它的接口在大多数微控制器中都可用(如果没有,则在具有常规IO引脚的软件中相对容易做到这一点),而且它们的速度要慢得多(主要是因为I2C总线被限制在1 1Mhz)。它很容易在容量和8DIP封装find them up to 1mbit。
SPI闪存速度更快,密度更高,而且通常更便宜,所以如果你需要快速写入,老实说,更好的技术,你可以使用should go for them。
https://stackoverflow.com/questions/7021887
复制相似问题