【问题标题】:What's the best way to organize data on my embedded system?在我的嵌入式系统上组织数据的最佳方式是什么?
【发布时间】:2010-07-05 22:50:43
【问题描述】:

我之前没有为嵌入式系统做过很多编程,现在我必须为相对较小的东西创建一些脚本(

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

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

【问题讨论】:

  • 咳嗽 这可不小!就嵌入式系统而言,这相当慷慨。
  • 您需要什么样的数据和多少数据?您将拥有什么样的数据访问模式?如果您需要对数据进行真正有趣的查询,那么也许像数据库之类的东西(已经提到过其他的)可能是合适的,但如果它是您以线性方式访问的东西(在运行之前加载所有设置),那么文本文件可能更合适。我认为有关问题域的更多信息可能是有序的。
  • Keith,这凸显了我对这个领域的无知;这意味着我更需要你的建议! ; - )。
  • 迈克尔,这是一个很好的观点。我可能不会做很多“有趣”的查询,但我还不相信我与数据的交互将是纯线性的。会有一些类似于用户帐户的东西需要配置和保存。这些帐户每个都有自己的配置。其他脚本(在有点实时的应用程序中)将需要读取这些配置并对其进行操作。
  • 小心“实时”一词。它具有系统的特定含义(尤其是在嵌入式世界中),在该系统中,给定事件(进程或中断)保证在特定时间段内得到处理。

标签: perl embedded database relational-database flat-file


【解决方案1】:

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      您需要关系数据库吗?

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

      • 最简单的,把整个内存当作一个大的顺序文件。
      • 稍微复杂一点,用于跟踪多个文件的分配表

      等等……

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多