SD 卡的内存和信号记录限制
SD 卡日志记录内存限制: SD 卡日志记录会为所有记录的信号分配静态内存。分配的内存取决于日志记录类型,例如 Save Format、Sample Time, Model stop time, Decimation 和 Limit data points to last。由于 C2000 处理器的 RAM 容量有限,启用 SD 卡日志记录时可能会出现内存分配失败的情况。请参阅MAT-file Logging on SD Card for Texas Instruments C2000 Processors。
启用 SD 卡日志记录时出现数据存储分配失败
如果数据内存分配失败,请尝试以下步骤:
选择较低的值来
Limit data points to last。较低的值会导致较小的静态内存分配。
将日志类型设置为
Array,而不是structure or structure with time。减少模型中可记录的信号数量。
可以通过使用速率
transition blocks或decimation参数来降低日志记录的采样率。
代码内存分配失败
当 SD 卡功能和算法共同生成的代码大于分配的代码内存时,代码内存分配就会失败。对于 RAM 内存较小的处理器,例如 F280x、F2803x、F2805x、F2833x 和 Concerto(35x 和 36x),可能会出现这种情况。
如果代码内存不足,请尝试以下步骤:
对目标设备使用
Boot From Flash选项。通过减少生成的代码来减小模型的大小。
SD Card Logging Connection Limitation:SD 卡日志记录使用 SPI(串行外设接口)在处理器和内存之间发送数据。数据记录将受到 SPI 连接和 SPI 参数设置的影响。极少有控制卡提供专用的 SD 卡日志记录插槽(如 F2837xD)来放置 SD 卡。您需要使用外部 SD 卡模块来记录其他控制卡的数据。
如果信号没有记录到 SD 卡上,请尝试以下步骤:
确保为 SD 卡日志记录选择正确的 SPI 模块。
如果您使用外部 SD 卡接口,请确保
SPIMO, SOMI, CLK和STE引脚的连接正确。确保外部 SD 卡接口的电源和接地连接正确。
确保配置参数中所选 SPI_x 模块的 GPIO 引脚配置正确。
SPI 协议的波特率可以先调低一些。将配置参数中的 SPI 波特率设置更改为
Inherit from SPI settings,并从较低的值开始,例如 1000000 Hz(SPI_x 模块中以比特/秒为单位的所需波特率)。请确保您没有将专用于 SD 卡的 GPIO 引脚和 SPI 模块用于其他外设。这将导致冲突,日志记录将会失败。
另请参阅
MAT-file Logging on SD Card for Texas Instruments C2000 Processors