3

私はこれまで組み込みシステムのプログラミングをあまり行っていませんでしたが、今では比較的小さなスクリプトを作成する必要があります(<60MB RAM、ほとんどすべてが他のより重要なプロセスですでに使用されており、プロセッサは500MHz未満です)。いつもオンになっているものを実行できないので、Firebirdが出ています。私はsqlliteを提案しましたが、プラットフォームに精通している人々は、それでもメモリと処理能力を消費しすぎる可能性があると言っています。

私はPerlでプロトタイプをプログラミングし、後でパフォーマンスを向上させるためにcで作成したスクリプトを書き直す必要があるでしょう。後でやり直すときに、作成したデータ構造を再利用できるようにしたいと思います。これまでの私の経験のほとんどはMySQLでの経験なので、構文がそれに類似していれば素晴らしいと思います。助言がありますか?

申し訳ありませんが、私が取り組んでいるプラットフォームについてこれ以上説明することはできません。

4

3 に答える 3

2

BerkeleyDB

于 2010-07-05T22:54:09.697 に答える
0

提案として、スクリプト用のluaを検討することをお勧めします。これは非常に高速で、本番システムで使用でき、cにバインドするのが非常に簡単です。

リレーショナルデータベースが必要ですか?

組み込みシステムでは、ファイルベースのシステムなどの単純なストレージシステムを使用することがよくあります。一般に、必要な柔軟性が高いほど、より多くのオーバーヘッドが必要になります。

  • 最も単純なのは、メモリ全体を大きなシーケンシャルファイルとして扱うことです。
  • もう少し複雑な、複数のファイルを追跡するための割り当てテーブル

等々...

おそらく、キー/バリューストアは、クエリとストレージに最適な妥協点を提供します。

于 2010-07-05T22:59:19.407 に答える
0

あなたの説明から、私はBerkleyDBまたは同様のKeyValueストアを調べます。

PerlからC構造体にデータをシリアル化することもできます。これを処理する従来の方法はを使用することpackですが、より複雑な構造では苦痛です。Convert :: Binary :: Cは、C構造体宛てのデータを操作するのに最適であることがわかりました。

CBCに構造体宣言をフィードし、コンパイラのエンディアン、intサイズなどを処理するように構成できます。値をパックまたはアンパックするときに実行するコードを提供することもできます。たとえば、固定小数点数のtypedefがある場合、Perlでfloatに解凍し、数値がパックされたときに固定小数点に変換するようにCBCを構成できます。

このツールを使用してメモリダンプを操作し、組み込みシステムに展開するためのイメージを準備することに大きな成功を収めました。

于 2010-07-06T19:04:41.050 に答える