Hi All, I am having a 512K SRAM which is used for storing some specific data. The OS runs on a 64MB flash and SRAM is external to this. The OS used is WinCE 4.2. I want to have some kind of filesysytem for SRAM for storing my data from application running over the OS. Is there any commerical File system available matching my requirememts?? I am ready to purchase it..Kinldy reply..
Starting from MS DOS 3.0, MS always used to have the driver ramdisk.sys (or ramdrv.sys) included into their operating systems. Look what is included in your WinCE package.
Ok, The data i need to store is GPS data. I have to collect the GPS data in every 5 seconds, write it into SRAM. Once in 10-15 minutes the entire data has to sent to a remote server. Also the server can also make request to get current location. The data needs to be time stamped. The server can request data at any time. Depending upon the availability it can send the response.The SRAM is 32K x 16 pages. It would be nice if i use a filesystem?? right !!
Do you need to retain the data even after it has been transmitted to the remote server ? If so, SRAM is not a good place to store it in case of a power failure. A flash memory would be a better place to store data for a longer period.
Save the last position in a separate memory location, so you can immediately retrieve it when the server requests it.
Since you only collect data every 5 s, 1 s time stamp resolution should be enough. The time stamp could be saved into a 32 bit integer for quite a few decades.
At what resolution do you want to save the location. Even when using some surveyor grade system with 1 mm accuracy in Z, Y and Z directions, 34 bits/axis would be required and combined with a 32 bit time stamp, the total amount of data would be 134 bits or 17 bytes/sample.
I assume it does not report anything if the receiver does not have a fix.
With max. 180 samples and 17 bytes each that would be 3 KiB.
For what ?
If you can discard the values after you have sent them to the server, a 256 location ring buffer would be enough. Just use a write pointer to write the received sample into the next location in the ring buffer (wrapping around at 256 samples). When it is time send data to the server, use a read pointer to read each successive sample (wrapping around 256), send it to the server, until the read pointer catches the write pointer.
The current GPS location can even be kept in a private memory location for easier access, in case the server requests the current position.
If you need to store a large number of samples in a small memory, pack the data to the exact number of bits required for each coordinate (and round the total sample to the next byte boundary) and when transmitting the samples to the server, unpack each sample into the format that the server expects. However, this might not be needed in your case, since you have so few samples to store.
This application seems simple enough to write the data straight to the SRAM. You may have to think more than when using a filesystem, but the simplicity of not using a filesystem will be rewarding.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.