[ECOS] Re: Question to 16x5x driver users
Alexander Aganichev
aaganichev@gmail.com
Tue Jun 19 12:34:00 GMT 2007
Just browsed through the mailing list archive and found lots people
did the same on LPC2XXX. How about patching tree with something like
that?
Index: packages/devs/serial/arm/lpc2xxx/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/serial/arm/lpc2xxx/current/ChangeLog,v
retrieving revision 1.2
diff -u -r1.2 ChangeLog
--- packages/devs/serial/arm/lpc2xxx/current/ChangeLog 15 Nov 2004
09:20:25 -0000 1.2
+++ packages/devs/serial/arm/lpc2xxx/current/ChangeLog 19 Jun 2007
06:17:31 -0000
@@ -1,3 +1,8 @@
+2007-06-19 Alexander Aganichev <aaganichev@gmail.com>
+
+ * cdl/ser_arm_lpc2xxx.cdl:
+ Added CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH option.
+
2004-11-15 Jani Monoses <jani@iv.ro>
* include/arm_lpc2xxx_ser.inl:
Index: packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl,v
retrieving revision 1.1
diff -u -r1.1 ser_arm_lpc2xxx.cdl
--- packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl 14
Nov 2004 14:12:13 -0000 1.1
+++ packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl 19
Jun 2007 06:29:26 -0000
@@ -74,6 +74,7 @@
puts $::cdl_system_header "/***** serial driver proc output
start *****/"
puts $::cdl_system_header "#define
CYGDAT_IO_SERIAL_GENERIC_16X5X_INL <cyg/io/arm_lpc2xxx_ser.inl>"
puts $::cdl_system_header "#define
CYGDAT_IO_SERIAL_GENERIC_16X5X_CFG <pkgconf/io_serial_arm_lpc2xxx.h>"
+ puts $::cdl_system_header "#define
CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH"
puts $::cdl_system_header "/***** serial driver proc output
end *****/"
}
Index: packages/devs/serial/generic/16x5x/current/ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/serial/generic/16x5x/current/ChangeLog,v
retrieving revision 1.15
diff -u -r1.15 ChangeLog
--- packages/devs/serial/generic/16x5x/current/ChangeLog 27 Nov 2006
13:59:50 -0000 1.15
+++ packages/devs/serial/generic/16x5x/current/ChangeLog 19 Jun 2007
06:12:27 -0000
@@ -1,3 +1,10 @@
+2007-06-19 Alexander Aganichev <aaganichev@gmail.com>
+
+ * src/ser_16x5x.c (pc_serial_start_xmit): Allow platform to define
+ CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH if enabling THRE
+ interrupt does not generate interrupt unless bytes are posted to the
+ FIFO.
+
2006-11-27 Jonathan Larmour <jifl@eCosCentric.com>
* src/ser_16x5x.c (serial_config_port): Add
Index: packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c
===================================================================
RCS file: /cvs/ecos/ecos/packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c,v
retrieving revision 1.14
diff -u -r1.14 ser_16x5x.c
--- packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c 27 Nov
2006 13:59:50 -0000 1.14
+++ packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c 19 Jun
2007 06:05:47 -0000
@@ -516,6 +516,9 @@
HAL_READ_UINT8(base+REG_ier, _ier);
_ier |= IER_XMT; // Enable xmit interrupt
HAL_WRITE_UINT8(base+REG_ier, _ier);
+#ifdef CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH
+ (chan->callbacks->xmt_char)(chan);
+#endif
}
// Disable the transmitter on the device
On 6/19/07, Alexander Aganichev <aaganichev@gmail.com> wrote:
> Sorry, posted to the wrong list initially.
>
> ---------- Forwarded message ----------
> From: Alexander Aganichev <aaganichev@gmail.com>
> To: ecos-devel@ecos.sourceware.org
>
>
> I found that driver not transmit anything in interrupt driving mode
> unless I made the following patch:
>
> Index: packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c
> ===================================================================
> RCS file: /cvs/ecos/ecos/packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c,v
> retrieving revision 1.14
> diff -u -r1.14 ser_16x5x.c
> --- packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c 27 Nov
> 2006 13:59:50 -0000 1.14
> +++ packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c 18 Jun
> 2007 12:21:30 -0000
> @@ -516,6 +516,7 @@
> HAL_READ_UINT8(base+REG_ier, _ier);
> _ier |= IER_XMT; // Enable xmit interrupt
> HAL_WRITE_UINT8(base+REG_ier, _ier);
> + (chan->callbacks->xmt_char)(chan); // <<<<<<
> }
>
> // Disable the transmitter on the device
>
> Am I right to make this change or I just missed another process that
> should call xmt_char? I'm using LPC2294 based board and use this
> driver for the UART1.
>
> --
> WBR, Alexander
>
--
WBR, Alexander
--
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