This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Why is PIO blocking UART?


You can get rid of the debug output by changing CYGDBG_IO_INIT.

I don't think it is your fault, the default SPI driver IO setting is  
not correct as far as I can see. I am not familiar with the ARM HAL so  
I might be wrong.

Christophe

-----Original Message-----
From: info@mikeycard.org [mailto:info@mikeycard.org] 
Sent: 2. mai 2010 21:24
To: Christophe Coutand
Cc: ecos-discuss@ecos.sourceware.org
Subject: RE: [ECOS] Why is PIO blocking UART?

Hi Christophe,


Thanks!

After changing those two settings ser2 is working like a charm.
I now even see a lot of debug messages going by :-)

To be honest, I would never have found this myself. Was that my bad or  
is it just not so obvious to find?

Anyway, thank you for your help.


Cheers,
Tom

Quoting Christophe Coutand <ccoutand@stmi.com>:

> Hi Tom,
>
> I think the SPI driver might be a problem for you, the default ecos
> configuration for AT91SAM7S is not correct, try this:
>
> cdl_option CYGDAT_DEVS_SPI_ARM_AT91_BUS0_NPCS2 {
>     # Flavor: data
>     # No user value, uncomment the following line to provide one.
>     user_value NONE
>     # value_source default
>     # Default value: AT91_SPI_NPCS2
> };
>
> cdl_option CYGDAT_DEVS_SPI_ARM_AT91_BUS0_NPCS3 {
>     # Flavor: data
>     # No user value, uncomment the following line to provide one.
>     user_value NONE
>     # value_source default
>     # Default value: AT91_SPI_NPCS2
> };
>
> Christophe
>
> -----Original Message-----
> From: info@mikeycard.org [mailto:info@mikeycard.org]
> Sent: 2. mai 2010 13:26
> To: Christophe Coutand
> Cc: ecos-discuss@ecos.sourceware.org
> Subject: RE: [ECOS] Why is PIO blocking UART?
>
> Hi Christophe,
>
>
> Thanks for your questions.
>
> I had to solder on some headers to answer your first question, which
> immediately answers your third question, I guess. See the schematics
> of the board here:
>
http://www.mikeycard.org/images/phase1/pdf%20mikeycard%20phase%201%20spi
> n2%20axe.zip
>
> Sorry for not mentioning the desired baud rate. Indeed only ser0 needs
> to be 115200 and the others can be 38400.
>
> As for the result of the tests; with the buspirate I do see the first
> byte 0x55 of ser0 and then stuff happens to the buspirate's buffer,
> however that's probably the buspirate's fault and nothing with eCos.
> So ser0 does seem to be outputting without and weird poking in
> registers.
>
> However without the poke haldiag or ser2 do not output anything. How
> can that be?
>
>
> Cheers,
> Tom
>
>
> Christophe Coutand <ccoutand@stmi.com>:
>
>> Do you see the string being written on /dev/ser0 coming on your
>> terminal?
>>
>> Have you noticed the baud rate on serial0 is set to 115200 while it
is
>> 38400 for the other interface?
>>
>> cdl_option CYGNUM_IO_SERIAL_ARM_AT91_SERIAL0_BAUD {
>>     # Flavor: data
>>     user_value 115200
>>     # value_source user
>>     # Default value: 38400
>>     # Legal values:  50 75 110 "134_5" 150 200 300 600 1200 1800 2400
>> 3600
>>     #                           4800 7200 9600 14400 19200 38400
57600
>> 115200 230400
>>     #
>> };
>>
>> Are you using your own HW or is it an evaluation board?
>>
>> Christophe
>>
>>
>> -----Original Message-----
>> From: ecos-discuss-owner@ecos.sourceware.org
>> [mailto:ecos-discuss-owner@ecos.sourceware.org] On Behalf Of
>> info@mikeycard.org
>> Sent: 30. april 2010 13:58
>> To: ecos-discuss@ecos.sourceware.org
>> 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.ht
>> ml
>> 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
>>
>>
>
>
>



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]