Introduction
Background: I experienced some problems with my SD memory card in my HP IPAQ 1940. My GPS program had a lot of bugs I thought. Because it couldn't handle large maps. After some testing, I figured out that 64 MB was the magic limit. The tool I used to test was MD5 Hashing.
My simple method:
- Create a large file (100 MB) on the SD card.
- Calculate MD5 on the PC (SD card in card reader).
- Insert SD card into IPAQ.
- Calculate MD5 on the IPAQ.
- Check if same. If not decrease size by half, if the hash is the same increase the file by 50%.
This gave the result that it was something goofy around 64 MB files.
After that I checked the obvious (thanks Rob). If there are any updates on the HP website for my IPAQ. And there was. So if you are having any problems with large (>64 MB) files on your IPAQ 1940 (or other models), check for updates at the HP website. The update for 1940 can be downloaded here.
Anyway, problem found and solved. I thought you might find it useful to have a MD5 Hasher for Pocket PC, so here it is. Parts of the code is (c) RSA Data Security, Inc.
Code snippet:
MD5_CTX m_md5;
CString tempHash = "";
if (md5file(m_strFile.GetBuffer(MAX_PATH), 0, &m_md5))
{
for (int i = 0; i < 16; i++)
{
char tmp[3];
_itoa(m_md5.digest[i], tmp, 16);
if (strlen(tmp) == 1)
{
tmp[1] = tmp[0];
tmp[0] = '0';
tmp[2] = '\0';
}
tempHash += tmp;
}
}
The result is delivered in human readable format in tempHash
.
Drop me an e-mail with comments or questions. To see what I should do instead of debugging SD-cards, have a look at www.freefloat.com.