Wednesday, April 16, 2008

Adventuring into embedded ARM

After trying for a while to install Linux on my old Palm Tungsten E and failing, because of hardware issues (perhaps explaining why I replaced it with an E2 way back, although my memory is dim on that), I bought an LN2410SBC from LittleChips.com.

Why? First, because ARM embedded development is probably more lucrative than 6502 development; it is perhaps a more interesting target for COMFY work. Second, it intrigues me as a platform for CADR emulation. Some key figures about the original CADR. (Note: later Lisp machines expanded on these limits.)

  • CADR was a 32-bit architecture, conveniently

  • 24-bit virtual addresses (could I expand this by giving up CDR coding?) mean a 16 MW = 64 MB world size

  • CADR used 22-bit physical addresses, accessing a somewhat less than 16 MB of RAM in the maximum configuration

  • Clock rate of the microcode was less than 5 MHz; probably reachable with a 200 MHz ARM if the microcode is compiled to ARM machine code instead of interpreted by usim.

All of this is pretty close to the resources on a typical ARM board. I chose the LN2410SBC because it provides a connection for an IDE hard-drive (with a programmable logic device for support?, although there seems to be scant documentation, and no connector is actually loaded on the board).  I felt that a hard drive would be essential for swap space; Flash could be used for Lisp world/microcode program storage, but not to support virtual memory. It also offers an interface to reasonably large LCD screen modules. If I'm too cheap to spring for the LCD panel, I anticipate using an X Window connection over Ethernet to provide graphical display. I'm undecided on the strategy for keyboard and mouse, although it offers USB. The ARM model has an MMU: Linux support probably will be important.

Some of the other boards I looked at were roughly similar in capability, and perhaps slightly cheaper, and even provided VGA outputs instead of simple LCD.

Probably the first step will be to get an ARM cross-compiler going on my iBook G4; compile usim, just for kicks to see how slow it is; and, to indulge some kernel-hacking urges, see if I can cook up a CHAOS network driver that utilizes the Ethernet interface.

No comments:

Post a Comment