I've not done much programming for Embedded Systems before, and today I must create some scripts for something relatively small (<60MB RAM, the majority of that is already utilized by various other critical processes, the processor is less ~ 500MHz). I can not run something that's on constantly, so Firebird has gone out. I recommended sqllite, but people more acquainted with the woking platform have explained that even that's prone to consume an excessive amount of memory and processing energy.
I'll be programming the prototype in Perl, and can likely have to re-write the scripts I create in c for better performance afterwards in the future. Let me have the ability to reuse the information structures I create after i re-get it done afterwards. The majority of my experience so far has been around MySQL, so it is always good when the syntax was simliar to that particular. Any suggestions?
Sorry I can not become more descriptive concerning the platform I am focusing on.
like a suggestion, you might want to consider lua for scripting, its pretty fast, and may be used being produced systems and incredibly simple to bind to c.
do you want a relational database?
quite frequently on embedded systems you utilize an easy storage system, just like a file based system. generally the greater versatility you would like, the greater overhead you'll need.
- easiest, treat entire memory like a large consecutive file.
- a little more complicated, an allocation table to keep an eye on multiple files
and so forth...
Possibly a vital / value store would provide you with the best compromise for query and storage.
From that which you describe I'd take a look at Berkley DB or perhaps a similar key value store.
You may also serialize your computer data to C structures from Perl. The standard way additional is by using
pack, nevertheless its a discomfort for additional complex structures. I've discovered that Convert::Binary::C is ideal for dealing with data destined for C structures.
You are able to feed CBC a struct declaration and configure it to deal with your compiler's endianness, int size and so on. You may also provide code to complete when packing or unpacking something. For instance for those who have a typedef for any fixed point number, you are able to configure CBC to unpack it right into a float in Perl, after which convert to fixed point once the number comes complete.
I've had positive results by using this tool to utilize memory dumps and also to prepare images for deployment to embedded systems.