[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