Hi David,
But the most I'm seeing from the E2 is the occasional 00 byte. What my program is doing is sending 0x1B bytes at 9600 8N1, ten times a second, and echoing in hex anything that comes back. I run this and power cycle the E2. What I should be seeing, if I'm understanding how things work, is the E2 respond with 0B 0B 0B... and the boot process should halt.
That's basically right. It sends 15 ASCII ACKs, 0x06 not 0x0b, on spotting an ESC.
0338 eb001b44 bl rx_uart0_byte 033c e350001b cmp r0, #&1b 0340 1a000003 bne &0354 0344 e3a04000 mov r4, #0 # r4 = 0 0348 e28f0f38 adr r0, ascii_ack_char_x_15 # 0x430, * = 0x6060606 034c eb001b4b bl tx_uart0_string
I enclose the program, in case anyone can spot any stupid mistakes --- serial port programming in Linux is not my forte.
You could use tcgetattr(), followed by bit-twiddling, and then the tcsetattr() rather than pass lots of 0-bits in. Can't see anything other than that.
Attached is a small tar file, exp-1.tar.bz2, containing exp.c and various other gubbins. I've heard it has some effect with the E3 doing what you state above.
How long does it wait at boot time to be prodded?
Good question.
Cheers,
Ralph.