Hello,
I've uploaded the state-so-far of my monitor to:
http://www.axio.ms/projects/e2/e2-monitor-0.22.tgz
(the README from the tar is also at http://www.axio.ms/projects/e2/e2-monitor-0.22-README )
What it can do: o Provides basic monitor with commands such as peek/poke/go o XMODEM upload/download RAM over serial (though this is currently v.picky about terminal s/w used) o Read NAND flash to RAM o Write/erase NAND flash from RAM data o CRC32 chunks of memory o Initialise LCD a bit/provide simple string/hex printing to it o Boot from PBL
What it can't yet do: o Search the rest of NAND for executable client programs, and boot them o Access SMC cards (I have been unable to coax PBL into accessing them, but it looks like much of the support is there in PBL. (Not necessarily complete/functional of course))
It's pretty fast at downloading data and writing it to flash, or just executing code, so I find it's a better development environment than EXP'ing stuff down with pblq-alikes. I've usually started up the E2, interrupted the splash screen over JTAG and downloaded the ELF (over jtag); now that it boots from flash, it'll accept a new version of itself via XMODEM and run that happily. (Whew, my Windows box is now unnecessary!)
I don't know if anyone's interested in trying it out or using it; I'd be grateful for any comments, suggestions or code contributions! It's not really there yet - well, XMODEM works for me but probably won't for anyone else =] That's next on my list.
-Matt
ps: Here are the supported commands, from its help text: Help (commands are case-sensitive): h/? - This help dump <m|fd> <addr> <len> - Hexdump RAM or flash crc <addr> <len> - CRC32 memory get <addr> <len> - XMODEM download from RAM put <addr> - XMODEM upload to RAM flashwr <flash offset> <len> <ram address> - Write RAM data into flash device flashrd <flash offset> <len> <ram address> - Copy flash data into RAM listdevs - List flash devices go <addr> - Jump to address r{b|w} <addr> - Read byte/word w{b|w} <addr> <data> - Write byte/word fill <addr> <len> <byte> - Fill memory lcd <string> - Write string to LCD console [ fd above is a flash device ID, 0 = internal, 1 = external etc., as listed in listdevs ] [ All numbers/addresses/offsets are hexadecimal - zero padding is unnecessary ]
pps: Any better names..?