|
First, I am a newbie to XML, but I am very interested in binary aspects of XML because I wirte embedded firmware that needs to be very small.
I'm looking for expert help to point me in the right direction.
My problem:
Produce self-diagnostic test results that can be uploaded and stored during volume manufaturing. (Computer Hard Drives, 15M drives a quarter). Do it all on a 16 bit processor with limited code space remaining. Push it all to an Oracle DB to track process issues and verify design changes, through a USB 1 port.
Obviously, I need to save code space in the firmware. That means limiting the number of tags.
I also need to be able to transfer and store all this data in the factory. Smaller is better.
My proposed solution:
Build a self describing XML header and put a standard C, C++ structure between some data tags. See example:
<testResults>
<header>
<testName>BiasCal</testName>
<codeRev>3.18</codeRev>
<testTime>0x8EF1</testTime>
</header>
<testData length=0x3468 crc=0x9A5F>
binary data structure goes here
</testData>
</testResults>
This allows a generic structure describing what data it contains, if not describing the data itself. When I pull the data out of the database, I can use the correct data structure based on code revision and test name, set a pointer to the memory (No parsing needed).
Even though this data is kept internal to the company, I'm trying to be a good XML citizen so more tools can be built around this data. Please share your ideas.
-Ken
|