This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Re: diag_printf via serial port
- From: Sergei Gavrikov <w3sg at SoftHome dot net>
- To: Alexey Shusharin <mrfinch at mail dot ru>
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Fri, 1 Jun 2007 18:59:48 +0300
- Subject: Re: [ECOS] Re: diag_printf via serial port
- References: <465EA85B.4020600@cetoni.de> <465EB804.9040200@mail.ru> <1180617817.12360.70.camel@sg-ubuntu> <4660108D.4050204@mail.ru>
On Fri, Jun 01, 2007 at 07:26:53PM +0700, Alexey Shusharin wrote:
> I found a bug in the variant layer of hal. It locates in
> cyg_hal_plf_serial_isr() (/hal/arm/lpc2xxx/var/current/src/hal_diag.c).
> This function handles UART interrupt but does't read UxIIR register in
> order to clear the interrupt flag. So, the cyg_hal_plf_serial_isr()
> calling never stops and prevents dsr and thread execution.
>
> The test began working properly then I has added a read operation of
> UxIIR. I will send a patch to ecos-patches mailing list in a short time.
Hello
It seems that you were right. I went to the NXP's documents page and did
choose to read that application notes AN10414/Rev.01 (the appnote is
dated 2006/01/04, the lpc2xxx variant HAL is elder :)
http://www.standardics.nxp.com/support/documents/microcontrollers/pdf/an10414.pdf
The NXP's uart_isr() prototype (from appnote) operates with the
CYGARC_HAL_LPC2XXX_REG_UxIIR, and cyg_hal_plf_serial_isr() don't. More
that, in the application note they talk that is important. I got the
spurrious iterrupt reports with my elder plf HAL for Olimex and I've
done some things in plf HAL. It's possible, that was UxIIR issue.
Well, eCos/LPC2XXX community is looking for your patch ;)
Best regards,
-- Sergei
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss