[ECOS] Why is PIO blocking UART?

info@mikeycard.org info@mikeycard.org
Fri Apr 30 11:58:00 GMT 2010


Hi,


I?m working on a board that?s very similar to the AT91SAM7SEK but with
the 512kb version of the chip, see mikeycard.org for more info.

My goal is to accomplish the following:
UART0           -> RAW in and output
                -> via DMA (PDC), not blocking no interrupt necessary
                -> dev/ser0
UART1           -> RAW in and output
                -> interrupt driven, may be slow
                -> dev/ser1
debug UART      -> TTY mode in and output
                -> printf & diag_printf
                -> dev/ser2

Results so far:
RedBoot runs.
Made a build environment and extended the serial.c example. See here:  
http://dl.dropbox.com/u/1002097/mikeycard.zip
After debugging gotten result by disabling the PIO (an ugly hack)  
HAL_WRITE_UINT32(0xfffff404, 0x600 );
Tried to make the config according to
http://www.mail-archive.com/ecos-discuss@ecos.sourceware.org/msg09664.html
printf ( CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE ) = "/dev/ttydiag"
diag_printf ( CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL ) = 2
CYGDAT_IO_SERIAL_TTY_CONSOLE = "/dev/ttydiag"
Devtab for ser0, ser1, ser2

Problem description:
- No output on haldiag or ser2 without the magic poke in the PIO  
Disable Register
- No input on haldiag or ser2 when JTAG (J-link) is attached (not like  
this with RedBoot)
- After printing ?Trying to read /dev/ser Cross fingers ?, the program  
waits for input on ser0 but never gets out of err = cyg_io_read(  
handle_ser, readbuffer, &len_ser );

Question:
What do I need to do / set to get working config?
I?m developing on Ubuntu with gcc, openocd and insight.

Any and all help appreciated.



Kind regards,
Tom

--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list