3

我以前没有为嵌入式系统做过很多编程,现在我必须为相对较小的东西创建一些脚本(<60MB RAM,几乎所有这些都已被其他更关键的进程使用,处理器小于 ~ 500MHz)。我不能运行一直在运行的东西,所以 Firebird 出局了。我建议使用 sqllite,但更熟悉该平台的人告诉我,即使这样也可能会消耗过多的内存和处理能力。

我将在 Perl 中对原型进行编程,并且可能需要重新编写我在 c 中创建的脚本,以便以后获得更好的性能。我希望以后重做时能够重用我创建的数据结构。到目前为止,我的大部分经验都是在 MySQL 中进行的,所以如果语法与此类似,那就太好了。有什么建议么?

抱歉,我无法更详细地描述我正在开发的平台。

4

3 回答 3

2

伯克利数据库

于 2010-07-05T22:54:09.697 回答
0

根据您的描述,我会查看 Berkley DB 或类似的键值存储。

您还可以从 Perl 将数据序列化为 C 结构。处理这个问题的传统方法是使用pack,但对于更复杂的结构来说它很痛苦。我发现Convert::Binary::C非常适合处理用于 C 结构的数据。

您可以为 CBC 提供一个结构声明并将其配置为处理编译器的字节顺序、int 大小等。您还可以在打包或解包值时提供要执行的代码。例如,如果您有一个定点数的 typedef,您可以配置 CBC 以在 Perl 中将其解压缩为浮点数,然后在压缩数时转换回定点数。

我在使用此工具处理内存转储和准备部署到嵌入式系统的映像方面取得了巨大成功。

于 2010-07-06T19:04:41.050 回答
0

作为一个建议,您可能需要考虑使用 lua 编写脚本,它非常快,并且可以在生产系统中使用并且很容易绑定到 c。

你需要一个关系数据库吗?

在嵌入式系统上,您经常使用简单的存储系统,例如基于文件的系统。一般来说,您想要的灵活性越大,您需要的开销就越多。

  • 最简单的,将整个内存视为一个大的顺序文件。
  • 稍微复杂一些,用于跟踪多个文件的分配表

等等...

也许键/值存储可以为您提供查询和存储的最佳折衷方案。

于 2010-07-05T22:59:19.407 回答