Unless things have changed recently, the following should still be valid for
Windows Mobile/Windows CE devices: Usually these devices do not power off, but stay in a standby state where the memory is always powered. Check if that's the case with your system and move as much as possible into RAM or a RAM disk, if that feature is provided by the windows mobile kernel built for your device. If that's not possible, I'd suggest replacing CF cards with micro drives - these are regular hard drives in a CF card format. I'm not up to date on storage space, but should be sufficient for your needs. To test the cards I'd put them in a card reader format it and fill it completely up with zeros. When a flash card erases a byte, it sets all bits to ones and upon write clears those, which need to be zero. So to test all bits you really need to zero out the entire card. This will also give the controller in the card a chance to remap bad sectors with spares. Finally you determine the file size of the card, when you receive the first write error. This is (approximately) the number of bytes the card can store (at that point in time) and falling. It seems some cards even return "read errors", when they hit a defective sector upon read. Maybe the actual error code just gets lost/mangled on the way up and the actual error is just a simple read error ;) I've seen reports about this with some digital cameras, which would not even let people view the pictures taken a minute ago. Mike -----Ursprüngliche Nachricht----- Von: John Stanton [mailto:[EMAIL PROTECTED] Gesendet: Freitag, 13. April 2007 23:44 An: [EMAIL PROTECTED] Betreff: Re: [sqlite] Still getting "Insertion failed because database is full." errors You might find some joy in the baby disk drives such as installed in the original ipods. Can you substitute RAM with a battery backup if the memory card is always in the device? Joel Cochran wrote: > Thanks John and Dennis, > At least now I have something to look at. I will look into the CF > problem next. > > The database itself gets generated on a PC and then transferred to the > CF Card. During testing and development, this could have been 20-30 > times a day, constantly erasing and recreating the existing DB. We > have also sent large numbers of JPGs along with the database in the > past (there are none now, but have been before). So these cards have > been written over a lot, perhaps that is the problem. > > I think to test this, I will send the device back to the field with a > brand new card and see if the problem persists. If the user can go > several days of normal use without the problem, then I'll be convinced > that it is the card. Out of curiosity I just checked the CF cards > we've been using: on the development machine (which has NEVER shown > the error) I have a SanDisk CF Card. On the Testing machine that is > having the problem, there is a PNY Technologies CF Card. I wouldn't > be surprised if the SanDisk card isn't simply better than the PNY > card, so there is something else to consider. > > Once actual field use begins, the database will be replaced every week > or so, along with a fair number of images (like 100-300 a week). The > purpose of the application would have every record in the database > being updated and some new ones created. And it would be that way > week in and week out, essentially forever. We may eventually port it > over to very small Tablet PCs, but right now it is all Windows Mobile > 5. This is one of the reasons I went with SQLite, so that down the > road I wouldn;t have to reinvent the database piece of the software > for a different platform. > > Given all this, I will definitely look into the link Dennis sent. The > company is not going to be happy replacing CF cards all the time, so > if that can extend the wear then it will be welcome. > > Thanks a lot, > > Joel > > On 4/13/07, Dennis Cote <[EMAIL PROTECTED]> wrote: > >> >> Joel Cochran wrote: >> > >> > Or do you mean over the course of the lifetime of a CF card it can >> > only be used so much? That might apply to this scenario, these >> > cards have been written over continuously for the last 6 months. >> > >> Joel, >> >> Yes, that is exactly the problem. You should look at using a flash >> file system such as http://sourceware.org/jffs2/ that uses "wear leveling" >> algorithms to spread the writes over all the flash devices blocks if >> you are writing often. >> >> HTH >> Dennis Cote >> >> >> --------------------------------------------------------------------- >> -------- >> >> To unsubscribe, send email to [EMAIL PROTECTED] >> >> --------------------------------------------------------------------- >> -------- >> >> >> > > ---------------------------------------------------------------------------- - To unsubscribe, send email to [EMAIL PROTECTED] ---------------------------------------------------------------------------- - ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------