public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* RE: [ECOS] Serial port used by both RedBoot and a program
@ 2000-11-09 10:24 Fabrice Gautier
  2000-11-09 23:59 ` Jesper Skov
  0 siblings, 1 reply; 10+ messages in thread
From: Fabrice Gautier @ 2000-11-09 10:24 UTC (permalink / raw)
  To: 'Jesper Skov'; +Cc: Andrew Lunn, Ecos-List (E-mail)

> -----Original Message-----
> From: Jesper Skov [ mailto:jskov@redhat.com ]
> Subject: Re: [ECOS] Serial port used by both RedBoot and a program
> 
> 
> >>>>> "Fabrice" == Fabrice Gautier 
> <Fabrice_Gautier@sdesigns.com> writes:
> 
> Fabrice> How does that works exactly ? The corresponding entries in
> Fabrice> the vector table are disabled or something like that ?
> 
> No. What happens is that the stubs enable serial receive interrupts,
> but do not change the vector. When a serial interrupt happens, it
> causes the cyg_hal_default_isr of the application to be run. This
> calls into the stub (via the virtual vectors) which determines if the
> received character was a 0x03. If so, a breakpoint is put at the PC
> where the interrupt happened.


Ok for the isr and the ctrl-C stuff, but what happens about diagnostic
output that are sent throught the vector table to the serial port ?

Thanks

-- 
Fabrice Gautier
fabrice_gautier@sdesigns.com 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [ECOS] Serial port used by both RedBoot and a program
  2000-11-09 10:24 [ECOS] Serial port used by both RedBoot and a program Fabrice Gautier
@ 2000-11-09 23:59 ` Jesper Skov
  0 siblings, 0 replies; 10+ messages in thread
From: Jesper Skov @ 2000-11-09 23:59 UTC (permalink / raw)
  To: Fabrice Gautier; +Cc: 'Jesper Skov', Andrew Lunn, Ecos-List (E-mail)

>>>>> "Fabrice" == Fabrice Gautier <Fabrice_Gautier@sdesigns.com> writes:

Fabrice> Ok for the isr and the ctrl-C stuff, but what happens about
Fabrice> diagnostic output that are sent throught the vector table to
Fabrice> the serial port ?

Diagnostic output is using polled IO. The virtual vectors are not
changed when the serial driver proper is initialized, only the
interrupt vectors. So the application can still use the virtual
vectors for diag output. Of course, if you have enabled the serial
driver, there's probably trouble ahead if you try to use the same
serial line for diag output.

Jesper


^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [ECOS] Serial port used by both RedBoot and a program
@ 2000-11-21 12:43 Fabrice Gautier
  0 siblings, 0 replies; 10+ messages in thread
From: Fabrice Gautier @ 2000-11-21 12:43 UTC (permalink / raw)
  To: 'Jesper Skov'; +Cc: Ecos-List (E-mail)

> -----Original Message-----
> From: Jesper Skov [ mailto:jskov@redhat.com ]
> Subject: RE: [ECOS] Serial port used by both RedBoot and a program
> 
> 
> Fabrice> How can i deactivate a channel ?
> 
> By not using it. Or if that's not an option, you could register a
> dummy channel and switch to that after application startup. There's no
> such channel in the current code, but it may be worth adding it in the
> generic code.

I think what i really want is that RedBoot use the same diag channel than
the app, that is to gdb. But now RedBoot is configured to send his output on
all available channels.
It seems that the variable console_selected could be of some interet in this
matter (when it s not null, it doesn't send the output on all channels) but
i'm not sure how.
net_io_assume_console looks interresting too. 

Would that be possible that, when gdb connects then RedBoot uses only the
gdb channel to send its output ?

Thanks

-- 
Fabrice Gautier
fabrice_gautier@sdesigns.com 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [ECOS] Serial port used by both RedBoot and a program
  2000-11-20 19:48 Fabrice Gautier
@ 2000-11-20 23:22 ` Jesper Skov
  0 siblings, 0 replies; 10+ messages in thread
From: Jesper Skov @ 2000-11-20 23:22 UTC (permalink / raw)
  To: Fabrice Gautier; +Cc: 'Jesper Skov', Ecos-List (E-mail)

>>>>> "Fabrice" == Fabrice Gautier <Fabrice_Gautier@sdesigns.com> writes:

Fabrice> Ok for the isr and the ctrl-C stuff, but what happens about
Fabrice> diagnostic output that are sent throught the vector table to
Fabrice> the serial port ?
>>  Diagnostic output is using polled IO. The virtual vectors are not
>> changed when the serial driver proper is initialized, only the
>> interrupt vectors. So the application can still use the virtual
>> vectors for diag output. Of course, if you have enabled the serial
>> driver, there's probably trouble ahead if you try to use the same
>> serial line for diag output.

Fabrice> Yes it seems I am....

Fabrice> I can get any interrupt from the serial port, and RedBoot
Fabrice> (not the program) is still sending some diag output to
Fabrice> it. May that be related?

Fabrice> How can i deactivate a channel ?

By not using it. Or if that's not an option, you could register a
dummy channel and switch to that after application startup. There's no
such channel in the current code, but it may be worth adding it in the
generic code.

Jesper


^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [ECOS] Serial port used by both RedBoot and a program
@ 2000-11-20 19:48 Fabrice Gautier
  2000-11-20 23:22 ` Jesper Skov
  0 siblings, 1 reply; 10+ messages in thread
From: Fabrice Gautier @ 2000-11-20 19:48 UTC (permalink / raw)
  To: 'Jesper Skov'; +Cc: Ecos-List (E-mail)

> -----Original Message-----
> From: Jesper Skov [ mailto:jskov@redhat.com ]
> Subject: RE: [ECOS] Serial port used by both RedBoot and a program
> 
> 
> >>>>> "Fabrice" == Fabrice Gautier 
> <Fabrice_Gautier@sdesigns.com> writes:
> 
> Fabrice> Ok for the isr and the ctrl-C stuff, but what happens about
> Fabrice> diagnostic output that are sent throught the vector table to
> Fabrice> the serial port ?
> 
> Diagnostic output is using polled IO. The virtual vectors are not
> changed when the serial driver proper is initialized, only the
> interrupt vectors. So the application can still use the virtual
> vectors for diag output. Of course, if you have enabled the serial
> driver, there's probably trouble ahead if you try to use the same
> serial line for diag output.

Yes it seems I am....

I can get any interrupt from the serial port, and RedBoot (not the program)
is still sending some diag output to it. May that be related?

How can i deactivate a channel ? 

Thanks.
-- 
Fabrice Gautier
fabrice_gautier@sdesigns.com 



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ECOS] Serial port used by both RedBoot and a program
  2000-11-08 10:54 Fabrice Gautier
@ 2000-11-08 23:47 ` Jesper Skov
  0 siblings, 0 replies; 10+ messages in thread
From: Jesper Skov @ 2000-11-08 23:47 UTC (permalink / raw)
  To: Fabrice Gautier; +Cc: Andrew Lunn, Ecos-List (E-mail)

>>>>> "Fabrice" == Fabrice Gautier <Fabrice_Gautier@sdesigns.com> writes:

Fabrice> How does that works exactly ? The corresponding entries in
Fabrice> the vector table are disabled or something like that ?

No. What happens is that the stubs enable serial receive interrupts,
but do not change the vector. When a serial interrupt happens, it
causes the cyg_hal_default_isr of the application to be run. This
calls into the stub (via the virtual vectors) which determines if the
received character was a 0x03. If so, a breakpoint is put at the PC
where the interrupt happened.

Also see
http://sources.redhat.com/ecos/docs-latest/porting/hal-stubs.html

Jesper

^ permalink raw reply	[flat|nested] 10+ messages in thread

* RE: [ECOS] Serial port used by both RedBoot and a program
@ 2000-11-08 10:54 Fabrice Gautier
  2000-11-08 23:47 ` Jesper Skov
  0 siblings, 1 reply; 10+ messages in thread
From: Fabrice Gautier @ 2000-11-08 10:54 UTC (permalink / raw)
  To: 'Jesper Skov', Andrew Lunn; +Cc: Fabrice Gautier, Ecos-List (E-mail)

> -----Original Message-----
> From: Jesper Skov [ mailto:jskov@redhat.com ]
> Subject: Re: [ECOS] Serial port used by both RedBoot and a program
> 
> 
> Andrew> I've done this on the EBSA. I just configure the application
> Andrew> with the serial driver and it works OK. I guess the
> Andrew> application serial driver stomps over redboots driver and all
> Andrew> is happy. This could be platform dependant though.
> 
> Correct. And it's like that for all targets.


How does that works exactly ? The corresponding entries in the vector table
are disabled or something like that ?

Thanks,

-- 
Fabrice Gautier
fabrice_gautier@sdesigns.com 
 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ECOS] Serial port used by both RedBoot and a program
  2000-11-08  1:35 ` Andrew Lunn
@ 2000-11-08  1:46   ` Jesper Skov
  0 siblings, 0 replies; 10+ messages in thread
From: Jesper Skov @ 2000-11-08  1:46 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: Fabrice Gautier, Ecos-List (E-mail)

>>>>> "Andrew" == Andrew Lunn <andrew.lunn@ascom.ch> writes:

>> I have a program that need to use a serial port. Debugging is done
>> via ethernet port but Redboot use the serial port to do some
>> output.
>> 
>> How does this is supposed to be handled? Do I have to use a redboot
>> which does not use the serial port at all? Or can i hope that a
>> program being configured to use a serial port coudl use it with no
>> problems ?

Andrew> I've done this on the EBSA. I just configure the application
Andrew> with the serial driver and it works OK. I guess the
Andrew> application serial driver stomps over redboots driver and all
Andrew> is happy. This could be platform dependant though.

Correct. And it's like that for all targets.

Jesper

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [ECOS] Serial port used by both RedBoot and a program
  2000-11-07 16:47 Fabrice Gautier
@ 2000-11-08  1:35 ` Andrew Lunn
  2000-11-08  1:46   ` Jesper Skov
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew Lunn @ 2000-11-08  1:35 UTC (permalink / raw)
  To: Fabrice Gautier; +Cc: Ecos-List (E-mail)

> I have a program that need to use a serial port. Debugging is done via
> ethernet port but Redboot use the serial port to do some output.
> 
> How does this is supposed to be handled? Do I have to use a redboot which
> does not use the serial port at all? Or can i hope that a program being
> configured to use a serial port coudl use it with no problems ?

I've done this on the EBSA. I just configure the application with the
serial driver and it works OK. I guess the application serial driver
stomps over redboots driver and all is happy. This could be platform
dependant though.

        Andrew

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [ECOS] Serial port used by both RedBoot and a program
@ 2000-11-07 16:47 Fabrice Gautier
  2000-11-08  1:35 ` Andrew Lunn
  0 siblings, 1 reply; 10+ messages in thread
From: Fabrice Gautier @ 2000-11-07 16:47 UTC (permalink / raw)
  To: Ecos-List (E-mail)

Hi,

I have a program that need to use a serial port. Debugging is done via
ethernet port but Redboot use the serial port to do some output.

How does this is supposed to be handled? Do I have to use a redboot which
does not use the serial port at all? Or can i hope that a program being
configured to use a serial port coudl use it with no problems ?

Thanks

-- 
Fabrice Gautier
fabrice_gautier@sdesigns.com 

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2000-11-21 12:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-11-09 10:24 [ECOS] Serial port used by both RedBoot and a program Fabrice Gautier
2000-11-09 23:59 ` Jesper Skov
  -- strict thread matches above, loose matches on Subject: below --
2000-11-21 12:43 Fabrice Gautier
2000-11-20 19:48 Fabrice Gautier
2000-11-20 23:22 ` Jesper Skov
2000-11-08 10:54 Fabrice Gautier
2000-11-08 23:47 ` Jesper Skov
2000-11-07 16:47 Fabrice Gautier
2000-11-08  1:35 ` Andrew Lunn
2000-11-08  1:46   ` Jesper Skov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).