Commit graph

61908 commits

Author SHA1 Message Date
hanzhijian
95b1f7dbf1 Documentation: document cle library.
Refs #11081

Signed-off-by: hanzj <hanzj@users.noreply.github.com>
Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-05-27 10:03:54 -03:00
hanzhijian
9fe1ce133f Documentation: document lm75 temperature command.
Fill the blank documentation page for the lm75 (LM75 Temperature)
system command. The command reads temperature data from an LM75
I2C sensor and supports sample count and unit configuration.

Refs #11081

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-05-27 10:03:04 -03:00
hanzhijian
2969c8807e arch/sim: Stop publishing stale X11 display during teardown.
sim_x11events() polls g_display from the idle loop while the
framebuffer teardown path closes the X connection.  Clear the global
Display handle before teardown so the event path stops using it, but
keep the saved local Display pointer for XShmDetach(), XUngrabButton(),
and XCloseDisplay().

This only changes the sim X11 framebuffer shutdown ordering and does
not change user-visible APIs or build configuration.

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-05-27 13:16:29 +02:00
hanzhijian
4f512de7cb Documentation: Document dd command.
Add documentation for the dd command, which copies data from
an input file or device to an output file or device.

Refs #11081

Signed-off-by: hanzj <your-email@example.com>
2026-05-27 12:48:02 +02:00
hanzhijian
ab77fb3467 Documentation: Document stackmonitor command.
Add documentation for the stackmonitor command, which starts a
background daemon to monitor stack usage for all tasks and threads.

Refs #11081

Signed-off-by: hanzj <your-email@example.com>
2026-05-27 12:29:35 +08:00
Tiago Medicci Serrano
fc5c01dc70 xtensa/esp32: Fix RWDT register offsets.
The RWDT register offsets were incorrectly set to ESP32-S3 values
instead of ESP32 values. This was introduced when the code was
refactored from using the local NuttX header hardware/esp32_rtccntl.h
(which had the correct offsets) to using the HAL library headers, and
the offsets were moved inline into esp32_wdt.c with wrong values.

Correct the offsets to match the actual ESP32 register layout from
soc/rtc_cntl_reg.h (RTC_CNTL_WDTCONFIG0_REG at 0x8c, INT_ENA at
0x3c, etc). Without this fix, all RWDT operations (enable, configure
timeout, enable interrupt, acknowledge interrupt, feed, write-protect)
were targeting wrong memory addresses, rendering the RWDT completely
non-functional.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-27 09:36:43 +08:00
Tiago Medicci Serrano
d2cbca2759 xtensa/esp32: Fix divide-by-zero in RTC WDT clock calibration.
Under the BOARD_LATE_INITIALIZE boot flow, rtc_clk_xtal_freq_get()
may return 0 (SOC_XTAL_FREQ_AUTO) because the XTAL frequency has
not yet been stored to the RTC register when the WDT driver is
initialized. This causes rtc_clk_cal() to divide by zero
internally (EXCCAUSE=0006) when computing the RTC slow clock
period.

Fix by explicitly calling rtc_clk_xtal_freq_update() with the
board's configured crystal frequency if rtc_clk_xtal_freq_get()
returns 0. Also add a guard in esp32_wdt_settimeout() to return
-EIO if ESP32_RWDT_CLK() still returns 0 cycles/ms, preventing
a subsequent divide-by-zero when computing the maximum timeout.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-27 09:36:43 +08:00
Tiago Medicci Serrano
8e51220447 xtensa/esp32: Re-apply WDT prescaler and timeout at start.
Same issue as ESP32-S3/S2: with BOARD_LATE_INITIALIZE, the
constructor function enable_timer_group0_for_calibration() resets
Timer Group 0 registers after board_late_initialize() has
configured the MWDT0 prescaler, causing the watchdog to fire at an
incorrect rate.

Re-apply the prescaler, timeout, and feed the WDT counter in
esp32_wdt_start() just before enabling the timer.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-27 09:36:43 +08:00
Tiago Medicci Serrano
239d108ed7 xtensa/esp32s2: Re-apply WDT prescaler and timeout at start.
Same issue as ESP32-S3: with BOARD_LATE_INITIALIZE, the constructor
function enable_timer_group0_for_calibration() resets Timer Group 0
registers after board_late_initialize() has configured the MWDT0
prescaler, causing the watchdog to fire at an incorrect rate.

Re-apply the prescaler, timeout, and feed the WDT counter in
wdt_lh_start() just before enabling the timer.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-27 09:36:43 +08:00
Tiago Medicci Serrano
96d71ea565 xtensa/esp32s3: Re-apply WDT prescaler and timeout at start.
With the BOARD_LATE_INITIALIZE flow, board_late_initialize() runs
on a kernel thread and sets the MWDT0 prescaler. However, after it
returns, the init task (NSH) is spawned and lib_cxx_initialize()
invokes constructor functions, including
enable_timer_group0_for_calibration() from esp-hal-3rdparty which
calls timg_ll_reset_register(0), resetting all Timer Group 0
registers (including the WDT prescaler) back to their defaults.

Re-apply the prescaler, timeout, and feed the WDT counter in
wdt_lh_start() just before enabling the timer. This ensures
correct WDT configuration regardless of any intermediate register
resets by external code.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-27 09:36:43 +08:00
Patrick José Pereira
d37309e8db cmake: nuttx_create_symlink: Remove warning for CMP0205
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2026-05-26 15:11:35 -03:00
yushuailong
9e58127339 arch/sim: Add MM_FILL_ALLOCATIONS support to sim customized heap.
When CONFIG_MM_UMM_CUSTOMIZE_MANAGER is enabled, the sim heap
bypasses mm_heap/tlsf entirely and calls host malloc/free directly,
so MM_FILL_ALLOCATIONS has no effect. Add fill pattern support
directly in sim_ummheap.c:
- malloc: fill user region with 0xaa
- free: fill user region with 0x55
- realloc: fill extended region with 0xaa

This helps detect uninitialized reads in sim environment,
which ASan does not support.

Signed-off-by: yushuailong <yyyusl@qq.com>
2026-05-27 01:40:18 +08:00
hanzhijian
3f4251e257 Documentation: Document taskset command.
Fill the taskset application reference page with source-backed usage,
configuration, forms, examples, and notes.  The documented command forms and
mask constraints come from apps/system/taskset/taskset.c and the enabling
configuration comes from apps/system/taskset/Kconfig.

Signed-off-by: hanzj <han.zhijiang@zte.com.cn>
2026-05-26 23:15:36 +08:00
hanzhijian
84f8156605 Documentation: document uniqueid command.
Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-05-26 09:05:19 -04:00
hanzhijian
cea3a33ae7 Documentation: Document tee command.
Add the missing application reference for the tee system command.  The
page now documents the command purpose, build configuration, usage,
options, arguments, examples, and error behavior using the implementation
in apps/system/tee as source evidence.

Signed-off-by: hanzhijian <hanzhijian@zepp.com>
2026-05-26 09:04:57 -04:00
Eren Terzioglu
1c382c1a39 Docs/platforms/esp32p4: Add LP Mailbox docs
Add LP Mailbox docs for esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-05-26 10:03:43 +08:00
Eren Terzioglu
16776059d2 boards/risc-v/esp32p4: Add LP Mailbox board support
Add LP Mailbox board support for esp32p4

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-05-26 10:03:43 +08:00
Eren Terzioglu
5a8678b591 arch/risc-v/espressif: Add LP Mailbox support for esp32p4
Add LP Mailbox support for esp32p4 to share data between HP and LP core

Signed-off-by: Eren Terzioglu <eren.terzioglu@espressif.com>
2026-05-26 10:03:43 +08:00
Matteo Golin
8a8a5af90d !boards/boardctl: Remove BOARDIOC_INIT
BREAKING CHANGE: Remove BOARDIOC_INIT macro now that the interface is
removed in favour of CONFIG_BOARD_LATE_INITIALIZE.

Quick fix: instead of calling BOARDIOC_INIT from your application,
instead enable late initialization to have it performed automatically
prior to application entry.

If you need custom initialization logic, use the board_final_initialize
function and `BOARDIOC_FINALINIT` command instead.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-26 09:57:29 +08:00
dependabot[bot]
684031aeab build(deps): bump docker/login-action from 4.0.0 to 4.2.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.0.0 to 4.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](b45d80f862...650006c6eb)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 15:56:41 -04:00
hanzhijian
0d792e6ffd Documentation: document setlogmask command 2026-05-25 10:30:16 -03:00
raiden00pl
a8f8979bfe boards/nucleo-c092rc: add pulse count example
add pulse count example for nucleo-c092rc

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
d54ed68aa0 boards/nucleo-f446re: add pulse count example
add pulse count example for nucleo-f446re

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
4f929d63f3 boards/nucleo-h743zi2: add pulse count example
add pulse count example for nucleo-h743zi2

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
207bddc40f arch: remove PULSECOUNT references from PWM drivers
remove PULSECOUNT references from PWM drivers that not implemet PWM feature.
PULSECOUNT for these architectures was not implemented, so we just remove all references to it.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
ab8262eb62 !arch/tivia: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
adf0a2fc25 !arch/tlsr82: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
b858b3746f !arch/stm32h7: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
224b710da7 !arch/stm32l4: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
fe4baaea86 !arch/stm32h5: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
ade7264b44 !arch/stm32f7: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
ae4f9f5b44 !arch/stm32f0l0g0: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
765ea96828 !arch/stm32: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
93602a3a72 !arch/at32: separate pulse count from PWM driver
BREAKING CHANGE: separate pulse count from PWM driver

Pulse count handling was removed from PWM driver and moved to a separate driver.
For details about this change, look at previous commit.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
raiden00pl
f1e7b143d9 !drivers: separate pulse count feature from PWM driver
BREAKING CHANGE: separate pulse count feature from PWM driver.

Coupling PWM driver with pulse count feature was bad decision from the beginning,
these are two different things:

- PWM is a modulation scheme: it continuously represents a value by varying duty
cycle, usually at a fixed frequency.
- Pulse train generation is a finite waveform transaction: generate N edges/pulses
with selected timing, then complete.

This change introduce a new pulse count driver with new API.
Now user can generate pulse train by providing:

- high pulse length in ns
- low pulse length in ns
- pulse count

All architectures supporting pulse count have been adapted in subsequent commits.
Users must migrate their code to use the new driver with new API.

Signed-off-by: raiden00pl <raiden00@railab.me>
2026-05-25 14:33:11 +02:00
Shoji Tokunaga
08a2de27cf cmake: Fix SIM_TOOLCHAIN using CMake on macOS.
Fix an issue where `SIM_TOOLCHAIN_GCC` was incorrectly set when
configuring `sim:nsh` using CMake on macOS.
Ensure that `nuttx_sethost()` is called before `nuttx_olddefconfig()`.

Signed-off-by: Shoji Tokunaga <toku@mac.com>
2026-05-25 14:32:48 +02:00
dependabot[bot]
cdd10a604b build(deps): bump docker/build-push-action from 7.0.0 to 7.2.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 7.0.0 to 7.2.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](d08e5c354a...f9f3042f7e)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 7.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 19:37:58 +08:00
dependabot[bot]
ab6dbdb616 build(deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](4d04d5d948...d7f5e7f509)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-25 19:37:32 +08:00
Lup Yuen Lee
c2de12153f Dockerfile & Docs: Change bitbucket.org/nuttx/tools to github.com
The repo bitbucket.org/nuttx/tools is no longer available. This PR changes it to to github.com/patacongo/tools, as explained in https://github.com/apache/nuttx/pull/18890. This PR updates the URL in Dockerfile and Docs.

Signed-off-by: Lup Yuen Lee <luppy@appkaki.com>
2026-05-25 08:34:45 -03:00
Brunocor26
53ef7c0635 arch/arm/rp23xx: Fix PWM frequency and duty cycle calculation.
Fixed three bugs in the RP23XX PWM driver:

* setup_period: The previous divisor calculation used integer arithmetic
  that caused overflow and loss of precision. The divider is now computed
  as a 16-bit fixed-point value (div16) using 64-bit arithmetic, and
  clamped to the valid hardware range (0x10 to 0xFFF).

* setup_pulse: The compare value was incorrectly scaled by TOP instead
  of 65535, producing wrong duty cycles. The formula is now corrected
  to ((duty * (top + 1)) / 65535) with an overflow guard.

* pwm_start: The driver was not updated as part of the breaking change
  introduced in commit 4df80e19 ("!drivers/pwm: remove PWM_MULTICHAN
  option"). Access to single channel API is now info->channels[0].duty
  instead of info[0].duty.

Signed-off-by: Brunocor26 <bruno.correia@ubi.pt>
2026-05-25 10:29:17 +08:00
Matteo Golin
94f3db6bff sim/keyboard: Translate X11 key codes to NuttX codec
The previous implementation just passed X11 key codes to the NuttX
keyboard driver, which only really worked correctly for the letter keys.
Now, special keys are translated into the NuttX codec (like Enter, arrow
keys, etc.) so that they can be used properly by NuttX applications
relying on keyboard input.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2026-05-24 16:01:31 -03:00
Michal Lenc
aca5b6533e documentation/pwm: update to reflect the latest API changes
Commit 4df80e19 removed CONFIG_PWM_MULTICHAN option and changed
the API. Update the documentation to reflect this change.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2026-05-24 15:02:09 +02:00
Arjav Patel
0eda74c478 doc/system: Add documentation for micro-ROS integration.
Add minimal documentation of micro-ROS integration to the system
applications category, covering the library skeleton structure and
Kconfig options. This document provides baseline context for the
foundational library layout in apps/system/microros/.
2026-05-24 09:10:01 +08:00
simbit18
45fbb41a05 ci/platforms/ubuntu.sh: Updated URL of kconfig-frontends src
- New Url https://github.com/patacongo/tools.git

   https://github.com/apache/nuttx/pull/18883#issuecomment-4467204640

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-05-24 07:17:16 +08:00
simbit18
81c48957ee ci/platforms/linux.sh: Updated URL of kconfig-frontends src
- New Url https://github.com/patacongo/tools.git

   https://github.com/apache/nuttx/pull/18883#issuecomment-4467204640

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-05-24 07:17:16 +08:00
simbit18
84949a2882 ci/platforms/darwin_arm64.sh: Updated URL of kconfig-frontends src
- New Url https://github.com/patacongo/tools.git

   https://github.com/apache/nuttx/pull/18883#issuecomment-4467204640

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-05-24 07:17:16 +08:00
simbit18
054fc2a1b5 ci/platforms/darwin.sh: Updated URL of kconfig-frontends src
- New Url https://github.com/patacongo/tools.git

   https://github.com/apache/nuttx/pull/18883#issuecomment-4467204640

Signed-off-by: simbit18 <simbit18@gmail.com>
2026-05-24 07:17:16 +08:00
Tiago Medicci Serrano
11cf7c13c0 tools/ci/testlist: Remove ESP32-P4 python defconfig from regular CI
Remove `esp32p4-function-ev-board:python` defconfig from being
built for the regular CI pipelines to avoid overloading it.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-23 09:35:16 -03:00
Tiago Medicci Serrano
144cfecc9a Documentation: Add entry for Python on ESP32-P4
Add entries related to the Python interpreter for ESP32-P4.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-23 09:35:16 -03:00
Tiago Medicci Serrano
0861662c5e boards/risc-v/esp32p4: Add defconfig for Python on ESP32-P4
Add a dedicated defconfig to run the Python interpreter on the
ESP32-P4-Function-EV-Board with ethernet support, pip and ctypes.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
2026-05-23 09:35:16 -03:00