May
2006, Issue 190
ARM-Based
Modern Answering Machine
Philips
ARM Design Contest 2005 First Prize
WEB
SERVER
The
uIP stack relies on a memory-based file system. Because
the TAM-TAM includes a flash memory file system, I had
to modify the web server to use the existing FAT system.
The process ended up being more involved than I had
initially anticipated.
The
way in which web browsers access a web page is interesting.
For example, when downloading a file, the web browser
attempts to download the beginning of the file by looking
for the Content-Length (size) header. It then aborts
the file download and restarts it immediately. Although
this process is easy to handle with a memory-based file
system, it has to be handled carefully with the FAT
system. The Content-Length header is added to the original
web server, and it requires the addition of a FAT function
to discover the size of a given file.
The
web page I ended up displaying was simple. It shows
a list of messages with the time, name, and phone number.
Such messages are automatically downloaded and played
when a user clicks on a hyperlink. This is one aspect
of the TAM-TAM project where some work would improve
the quality of the prototype.
The
file streaming process can be slower than real time,
and Windows doesn’t always cache enough data to take
this into account. The problem occurs because the queue
isn’t always full. An open file is read only when the
file system is starving for data.