This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Why is PIO blocking UART?
- From: info at mikeycard dot org
- To: ecos-discuss at ecos dot sourceware dot org
- Date: Fri, 30 Apr 2010 13:58:21 +0200
- Subject: [ECOS] Why is PIO blocking UART?
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