Primary Git Repository for the Zephyr Project. Zephyr is a new generation, scalable, optimized, secure RTOS for multiple hardware architectures.
Go to file
Martin Åberg ec138d6256 drivers/apbuart: Fix interrupt-driven operation
This commit aligns the GRLIB APBUART driver with the Zephyr UART API
and fixes an issue where TX interrupt could previously be lost. It
was typically seen during interactive operation in the Zephyr shell.

There is an expectation in the Zephyr UART API that TX ready (i.e. TX
buffer space available) interrupt is a level interrupt, i.e. always
active while there's TX buffer space available. In particular, there's
an expectation that after uart_irq_tx_enable(), the TX interrupt will
immediately fire (assuming free TX buffer space is available).

The APBUART "Transmitter interrupt (CTRL_TI)" does not directly fulfill
this expectation because it is edge triggered and fires when the TX
holding register moves from being non-empty to empty. The solution
is to "bootstrap" interrupt processing by calling user-defined ISR
in irq_tx_enable().

This fix is similar to commit 49bb163756 ("drivers: serial:
uart_cmsdk_apb: Fix interrupt-driven operation").

Signed-off-by: Martin Åberg <martin.aberg@gaisler.com>
2021-01-21 15:53:03 -05:00
.buildkite ci: switch to 0.12.1 SDK 2021-01-20 16:45:31 -05:00
.github actions: run manifest workflow only on manifest changes 2021-01-19 11:50:39 -06:00
.known-issues doc: update known-issues for Sphinx==3.3.0 2020-11-03 15:27:37 +01:00
arch x86: enable soft float support for Zephyr SDK 2021-01-20 16:45:31 -05:00
boards boards: arm: nucleo_f303re 2021-01-21 14:29:40 -06:00
cmake x86: enable soft float support for Zephyr SDK 2021-01-20 16:45:31 -05:00
doc device: add post-process of elf file to manage device handles 2021-01-21 14:49:04 -06:00
drivers drivers/apbuart: Fix interrupt-driven operation 2021-01-21 15:53:03 -05:00
dts dts: bindings: test: complete bindings for gpio expander 2021-01-21 14:49:04 -06:00
include device: add post-process of elf file to manage device handles 2021-01-21 14:49:04 -06:00
kernel device: add post-process of elf file to manage device handles 2021-01-21 14:49:04 -06:00
lib libc: minimal: add INTn_C macros to stdint.h 2021-01-21 14:50:01 -05:00
misc
modules modules: mcux: add support for indicating the presence of PWT 2021-01-20 08:05:57 -06:00
samples edac: tests: Include sample.subsys.edac only for ehl_crb 2021-01-21 08:34:07 -05:00
scripts device: add post-process of elf file to manage device handles 2021-01-21 14:49:04 -06:00
share cmake: Zephyr CMake package clean-up and minor fix 2020-08-19 12:52:33 -04:00
soc soc: arm: nxp_imx: rt: mimxrt1024: add device support 2021-01-21 14:50:45 -05:00
subsys shell: device_service: add dependency information 2021-01-21 14:49:04 -06:00
tests tests: devicetree: add test for devicetree node data 2021-01-21 14:49:04 -06:00
.checkpatch.conf checkpatch: ignore TRAILING_SEMICOLON and COMPLEX_MACRO 2021-01-19 10:17:23 -05:00
.clang-format
.codecov.yml
.editorconfig
.gitattributes
.gitignore gitignore: add twister-out 2020-12-11 14:13:02 -05:00
.gitlint
.mailmap
.uncrustify.cfg
CMakeLists.txt device: add post-process of elf file to manage device handles 2021-01-21 14:49:04 -06:00
CODEOWNERS device: add post-process of elf file to manage device handles 2021-01-21 14:49:04 -06:00
CODE_OF_CONDUCT.md
CONTRIBUTING.rst
Kconfig
Kconfig.zephyr modules: introducing MODULE_EXT_ROOT to allow glue code in Zephyr repo 2021-01-18 18:02:46 +01:00
LICENSE
MAINTAINERS.yml MAINTAINERS: MAINTAINERS.yml updates 2021-01-20 12:21:42 -05:00
Makefile doc Makefile: convert to a real Makefile to get rid of duplication 2021-01-11 19:27:06 -05:00
README.rst doc: Replace shippable badge with buildkite badge 2020-07-14 07:21:44 -05:00
VERSION release: Update patch level to 99 after the 2.4.0 release 2020-09-27 15:15:49 -05:00
version.h.in
west.yml manifest: update hal_nxp to support the Pulse Width Timer 2021-01-20 08:05:57 -06:00
zephyr-env.cmd
zephyr-env.sh

README.rst

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <img src="doc/images/Zephyr-Project.png">
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img
   src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a href="https://buildkite.com/zephyr/zephyr">
   <img
   src="https://badge.buildkite.com/f5bd0dc88306cee17c9b38e78d11bb74a6291e3f40e7d13f31.svg?branch=master"></a>


The Zephyr Project is a scalable real-time operating system (RTOS) supporting
multiple hardware architectures, optimized for resource constrained devices,
and built with security in mind.

The Zephyr OS is based on a small-footprint kernel designed for use on
resource-constrained systems: from simple embedded environmental sensors and
LED wearables to sophisticated smart watches and IoT wireless gateways.

The Zephyr kernel supports multiple architectures, including ARM Cortex-M,
Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and a large number of
`supported boards`_.

.. below included in doc/introduction/introduction.rst

.. start_include_here

Getting Started
***************

Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview,
and the documentation's `Getting Started Guide`_ to start developing.

Community Support
*****************

Community support is provided via mailing lists and Slack; see the Resources
below for details.

.. _project-resources:

Resources
*********

Here's a quick summary of resources to help you find your way around:

* **Help**: `Asking for Help Tips`_
* **Documentation**: http://docs.zephyrproject.org (`Getting Started Guide`_)
* **Source Code**: https://github.com/zephyrproject-rtos/zephyr is the main
  repository; https://elixir.bootlin.com/zephyr/latest/source contains a
  searchable index
* **Releases**: https://github.com/zephyrproject-rtos/zephyr/releases
* **Samples and example code**: see `Sample and Demo Code Examples`_
* **Mailing Lists**: users@lists.zephyrproject.org and
  devel@lists.zephyrproject.org are the main user and developer mailing lists,
  respectively. You can join the developer's list and search its archives at
  `Zephyr Development mailing list`_. The other `Zephyr mailing list
  subgroups`_ have their own archives and sign-up pages.
* **Nightly CI Build Status**: https://lists.zephyrproject.org/g/builds
  The builds@lists.zephyrproject.org mailing list archives the CI
  (shippable) nightly build results.
* **Chat**: Zephyr's Slack workspace is https://zephyrproject.slack.com.  Use
  this `Slack Invite`_ to register.
* **Contributing**: see the `Contribution Guide`_
* **Wiki**: `Zephyr GitHub wiki`_
* **Issues**: https://github.com/zephyrproject-rtos/zephyr/issues
* **Security Issues**: Email vulnerabilities@zephyrproject.org to report
  security issues; also see our `Security`_ documentation. Security issues are
  tracked separately at https://zephyrprojectsec.atlassian.net.
* **Zephyr Project Website**: https://zephyrproject.org

.. _Slack Invite: https://tinyurl.com/y5glwylp
.. _supported boards: http://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: http://docs.zephyrproject.org
.. _Introduction to Zephyr: http://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: http://docs.zephyrproject.org/latest/getting_started/index.html
.. _Contribution Guide: http://docs.zephyrproject.org/latest/contribute/index.html
.. _Zephyr GitHub wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _Zephyr Development mailing list: https://lists.zephyrproject.org/g/devel
.. _Zephyr mailing list subgroups: https://lists.zephyrproject.org/g/main/subgroups
.. _Sample and Demo Code Examples: http://docs.zephyrproject.org/latest/samples/index.html
.. _Security: http://docs.zephyrproject.org/latest/security/index.html
.. _Asking for Help Tips: https://docs.zephyrproject.org/latest/guides/getting-help.html