Hardware
Platform
After a lot of research into various ARM chips (mostly Atmel's AT91), audio codecs and the various support I would have to design just to use them, I've ultimately decided that it will be far more cost effective for me to use a pre-made platform ...
Hardware
Platform
After a lot of research into various ARM chips (mostly Atmel's AT91), audio codecs and the various support I would have to design just to use them, I've ultimately decided that it will be far more cost effective for me to use a pre-made platform. As such, I've decided to purchase a
BeagleBoard ($149 USD). This will far exceed my needs for processing power (600MHz with DSP), but will be a compromise on audio quality: The power regulator chip from TI also embodies a 16-bit stereo codec connected to the primary I2S interface of the OMAP and itself outputs to a 1/8" TRS jack. Until now I have been looking exclusively at 24-bit codecs and of course was intending on using L/R RCA jacks which is what I will ultimately need in the car. In the documentation for the BeagleBoard however, it appears there is a second I2S interface which appears to be fully broken out on the expansion header. This would allow me to produce an upgrade expansion that provides full 24-bit 96khz (or perhaps even 192khz) high-quality audio output.
Display
For my first functional revision (implemented in car) I will almost certainly use a simple character display (Matrix Orbital?) as it is very, but thanks to the BeagleBoard's power and features (GPU acceleration?) I may eventually try to implement a slim video display for high-resolution fonts, animations, etc. Touch-screen is also a possibility, though if I get to that level, I will most likely switch from a custom display to double-DIN 7" DVI or S-VIDEO display. (Perhaps eventually I could also implement GPS?)
Software
Similar to the hardware, I'm fairly confident I could generate a reasonable single-thread firmware that could handle everything, and maybe even eventually build my own multi-threading library, I've come to realize that at minimum I would like to start with some embedded OS. Further, as I see myself ultimately trying to port code from
RockBox to my own OS, it has become clear that I really ought to just port RockBox itself to the BeagleBoard rather than trying to rig their code to a foreign "OS".
None of the currently supported RockBox targets employ an OMAP processor, but several do have ARMv7 cores. With any luck, the optimizations achieved on those platforms should translate fairly easily to the OMAP. Additionally, there is a high probability that I can figure out how to make use of the DSP core on the OMAP to allow for full floating-point-based decoding further freeing the main core to handle other tasks.