GPIO peripheral clocks have to be enabled even if interrupt support
on the peripheral is not enabled, otherwise GPIO input will not work.
This is probably caused by input filters that need clock signal.
This commit moves the clock enable call from interrupt specific function
to common initialization function that is called from _start entry
point function.
Signed-off-by: Michal Lenc <michallenc@seznam.cz>
Use configuration CDCACM_DISABLE_TXBUF or CDCACM_DISABLE_RXBUF to choose
whether to use usb req buffer as the serial buffer. Since the default
value is n (not using req buf), the original configuration of buf is valid.
This reverts commit 21c8ed80bd.
To be compatible with the previous method, add a buf between cdcacm
and serial. Because when using usbreqbuf directly as the buf of serial,
the amount of data sent may be insufficient due to the limit of the
number of reqs. For example, when the number of reqs is 4, the number
of data send through cdcacm is 5, and each data is a separate USB
packet, if the host does not read in time, resulting in blocking send.
Signed-off-by: yangsong8 <yangsong8@xiaomi.com>
To be compatible with the previous method, add a buf between cdcacm
and serial. Because when using usbreqbuf directly as the buf of serial,
the amount of data received may be insufficient due to the limit of the
number of reqs. For example, when the number of reqs is 4, the number
of data received through cdcacm is 5, and each data is a separate USB
packet, which should require 5 reqs, resulting in the last number not
being received. If the application always waits for 5 numbers before
performing an operation, this will cause problems.
Signed-off-by: yangsong8 <yangsong8@xiaomi.com>
share the f_inode, ensuring that the mapping status is associated with
the file entity rather than a single descriptor.
Avoid redundant mapping operations caused by multiple descriptors
operating on the same file.
Signed-off-by: nuttxs <zhaoqing.zhang@sony.com>
Summary:
- Replace version checking logic using pkg_resources and importlib with a subprocess call to `esptool.py version`
- This change enhances compatibility with esptool installed via pipx and simplifies the version retrieval process
Impact:
- No functional changes; the script continues to prompt for installation if esptool is not found
- Increases maintainability by reducing dependency on Python version checks
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>
This change adds support for the Pico ResTouch 2.8" LCD module to enhance display options for NuttX-based systems.
Signed-off-by: Zhu Zhongjie <zhongjiezhu1@gmail.com>
This guards use of .thumb_func with ARM_THUBM kconfig so that
CONFIG_ARM_THUMB can be off for cases like qemu-armv7r:pnsh
Signed-off-by: Yanfeng Liu <p-liuyanfeng9@xiaomi.com>
Summary:
stm32: support querying a previously set RTC alarm In the STM32F1xx series
Impact:
When using the stm32f1xx series MCU, the alarm function can be used, but when we enabled the CONFIG_RTC_ALARM configuration, an error was reported due to the inability to find the specific implementation of rdalarm.
Testing:
In our own projects, we have done alarm verification using the STM32F103RE..
The CONFIG item is beneficial for startup performance tuning, so
it would be better to have it in Nuttx as well.
Co-authored-by: FunatsuTaishi <51806905+FunatsuTaishi@users.noreply.github.com>
Co-authored-by: Roy Feng <roy.feng@sony.com>
Signed-off-by: Tim Kan(SSS) <tim.kan@sony.com>
Relocate the enum ota_img_ctrl_e and ota_img_bootseq_e
to a directory visible to the application.
Inspect if the MTD partition (factory/ota_0/ota_1) is mapped as text.
Adding an ioctl interface ota_invalidate_bootseq() to the ESP32 partitions,
by deleting the corresponding otadata, makes the boot sequence (ota_0/1) invalid.
Signed-off-by: nuttxs <zhaoqing.zhang@sony.com>
Add no_builtin for memcpy/memset to the startup code of boards
with CONFIG_ARCH_RAMFUNCS, because certain compilers call memcpy/memset
instead of the explicit for loop. This will cause a crash if memcpy/memset
are mapped to RAM because the function that copies them to RAM is called later,
resulting in undefined code being executed.
Signed-off-by: Alexander Lerach <alexander@auterion.com>
arch/arm: Use decorator for entry point
Use a decorator that contains the required no_builtin instead of adding
them explicitly to the startup code. This way it will be easier to
maintain them in the future when changes to the no_builtin used are required.
Signed-off-by: Alexander Lerach <alexander@auterion.com>
arch/arm: Rename decorator
Rename the entry point decorator used for the startup code to a less explicit name.
This way the style is more consistent with other decorators.
Signed-off-by: Alexander Lerach <alexander@auterion.com>
ifdelay description (delay between frames) matches the DLYBCT field
(delay between consecutive transfers without removing chip select)
much better compared to stopdelay (delay between last CLK and CS
inactive). The option for stopdelay does not seem to be configurable
in SAMA5 peripheral.
Signed-off-by: Michal Lenc <michallenc@seznam.cz>
After pthread mutexes changed to nxmutex, the priority inheritance
was set on by default; even if one tried to control it with
CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT.
Also the CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_PROTECT is not effective.
Fix this by setting the default mutex priority adjustment flags according
to CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_INHERIT and CONFIG_PTHREAD_MUTEX_DEFAULT_PRIO_PROTECT.
Signed-off-by: Jukka Laitinen <jukka.laitinen@tii.ae>
After MSYS2 updated the package on GitHub
there was a slowdown in building NuttX in the MSYS2 job.
It went from an average of 6 minutes to 10 minutes !!!
The purpose of this PR is to speed up the build to decrease the usage of the Windows runner.
Modified Files
tools/ci/cibuild.sh
tools/sethost.sh
make olddefconfig -j 4 -> make olddefconfig
workaround for remove
Cleaning...
Configuring...
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule.
Signed-off-by: simbit18 <simbit18@gmail.com>
Adds a device ID to ramtron_initialize, which is stored in the ramtron_dev_s structure.
This ID is used when calling SPI_SELECT to board specific logic to allow chip select on the SPI bus.
This change is NOT backwards compatible, as it changes the function signature of ramtron_initialize.
This implementation is based on the handling of chip select in nuttx/drivers/mtd/sst26.c:sst26_initialize_spi().
Additional Changes:
- Add MB85RS64V to ramtron supported parts list.
When we use upstream board as a target in out-of-tree board configurations we
should not link dummy/Kconfig with a board Kconfig otherwise this file is
included twice which cause cmake warnings.
For example, when out-of-tree configuration is like this:
CONFIG_ARCH_BOARD_CUSTOM=y
CONFIG_ARCH_BOARD_CUSTOM_DIR="boards/arm/stm32/b-g431b-esc1/"
CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
CONFIG_ARCH_BOARD_CUSTOM_NAME="b-g431b-esc1"
this results with many warnings during configuration stage:
CMake Warning at cmake/nuttx_kconfig.cmake:171 (message):
Kconfig Configuration Error: warning: the default selection
BOARD_STM32_BG431BESC1_USE_HSI (defined at
boards/arm/stm32/b-g431b-esc1/Kconfig:12,
/home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:12) of
<choice> (defined at boards/arm/stm32/b-g431b-esc1/Kconfig:8) is not
contained in the choice
warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSI (defined at
boards/arm/stm32/b-g431b-esc1/Kconfig:12,
/home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:12) is
defined with a prompt outside the choice
warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSE (defined at
boards/arm/stm32/b-g431b-esc1/Kconfig:15,
/home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:15) is
defined with a prompt outside the choice
warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSI (defined at
boards/arm/stm32/b-g431b-esc1/Kconfig:12,
/home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:12) is
defined with a prompt outside the choice
warning: the choice symbol BOARD_STM32_BG431BESC1_USE_HSE (defined at
boards/arm/stm32/b-g431b-esc1/Kconfig:15,
/home/raiden00/git/railab/dawn/build_esc1/boards/dummy/Kconfig:15) is
defined with a prompt outside the choice
Signed-off-by: raiden00pl <raiden00@railab.me>
Using the FTL driver over a MTD flash device, when writing to flash, eventually the ftl_flush function is called and it does an erase (MTD_ERASE) and then the write (MTD_BWRITE). Currently, the at45db driver (at45db.c), uses a write command 0x82 ("Main Memory Page Program through Buffer 1 with Built-In Erase") that also performs a built-in erase before the write. In summary, each time a write to flash is performed, the page is erased twice before it is written, first in the FTL driver and then in the MTD driver.
This PR is to change the page writes to not use that built-in command.
Signed-off-by: Javier Casas <javiercasas@geotab.com>
When enable both `DEV_GPIO` and `GPIO_LOWER_HALF` for a GPIO pin device for an I/O expander pin.
See esp32s3_gpio.c for more details.
Log
xtensa-esp32s3-elf-ld: /workspace/nuttx/staging/libboard.a(esp32s3_bringup.o):(.literal.esp32s3_bringup+0x14): undefined reference to `esp32s3_gpio_init'
xtensa-esp32s3-elf-ld: /workspace/nuttx/staging/libboard.a(esp32s3_bringup.o): in function `esp32s3_bringup':
/workspace/nuttx/boards/xtensa/esp32s3/common/board/esp32s3_bringup.c:409: undefined reference to `esp32s3_gpio_init'
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
This patch adds a driver framework to control individual FPGA reset and
clock gates.
For FPGA devices, only the fabric (FIC0/FIC1/FIC3) clock and reset can be
controlled, which affects the whole fabric / domain. This is problematic
for obvious reasons.
For MSS peripherals, clocks and reset are controlled individually for each
peripheral via MSS memory mapped registers (MPFS_SYSREG). To get the same
capability for FPGA peripherals, the same controller needs to be
fabricated on the FPGA.
However, the FPGA clock/reset controller is entirely user dependent, so a
generic implementation is not possible. However, a generic driver is
needed in order to build the current FPGA peripheral drivers. A stub
implementation of the driver is provided in order to achieve this.
Signed-off-by: Ville Juven <ville.juven@unikie.com>
This commit adds the documentation for the Texas Instruments ADS1115 Driver.
Signed-off-by: Tony Lin <99093620+justapotato213@users.noreply.github.com>
This patch adds initial support for the Texas Instruments ADS1115 ADC.
Please read the documentation for more details.
Signed-off-by: Tony Lin <99093620+justapotato213@users.noreply.github.com>