gpt4 book ai didi

嵌入式应用程序的 CSV 或二进制文件

转载 作者:行者123 更新时间:2023-12-04 23:19:27 24 4
gpt4 key购买 nike

我正在开发一个需要来自 PC 的一些数据的嵌入式硬件。我正在使用 FAT32 格式的 SD 卡来提供此信息。数据只是我导出为 CSV 的 excel 文件。我的问题是,我应该让 uC(AT Mega 128L)使用 char* strtok (char *s, const char *delim) 来处理这个问题吗?还是应该编写一个小实用程序来将此 CSV 文件转换为二进制格式?

性能,只要它相当快,就不是主要问题,文件大小也不是主要问题。最大的问题是 SRAM 的使用。

一条线的长度是最大的。最多 40 个字符。大约有7个字段,其中两个基本上是索引。 uC 应该通过查看这些索引并查看它是否匹配来检索它感兴趣的信息。例如,假设 uC 需要有关存储在索引 5 中的内容的信息。然后它需要到这里检索其他 5 个字段并将它们显示在屏幕上。 uC 需要对文件进行“随机”访问 - 即在某一时刻,它可能需要索引 7 中的某些内容,而另一时刻它可能需要索引 70 中的某些内容。

据我了解,如果这是一个具有严格定义格式的二进制文件会更好(即每个字段都是固定数量的字节)。优点是 uC 可以直接查找它感兴趣的字节。例如,假设每个“记录”占用 100 个字节(它会少很多,但仅作为示例)。 uC 知道第二个索引将从 100 开始(第一条记录为 0-99),第三个索引从 200 开始,以此类推。

所以如果它需要访问第 7 条记录,它只是寻找第 700 个字节并检索相关信息。二进制文件方法会比 CSV 更好吗?我主要关心的是 SRAM 的使用和合理的性能。

最佳答案

出于多种原因,二进制文件方法会更好。您没有提到的重要部分之一是您需要将字段中的字符串数据转换为数字数据(至少对于索引,如果不是对于其他数据),这在两个计算中往往都很昂贵时间和内存中。此外,strtok当然需要搜索字符串,如果您在查看之前不知道想要的 while 行,则需要大量搜索字符串并将它们转换为您阅读的每一行的整数。

关于嵌入式应用程序的 CSV 或二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9400655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com