Mercurial > ecos
changeset 2401:55aa7418e249
Add option to 'prime' UART Tx - on behalf of Alexander Aganichev
| author | gthomas |
|---|---|
| date | Fri, 22 Jun 2007 11:41:49 +0000 |
| parents | 6f68e28560d3 |
| children | 029928129a08 |
| files | packages/devs/serial/arm/lpc2xxx/current/ChangeLog packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl packages/devs/serial/generic/16x5x/current/ChangeLog packages/devs/serial/generic/16x5x/current/cdl/ser_generic_16x5x.cdl packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c |
| diffstat | 5 files changed, 29 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/packages/devs/serial/arm/lpc2xxx/current/ChangeLog +++ b/packages/devs/serial/arm/lpc2xxx/current/ChangeLog @@ -1,3 +1,9 @@ +2007-06-22 Alexander Aganichev <aaganichev@gmail.com> + + * cdl/ser_arm_lpc2xxx.cdl: + Added requirement of + CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME option. + 2004-11-15 Jani Monoses <jani@iv.ro> * include/arm_lpc2xxx_ser.inl:
--- a/packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl +++ b/packages/devs/serial/arm/lpc2xxx/current/cdl/ser_arm_lpc2xxx.cdl @@ -69,6 +69,7 @@ cdl_package CYGPKG_IO_SERIAL_ARM_LPC2XXX puts $::cdl_header "#define CYGPRI_IO_SERIAL_GENERIC_16X5X_STEP 4" } + requires { CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME == "1" } define_proc { puts $::cdl_system_header "/***** serial driver proc output start *****/"
--- a/packages/devs/serial/generic/16x5x/current/ChangeLog +++ b/packages/devs/serial/generic/16x5x/current/ChangeLog @@ -1,3 +1,13 @@ +2007-06-22 Alexander Aganichev <aaganichev@gmail.com> + + * cdl/ser_generic_16x5x.cdl + (CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME): New option. + + * src/ser_16x5x.c (pc_serial_start_xmit): Allow platform to define + CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME 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
--- a/packages/devs/serial/generic/16x5x/current/cdl/ser_generic_16x5x.cdl +++ b/packages/devs/serial/generic/16x5x/current/cdl/ser_generic_16x5x.cdl @@ -77,6 +77,15 @@ cdl_package CYGPKG_IO_SERIAL_GENERIC_16X puts $::cdl_header "#include CYGDAT_IO_SERIAL_GENERIC_16X5X_CFG"; } + cdl_option CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME { + display "Transmission require priming" + flavor bool + default_value 0 + description " + This option should be switched on when enabling THRE interrupt + does not generate interrupt unless bytes are posted to the FIFO." + } + cdl_component CYGPKG_IO_SERIAL_GENERIC_16X5X_FIFO { display "16x5x FIFO support" flavor bool
--- a/packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c +++ b/packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c @@ -516,6 +516,9 @@ pc_serial_start_xmit(serial_channel *cha 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_PRIME + (chan->callbacks->xmt_char)(chan); +#endif } // Disable the transmitter on the device
