No description
Find a file
Maksim Salau c2fd84fdd5 modbus: serial: Ignore received data when reception is disabled
A byte received when reception has been disabled
corrupts internal state of the server
(e.g. during transmission of a reply in server mode).
The reponse packet is corrupted and its transmission is aborted and the
data in the buffer is treated by the server as a new incoming packet.
Since the buffer is corrupted CRC doesn't match and the following log
message is printed:

  <wrn> modbus_serial: Calculated CRC does not match received CRC

This condition happens when uart_irq_rx_ready() returns true if there is
a new byte in the receive FIFO even with disabled RX interrupt.

The issue has been discovered on a nucleo_u083rc board with a RS485
transceiver with the RI signal floating (a pull-down gives more stable
reproduction). The pull-down ensures that RI is low during transmission
which is seen as byte 0 with a framing error by the receiver.
The byte is received by the MCU and corrupts the response.
Similar effect can be achieved by not disabling the receiver during
transmission (i.e. nRE is driven by the MCU and is fixed low).

The fix discards any data received when reception has been disabled.

Signed-off-by: Maksim Salau <msalau@iotecha.com>
2025-06-11 10:08:25 -07:00
.github ci: bsim tests: Trigger on any change on tests/bluetooth 2025-06-11 08:20:19 +02:00
arch arch/common: Mark interrupt tables const when !DYNAMIC_INTERRUPTS 2025-06-10 22:13:09 +02:00
boards boards: nxp: mcxn947: enable the default MCU-Boot swap mode 2025-06-11 08:17:33 +02:00
cmake linker: Place .tbss section in RAM, not FLASH 2025-06-10 22:13:09 +02:00
doc doc: build: signing: Correct typo – 'singing' to 'signing' 2025-06-11 08:28:30 +02:00
drivers drivers: adc: fix underflow in lmp90xxx_adc_start_read channel check 2025-06-11 09:55:42 +02:00
dts usb: device_next: allow to use label as interface string descriptor 2025-06-11 08:18:30 +02:00
include/zephyr shell: fix alignment issue 2025-06-11 08:56:04 -07:00
kernel kernel: Guard SYS_CLOCK_HW_CYCLES_PER_SEC to avoid spurious empty macro 2025-06-06 15:01:34 +01:00
lib lib: posix: dedicated symbol for POSIX system headers 2025-06-11 08:19:54 +02:00
misc license: Remove non-copyrightable license 2025-02-26 22:04:51 +00:00
modules modules: lvgl: Add lv_os_get_idle_percent to OSAL 2025-06-11 08:20:09 +02:00
samples samples: net: wifi: nxp: supplicant enterprise enabledment on IW610 2025-06-11 09:54:46 +02:00
scripts arch/common: Mark interrupt tables const when !DYNAMIC_INTERRUPTS 2025-06-10 22:13:09 +02:00
share sysbuild: Allow to use file suffix DTS overlays 2025-06-10 12:13:10 +02:00
snippets drivers: video: sw_generator: convert to use the devicetree 2025-06-02 05:48:21 +02:00
soc arch/common: Mark interrupt tables const when !DYNAMIC_INTERRUPTS 2025-06-10 22:13:09 +02:00
submanifests modules: optional: rust: Fixes for CI 2025-06-04 15:49:27 -04:00
subsys modbus: serial: Ignore received data when reception is disabled 2025-06-11 10:08:25 -07:00
tests kernel: fix timeout bugs 2025-06-11 09:56:13 +02:00
.checkpatch.conf checkpatch: Adapt the braces check to Zephyr 2024-12-30 21:46:47 +01:00
.clang-format clang-format: add new line at EOF. 2025-04-11 22:07:26 +02:00
.codechecker.yml tests: Add a CodeChecker config file 2024-09-12 10:04:05 +02:00
.codecov.yml
.editorconfig
.gitattributes
.gitignore scripts: ci: add vermin (min python version check) 2025-06-06 08:45:13 +02:00
.gitlint gitlint: Fix dependabot exception 2025-04-09 09:02:39 +02:00
.mailmap mailmap: remove duplicate emails and normalize mapping entries 2025-01-09 14:14:10 +01:00
.ruff-excludes.toml scripts: west: remove excludes for west_commands/spdx.py 2025-06-10 13:28:38 +02:00
.ruff.toml scripts: Update and lock ruff 2024-12-03 23:30:00 +00:00
.yamllint
CMakeLists.txt cmake: Fix compilation options for kobject_hash*.c 2025-05-31 07:02:36 -04:00
CODE_OF_CONDUCT.md coc: Update Code of Conduct to latest Contributor Covenant 2023-12-21 09:38:23 +00:00
CODEOWNERS ci: add empty CODEOWNERS file 2025-03-27 09:50:45 +01:00
CONTRIBUTING.rst
Kconfig
Kconfig.constants kconfig: Add variables for integer constants 2024-07-27 20:49:15 +03:00
Kconfig.zephyr tests/kernel: Disable -Werror when testing deprecated pipe APIs 2025-05-23 17:41:40 -04:00
LICENSE
MAINTAINERS.yml maintainers.yml: Update NXP Platform Wireless scope 2025-06-10 12:52:23 -04:00
README.rst doc: remove more occurances of Nios II 2025-05-15 20:01:05 -04:00
SDK_VERSION ci: use new docker image v0.28.0.20250523 2025-05-23 17:41:40 -04:00
VERSION VERSION: bump to 4.1.99 2025-03-07 17:36:15 +00:00
version.h.in version.h.in: fix cmake comment 2025-05-28 05:53:55 +02:00
west.yml manifest lvgl: Update to fork with hotfix for Zephyr 2025-06-11 11:06:41 +02:00
zephyr-env.cmd
zephyr-env.sh

.. raw:: html

   <a href="https://www.zephyrproject.org">
     <p align="center">
       <picture>
         <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg">
         <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg">
         <img src="doc/_static/images/logo-readme-light.svg">
       </picture>
     </p>
   </a>

   <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a>
   <a href="https://scorecard.dev/viewer/?uri=github.com/zephyrproject-rtos/zephyr"><img src="https://api.securityscorecards.dev/projects/github.com/zephyrproject-rtos/zephyr/badge"></a>
   <a href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain"><img src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></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-A,
Cortex-R, Cortex-M), Intel x86, ARC, Tensilica Xtensa, and RISC-V,
SPARC, MIPS, and a large number of `supported boards`_.

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


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.

.. start_include_here

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

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

.. _project-resources:

Resources
*********

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

Getting Started
---------------

  | 📖 `Zephyr Documentation`_
  | 🚀 `Getting Started Guide`_
  | 🙋🏽 `Tips when asking for help`_
  | 💻 `Code samples`_

Code and Development
--------------------

  | 🌐 `Source Code Repository`_
  | 📦 `Releases`_
  | 🤝 `Contribution Guide`_

Community and Support
---------------------

  | 💬 `Discord Server`_ for real-time community discussions
  | 📧 `User mailing list (users@lists.zephyrproject.org)`_
  | 📧 `Developer mailing list (devel@lists.zephyrproject.org)`_
  | 📬 `Other project mailing lists`_
  | 📚 `Project Wiki`_

Issue Tracking and Security
---------------------------

  | 🐛 `GitHub Issues`_
  | 🔒 `Security documentation`_
  | 🛡️ `Security Advisories Repository`_
  | ⚠️ Report security vulnerabilities at vulnerabilities@zephyrproject.org

Additional Resources
--------------------
  | 🌐 `Zephyr Project Website`_
  | 📺 `Zephyr Tech Talks`_

.. _Zephyr Project Website: https://www.zephyrproject.org
.. _Discord Server: https://chat.zephyrproject.org
.. _supported boards: https://docs.zephyrproject.org/latest/boards/index.html
.. _Zephyr Documentation: https://docs.zephyrproject.org
.. _Introduction to Zephyr: https://docs.zephyrproject.org/latest/introduction/index.html
.. _Getting Started Guide: https://docs.zephyrproject.org/latest/develop/getting_started/index.html
.. _Contribution Guide: https://docs.zephyrproject.org/latest/contribute/index.html
.. _Source Code Repository: https://github.com/zephyrproject-rtos/zephyr
.. _GitHub Issues: https://github.com/zephyrproject-rtos/zephyr/issues
.. _Releases: https://github.com/zephyrproject-rtos/zephyr/releases
.. _Project Wiki: https://github.com/zephyrproject-rtos/zephyr/wiki
.. _User mailing list (users@lists.zephyrproject.org): https://lists.zephyrproject.org/g/users
.. _Developer mailing list (devel@lists.zephyrproject.org): https://lists.zephyrproject.org/g/devel
.. _Other project mailing lists: https://lists.zephyrproject.org/g/main/subgroups
.. _Code samples: https://docs.zephyrproject.org/latest/samples/index.html
.. _Security documentation: https://docs.zephyrproject.org/latest/security/index.html
.. _Security Advisories Repository: https://github.com/zephyrproject-rtos/zephyr/security
.. _Tips when asking for help: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help
.. _Zephyr Tech Talks: https://www.zephyrproject.org/tech-talks