Commit graph

58602 commits

Author SHA1 Message Date
raiden00pl
5437dabbff arch/stm32f0l0g0: remove references to CONFIG_STM32F0L0G0_FORCEPOWER
this is copy-paste from stm32, but CONFIG_STM32F0L0G0_FORCEPOWER
is not used in stm32f0l0g0

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-06-12 09:59:53 +08:00
Ville Juven
840ae60b60 nuttx/spinlock: Define empty macro for spin_unlock
So that the same code can be used with and without spinlocks.

Signed-off-by: Ville Juven <ville.juven@unikie.com>
Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-06-11 23:39:21 +08:00
Niccolò Maggioni
2d2defb8a0 docs: Fix pipenv lockfile for older Python versions
CI uses Python 3.8

Signed-off-by: Niccolò Maggioni <nicco.maggioni+nuttx@gmail.com>
2025-06-11 23:11:08 +08:00
Niccolò Maggioni
2399702a28 docs: Update the ELF guides
Rewrite parts of the two ELF guides to use scripts included in the
export archive and modernize some deprecated tools and Bash idioms.

Also add the new sphinx_collapse extension to the docs build config.

Signed-off-by: Niccolò Maggioni <nicco.maggioni+nuttx@gmail.com>
2025-06-11 23:11:08 +08:00
Niccolò Maggioni
d651726b57 docs: Add missing CFLAGS to the ELF guides
As reported in apache/nuttx-apps#1828

Signed-off-by: Niccolò Maggioni <nicco.maggioni+nuttx@gmail.com>
2025-06-11 23:11:08 +08:00
robert
be8471625f Add BLE config to esp32-sparrow 2025-06-11 15:48:25 +08:00
ouyangxiangzhen
19eac98526 sched: Add comments for wd_start_next and work_queue_next.
This commit added comments for newly added APIs wd_start_next and
work_queue_next.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-06-10 11:02:45 -03:00
ouyangxiangzhen
df183b6682 sched/wqueue: Remove the work_queue_period.
For simplicity, better performance and lower memory-overhead, this commit replaced the periodical workqueue APIs with the more expressive work_queue_next. The work_queue_next restarts work based on the last expiration time.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-06-10 11:02:45 -03:00
ouyangxiangzhen
efe2af643f sched/wdog: Replace periodcial timer with the wd_start_next.
This commit replaced periodical timer with the wd_start_next to improve the timing accuracy.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-06-10 11:02:45 -03:00
ouyangxiangzhen
9d1b958524 sched/wdog: Remove the wd_start_period.
For better simplicity, this commit replaced the periodical wdog APIs with the more expressive wd_start_next. The wd_start_next restarts watchdog timer based on the last expiration time.

Signed-off-by: ouyangxiangzhen <ouyangxiangzhen@xiaomi.com>
2025-06-10 11:02:45 -03:00
wangjianyu3
5e94d4482b fs/vfs: check buffer count and pointer for iovec
There are iovecs provided by user such as readv().

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-06-10 09:58:25 +08:00
wangjianyu3
89df084b0e fs/vfs: check if all iov_base are accessible
Check if all `iov_base` are inside accessible address space.

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2025-06-10 09:58:25 +08:00
raiden00pl
13fba11e9b boards/nucleo-c092rc: add FDCAN examples
add FDCAN examples for nucleo-c092rc based on
SocketCAN interface and CAN character driver interface.

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-06-09 15:26:12 -03:00
raiden00pl
ba00fa6478 arch/stm32c0: add FDCAN support
add FDCAN support for stm32c0 family.

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-06-09 15:26:12 -03:00
Kerogit
25876e327e arch/avr: fix atomic load functions from arch_atomic.c
For AVR, atomic functions generated by LOAD macro turn into load surrounded
by up_irq_save and up_irq_restore. The generated code was incorrect as can
be seen from disassembly of __atomic_load_4:

in   r18, 0x3f ; store interrupts enabled flag
cli            ; disable interrupts
out  0x3f, r18 ; restore the flag
movw r30, r24  ; copy parameter (address) to pointer register
ld   r22, Z    ; indirect load to return value registers
ldd  r23, Z+1
ldd  r24, Z+2
ldd  r25, Z+3
ret            ; return

The interrupts are disabled to be immediately re-enabled, the load only takes
place after that.

Both up_irq_save and up_irq_restore are defined in inline assembly. Other
architectures (x86/486, Risc-V) mark this assembly with clobbers: memory.
Doing the same thing for AVR alleviates the problem:

in      r18, 0x3f ; store interrupts enabled flag
cli               ; disable interrupts
movw    r30, r24  ; copy address
ld      r22, Z    ; load
ldd     r23, Z+1
ldd     r24, Z+2
ldd     r25, Z+3
out     0x3f, r18 ; restore interrupts enabled flag
ret               ; return

Besides compiling the code and checking the assembly, this was tested
with a custom stress application on AVR128DA28.

Assembly of up_irq_enable is marked in the same way with regards to clobbers.

This patch also removes two functions that are not called from anywhere
(up_irq_disabled, putsreg)

Signed-off-by: Kerogit <kr.git@kerogit.eu>
2025-06-09 21:42:21 +08:00
raiden00pl
13ac3d5e57 arch/arm/src/stm32f0l0g0: UID support for F0, L0 and C0
add UID support for F0, L0 and C0

Signed-off-by: raiden00pl <raiden00@railab.me>
2025-06-09 08:33:42 -03:00
dongjiuzhu1
a5485d6c53 net/utils: avoid unalign access g_tcp_connections_buffer
the address is 0x3c270203, cause unaligned access usage Fault
(gdb) p g_tcp_connections
$1 = {pool = 0x3c270203 <g_tcp_connections_buffer> <error: Cannot access memory at address 0x3c270203>,
prealloc = 8, dynalloc = 1, nodesize = -376, sem = {semcount = 32767, flags = 0 '\000',
waitlist = {head = 0x0, tail = 0x0}}, freebuffers = {head = 0x0, tail = 0x0}}

Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2025-06-09 08:04:21 -03:00
kywwilson11
60c9c66839 Added support obtaining the unique id for the stm32g0x1.
Changed copyright to apache copyright. Altered stm32_uid function to take uint32_t pointer instead of a twelve byte uint8_t array. Refined code in stm32_uid.c.

Fixed style and indentation.

Signed-off-by: kywwilson11 <kwilson@2g-eng.com>
2025-06-09 09:49:26 +02:00
Peter van der Perk
e9b7dee55a arch/arm/imxrt: Serial add RXDMA support for singlewire mode
In singlewire mode the ops were only for non-dma usecases. But if rxdma is enabled we can use that.
For TXDMA it's not possible because we've to change pin direction immediately after transmission is done.
2025-06-09 09:45:42 +02:00
Jukka Laitinen
dd07367f4e arch/riscv/Kconfig: Remove select "ARCH_PERF_EVENTS" from Kconfig
There is no more linking error for MPFS after the flagging is corrected in
drivers/timers/arch_alarm.c

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-06-06 17:31:10 +08:00
Jukka Laitinen
56ad0d6837 arch: Flag all definitions of up_perf_* functions with CONFIG_ARCH_HAVE_PERF_EVENTS
Use the flag CONFIG_ARCH_HAVE_PERF_EVENTS to detect whether the architecture specific code
provides the up_perf_* functions. Now it is mixed with CONFIG_ARCH_PERF_EVENTS, which should
select just whether the perf events (perf_*) are enabled for the configuration.

- drivers/timers/arch_alarm.c: Don't compile the up_perf_* functions here if the
  CONFIG_ARCH_HAVE_PERF_EVENTS is defined
- arch/*/*_perf.c: Change CONFIG_ARCH_PERF_EVENTS -> CONFIG_ARCH_HAVE_PERF_EVENTS to
  select whether architecture specific up_perf_* functions are provided

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-06-06 17:31:10 +08:00
buxiasen
0b3cd35360 sched/spinlock: add recursive support(rspinlock_s) for spinlock
For drivers implement those possible recusive, native spinlock
will cause deadlock directly, critial_section is use globally,
will make lock parallel to serial, add API to keep recursive
support but isolate each other.

For race condition, we may get cpuid in stack and then thread moved
to other cpu. So we have to get cpuid with irq disabled.

Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2025-06-06 09:48:17 +08:00
buxiasen
225d6fb0a7 spinlock: add dummy compatible when CONFIG_SPINLOCK not enabled
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2025-06-06 09:48:17 +08:00
hujun5
907d77a056 spinlock: add spin_lock_irqsave_nopreempt/spin_unlock_irqrestore_nopreempt
reason:
By using these interfaces, the following usage can be replaced.
flags = spin_lock_irqsave(lock);
sched_lock();
.....
spin_unlock_irqrestore(lock, flags);
sched_unlock();

Signed-off-by: hujun5 <hujun5@xiaomi.com>
2025-06-06 09:48:17 +08:00
Jukka Laitinen
82e17623b1 drivers/segger: Add support for System View post-mortem mode
Add a configuration option CONFIG_SEGGER_SYSVIEW_POST_MORTEM to enable
logging continuously into a circular buffer

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-06-06 09:46:08 +08:00
Jukka Laitinen
e81b441f4b drivers/segger: Set correct scaling for perf time
Don't assume that perf_getfreq returns nanoseconds, define the
SEGGER_SYSVIEW_TIMESTAMP_FREQ instead.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-06-06 09:46:08 +08:00
Jukka Laitinen
1178b48047 drivers/note: Fix compilation with -Werr for note driver
- Fix void * arithmetic warning
- Fix unused variable warning without CONFIG_SCHED_INSTRUMENTATION_FILTER

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-06-06 09:46:08 +08:00
George Poulios
67c7a4018a arm64/imx9: Support & configure RGMII-ID on RTL8211F
For the RTL8211F PHY, configuration of RX/TXDLY was missing.
At least on my i.MX93 EVK, this is necessary for transmission
to work (RXDLY defaults to true on the PHY).

This commit brings support for RGMII internal delay configuration
(on or off for both directions) and enables it on the i.MX93 EVK
board. The introduced Kconfig is set to default to 'n', to avoid
breaking the functionality of other, out-of-tree boards based on
i.MX93, running the RTL8211F PHY, or to avoid introducing
unnecessary code on boards running other PHYs.

Configuration of internal delay on other PHYs is not
implemented, and results in a warning (but no error).

Signed-off-by: George Poulios <gpoulios@census-labs.com>
2025-06-05 08:58:24 +02:00
George Poulios
e382e2d525 arm64/imx9: Add missing ENET1 RGMII TXC pin muxing
MUX_ENET1_TXC was missing from both the EVK board
definition and the IO muxing configuration function
of the ENET1 driver. As a result, transmission does
not work (unless the muxing is set by default in some
board? -not the case with EVK). This commit adds the
configuration and adds the definition to i.MX93 EVK.

WARN: other, out-of-tree i.MX93 boards need to define
MUX_ENET1_TXC accordingly, otherwise build will break.

Signed-off-by: George Poulios <gpoulios@census-labs.com>
2025-06-05 08:58:24 +02:00
George Poulios
08f41244bc boards/imx93-evk: Tidy up board.h ENET1 section
i.MX93 EVK board.h had an unmatched #endif directive
accidentally matching the top-level header file guard.
It also had a dual definition of BOARD_ENET1_PHY_LIST
with the same values. None of these issues affect the
functionality, as they ended up (almost) with equivalent
end result.

Signed-off-by: George Poulios <gpoulios@census-labs.com>
2025-06-05 08:58:24 +02:00
Jukka Laitinen
0ac580cb7a arch/risc-v/mpfs: Add optimized perf timer functions for mpfs
Add up_perf_ functions for MPFS, which don't rely on alarm/oneshot interface.

Also add optimized up_udelay and up_ndelay functions, which use the MTIMER
directly to measure time; making them accurate and more multithreading friendly.

Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
2025-06-04 20:48:03 -03:00
Matteo Golin
0bfcbed934 sensors/nau7802: Fix format warning
Silence format string warning by adding missing '%' sign.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-06-04 15:26:47 +08:00
simbit18
bcfcf03066 arch/arm/src/mcx-nxxx/CMakeLists.txt: Aligned Cmake with Make
Aligned Cmakefile with Make.defs PR #16469

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-06-03 10:07:39 -03:00
simbit18
ad93c6c399 arch/risc-v/src/qemu-rv/CMakeLists.txt: removed repeated addition of the file qemu_rv_userspace.c
9897ef3cdb/arch/risc-v/src/qemu-rv/CMakeLists.txt (L44)

aligned with the make.def file

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-06-03 10:03:49 -03:00
simbit18
4b2d72cf5f Documentation\components\tools\index.rst: updated help checkpatch.sh tool
Add:

-u encoding check with cvt2utf (install with: pip install cvt2utf)

-m Change-Id check in commit message (coupled with -g)

Signed-off-by: simbit18 <simbit18@gmail.com>
2025-06-03 20:16:05 +08:00
Matteo Golin
9897ef3cdb docs/arduino-mega2560: Migrate README.txt to RST
Migrated legacy README.txt documentation to RST format.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-06-03 17:34:50 +08:00
Matteo Golin
170a86c4a5 docs/avr: Re-structure documentation
Re-structure the AVR documentation to have pages for the chip families,
and their own board listings.
2025-06-03 17:34:50 +08:00
Matteo Golin
8f130b78a9 docs/contributing: Add a commit message template
Introduces a commit message template with instructions in the
contributing documentation about how to set it up. This way users are
reminded of what makes a "good" NuttX commit as they write their commit,
and don't need to re-consult the documentation every time.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-06-03 17:33:24 +08:00
chao an
2ff44978c2 drivers/mtd: fix compile warning
mtd/mtd_rwbuffer.c:42:
mtd/mtd_rwbuffer.c: In function 'mtd_erase':
mtd/mtd_rwbuffer.c:189:9: warning: format '%zx' expects argument of type 'size_t', but argument 3 has type 'long long int' [-Wformat=]
  189 |   finfo("block: %08zx nsectors: %zu\n",
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  190 |         (intmax_t)block, nsectors);
      |         ~~~~~~~~~~~~~~~
      |         |
      |         long long int
mtd/mtd_rwbuffer.c:189:21: note: format string is defined here
  189 |   finfo("block: %08zx nsectors: %zu\n",
      |                 ~~~~^
      |                     |
      |                     unsigned int
      |                 %08llx
mtd/mtd_rwbuffer.c: In function 'mtd_ioctl':
mtd/mtd_rwbuffer.c:298:21: warning: format '%d' expects argument of type 'int', but argument 3 has type 'uint32_t' {aka 'long unsigned int'} [-Wformat=]
  298 |               finfo("blocksize: %d erasesize: %d neraseblocks: %d\n",
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  299 |                     geo->blocksize, geo->erasesize, geo->neraseblocks);
      |                     ~~~~~~~~~~~~~~
      |                        |
      |                        uint32_t {aka long unsigned int}
...

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-06-03 17:33:14 +08:00
chao an
d1136084b0 syslog/rpmsg: disable force put char to lower putc
if rpmsg triggers force flushing when the master core provides lower putc,
characters will be duplicated caused by SYSLOG_DEFAULT also send the char to lower half.
in this PR, we disable force put char to lower putc if CONFIG_SYSLOG_DEFAULT is enabled

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-06-03 17:33:03 +08:00
Matteo Golin
01f44f963c docs/conf.py: Fix missing nuttx_versions
Add `nuttx_versions` back into the `html_context` variable after it was
re-defined in #16440 to include more options. This fixes the failing
Pphinx autobuild.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-06-03 17:32:46 +08:00
Michal Lenc
b0342c87ee arch/arm/src/samv7/sam_serial_spi.c: set correct SPI mode during init
Bitfield CPHA has to be set to run SPI in mode 0. This is a default mode,
therefore it should be set during the peripheral initialization.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2025-06-02 23:10:44 +08:00
chao an
cc44b3b521 audio/comp: fix build warning caused by invalid return value
audio/audio_comp.c:958:14: warning: returning ‘int’ from a function with return
                                    type ‘struct audio_lowerhalf_s *’ makes pointer
                                    from integer without a cast [-Wint-conversion]
  958 |       return -EINVAL;
      |              ^

Signed-off-by: chao an <anchao.archer@bytedance.com>
2025-06-02 23:10:25 +08:00
Ville Juven
436c814c2e mcx-nxxx: Add LPI2C driver for mcx-nxxx architecture
This adds a LPI2C driver for the mcx-nxxx chip, and the necessary board
definitions for the frdm-mcxn236 evaluation kit.

Signed-off-by: Ville Juven <ville.juven@unikie.com>
2025-06-02 23:09:59 +08:00
Morten Fyhn Amundsen
143242776f Documentation: Fix a typo in scheduler docs
Removed a repeated word. Self-explanatory.

Signed-off-by: Morten Fyhn Amundsen <morten.f.amundsen@scoutdi.com>
2025-06-02 23:09:02 +08:00
Matteo Golin
ef04b4ccb6 boards/avr/atmega: Added Elegoo Mega2560r3 board support
Preliminary support for the Elegoo Mega2560r3 board by Elegoo with NSH
configuration.
2025-05-31 00:29:18 +08:00
dependabot[bot]
5bcf42e962 build(deps): bump codelytv/pr-size-labeler from 1.10.2 to 1.10.3
Bumps [codelytv/pr-size-labeler](https://github.com/codelytv/pr-size-labeler) from 1.10.2 to 1.10.3.
- [Release notes](https://github.com/codelytv/pr-size-labeler/releases)
- [Commits](https://github.com/codelytv/pr-size-labeler/compare/v1.10.2...v1.10.3)

---
updated-dependencies:
- dependency-name: codelytv/pr-size-labeler
  dependency-version: 1.10.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-30 10:34:23 -03:00
T. L.
29e6d4f96e Documentation/drivers/analog/adc/ads1115: Add missing documentation for ioctl
This commit adds the missing documentation for the ioctl command ANIOC_ADS1115_READ_CHANNEL.

Signed-off-by: Tony Lin <99093620+justapotato213@users.noreply.github.com>
2025-05-29 22:03:43 -04:00
Peter van der Perk
7104a51411 arch/arm/imxrt: rt117x fix TCM/OCRAM ECC backdoor access
FlexRAM peripheral was incorrectly clocked and turned during
M7 sleep. This patch fixes clock setting and ensure that clock
stays on during M7 for backdoor access from for example eDMA
2025-05-30 08:51:46 +08:00
Matteo Golin
40ec988502 arduino-mega2560: Fix incorrect RAM_START address
Fixes an incorrect RAM_START address, which should be 0x800200 for SRAM.

Signed-off-by: Matteo Golin <matteo.golin@gmail.com>
2025-05-29 16:24:06 -03:00