YAMAMOTO Takashi
6ebfe8c51f
linum-stm32h753bi/littlefs: use littlefs 2.9.3
...
I chose this config just because it seems to support cmake-based build.
2024-11-27 02:56:52 +08:00
YAMAMOTO Takashi
610c72ccd0
fs/littlefs: add LFS_MULTIVERSION support
2024-11-27 02:56:52 +08:00
YAMAMOTO Takashi
abd769dcb0
fs/littlefs: disable -Wshadow and explain why
2024-11-27 02:56:52 +08:00
YAMAMOTO Takashi
f7e2e23f12
fs/littlefs: stop applying local patches for unknown versions of littlefs
...
Because they are not expected to apply cleanly.
In that case, disable all features which require the local patches.
Note: lfs_util.patch is actually necessary regardless of
the littlefs version. It should be ok to drop it for the simplest
flat memory model configurations with a single heap though. I plan
to fix it once littlefs 2.9.4 is released.
Tested with esp32s3-devkitc:toywasm + CONFIG_FS_LITTLEFS_VERSION="v2.9.3".
2024-11-27 02:56:52 +08:00
YAMAMOTO Takashi
0157118ead
fs/littlefs: don't use lfs_getsetattr.patch unless FS_LITTLEFS_ATTR_UPDATE
2024-11-27 02:56:52 +08:00
zhanghongyu
ba419cc894
drivers/net/{e1000|igc}: limit no packet is transmit after carrier off
...
if the drvier tx queue is full up during the network cable unplugging,
there will be no txdone interrupt after inserting the network cable,
transmit cannot be recovered.
Modified to no longer fill the driver with packet when link down.
Signed-off-by: zhanghongyu <zhanghongyu@xiaomi.com>
2024-11-27 02:46:04 +08:00
p-szafonimateusz
0932fccfb2
drivers/net/{e1000|igc}: reset TX ring when disconnected
...
drivers/net/{e1000|igc}: reset TX ring when disconnected
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2024-11-27 02:46:04 +08:00
p-szafonimateusz
ada47439bd
drivers/net/{e1000|igc}: fix link status crash
...
netdev_lower_carrier_xxx API can't be used in interrupt context
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2024-11-27 02:46:04 +08:00
p-szafonimateusz
5e48f2a3d8
drivers/net/igc: make Interrupt Throttle configurable
...
make Interrupt Throttle configurable for igc
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2024-11-27 02:46:04 +08:00
p-szafonimateusz
bf4eadf735
drivers/net/{e1000|igc}: configure RX/TX descriptors from Kconfig
...
configure E1000/IGC RX/TX descriptors from Kconfig
Signed-off-by: p-szafonimateusz <p-szafonimateusz@xiaomi.com>
2024-11-27 02:46:04 +08:00
wangjianyu3
3d5cf53624
Documentation/esp32s3-devkit: Add doc for esp32s3-devkit/TXTABLE
...
More details
https://github.com/apache/nuttx/pull/9936
https://nuttx.apache.org/docs/latest/components/filesystem/partition.html#text-based-partition-table
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-11-27 02:45:44 +08:00
wangjianyu3
c2228c39ac
esp32s3-devkit/txtable: Initializing configuration for TXTABLE
...
USB ADB is enabled - Based on esp32s3-devkit/adb
Build
./tools/configure.sh -l esp32s3-devkit:txtable
make -j16
make flash ESPTOOL_PORT=/dev/ttyACMx
Test
$ adb -s 1234 shell
nsh> cat /etc/txtable.txt
TXTABLE0
data 0x100000 0
nsh> ls -l /dev/data
frw-rw-rw- 1044480 /dev/data
nsh>
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-11-27 02:45:44 +08:00
wangjianyu3
57595a7937
boards/xtensa/esp32s3: Add TXTABLE support for esp32s3
...
TXTABLE - Text based Partition Table
https://github.com/apache/nuttx/pull/9936
https://nuttx.apache.org/docs/latest/components/filesystem/partition.html#text-based-partition-table
Configuration
+ CONFIG_TXTABLE_PARTITION=y
The backup text partition table
+ CONFIG_TXTABLE_DEFAULT_PARTITION=1
nsh> cat /etc/txtable.txt
TXTABLE0
data 0x100000 0
Update txtable at runtime
dd if=/dev/zero of=/dev/txtable
cat /etc/txtable.txt > /dev/txtable
Runtime - Partition devices "data" and "txtable" were registered
# /dev/data - The partition descirbed by txtable
# /dev/txtable - Mapping to the last eraseblock of MTD
nsh> ls -l /dev/
/dev:
dr--r--r-- 0 adb0/
crw-rw-rw- 0 console
frw-rw-rw- 1044480 data
frw-rw-rw- 1048576 esp32s3flash
c-w--w--w- 0 log
crw-rw-rw- 0 null
crw-rw-rw- 0 ptmx
dr--r--r-- 0 pts/
brw-rw-rw- 1024 ram0
crw-rw-rw- 0 ttyS0
frw-rw-rw- 4096 txtable
crw-rw-rw- 0 zero
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-11-27 02:45:44 +08:00
simbit18
430c2ecf46
arch/risc-v/src/cmake/Toolchain.cmake: Msys2 Cmake fixed nuttx/config.h: No such file or directory
...
fixed
/qemu-rv/qemu_rv_head.S:25:10: fatal error: nuttx/config.h: No such file or directory
25 | #include <nuttx/config.h>
| ^~~~~~~~~~~~~~~~
compilation terminated.
added
# override the responsible file flag
if(CMAKE_GENERATOR MATCHES "Ninja")
set(CMAKE_C_RESPONSE_FILE_FLAG "$DEFINES $INCLUDES $FLAGS @")
set(CMAKE_CXX_RESPONSE_FILE_FLAG "$DEFINES $INCLUDES $FLAGS @")
set(CMAKE_ASM_RESPONSE_FILE_FLAG "$DEFINES $INCLUDES $FLAGS @")
endif()
2024-11-27 02:35:48 +08:00
Xiang Xiao
573115734d
Revert "drivers/pipes: return after short write if buffer is full"
...
This reverts commit d0680fd1bc
.
2024-11-26 11:08:02 -03:00
hujun5
610efc8f1a
arm: remove up_set_current_regs/up_current_regs
...
reason:
up_set_current_regs initially had two functions:
1: To mark the entry into an interrupt state.
2: To record the context before an interrupt/exception. If we switch to
a new task, we need to store the upcoming context regs by calling up_set_current_regs(regs).
Currently, we record the context in other ways, so the second function is obsolete.
Therefore, we need to rename up_set_current_regs to better reflect its actual meaning,
which is solely to mark an interrupt.
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-26 20:04:54 +08:00
wangmingrong1
cdbf5c6ebe
Fix compilation errors
...
CC: gcov.c gcov.c: In function 'gcov_stdout_dump':
gcov.c:146:50: error: passing argument 3 of '__gcov_info_to_gcda' from incompatible pointer type [-Werror=incompatible-pointer-types]
146 | __gcov_info_to_gcda(info, stdout_filename, stdout_dump, NULL, &arg);
| ^~~~~~~~~~~
| |
| void (*)(const void *, size_t, void *) {aka void (*)(const void *, long unsigned int, void *)}
In file included from gcov.c:25:
/mnt/vela/github/NX/nuttx/include/gcov.h:139:44: note: expected 'void (*)(const void *, unsigned int, void *)' but argument is of type 'void (*)(const void *, size_t, void *)' {aka 'void (*)(const void *, long unsigned int, void *)'}
139 | FAR void (*dump)(FAR const void *,
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
140 | unsigned int, FAR void *),
| ~~~~~~~~~~~~~~~~~~~~~~~~~
libgcc/gcov.c: In function 'gcov_process_path.constprop':
libgcc/gcov.c:235:29: error: 'filename' may be used uninitialized [-Werror=maybe-uninitialized]
235 | tokens[token_count++] = filename;
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
libgcc/gcov.c:189:13: note: 'filename' was declared here
189 | FAR char *filename;
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-11-26 19:25:24 +08:00
wangjianyu3
d83ab55e00
fs/partition/txtable: Fix panic when no txtable was found in last eraseblock
...
Panic occured if no txtable was found in last eraseblock of MTD device and `CONFIG_TXTABLE_DEFAULT_PARTITION` was disabled
Backtrace
sched_dumpstack
/workspace/nuttx/libs/libc/sched/sched_dumpstack.c:71
dump_assert_info
/workspace/nuttx/sched/misc/assert.c:718
xtensa_user_panic
/workspace/nuttx/arch/xtensa/src/common/xtensa_assert.c:188 (discriminator 1)
xtensa_user
??:?
_xtensa_user_handler
/workspace/nuttx/arch/xtensa/src/common/xtensa_user_handler.S:194
??
??:0
parse_txtable_partition
/workspace/nuttx/fs/partition/fs_txtable.c:136
parse_partition
/workspace/nuttx/fs/partition/fs_partition.c:165
parse_mtd_partition
/workspace/nuttx/fs/partition/fs_partition.c:291
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-11-26 18:23:06 +08:00
chao an
401e8eb062
sched/lockcount: replace all lockcount check to nxsched_islocked_tcb()
...
replace all lockcount check to nxsched_islocked_tcb()
Signed-off-by: chao an <anchao@lixiang.com>
2024-11-26 16:35:20 +08:00
chao an
4dda9800b4
espressif/mcpwm: fix compile error
...
continue work of PR #14938
Signed-off-by: chao an <anchao@lixiang.com>
2024-11-26 16:34:19 +08:00
wangjianyu3
5fabe091f3
boards/xtensa/esp32s3: Treat return value that greater than zero as succ
...
board_spiflash_init() => init_storage_partition() => parse_mtd_partition()
`parse_mtd_partition()` may return value that greater than zero when succ
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-11-26 16:33:26 +08:00
wangmingrong1
eff13d6004
gcov: Add usage documentation
...
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-11-26 16:32:50 +08:00
wangjianyu3
22e8e65789
boards/esp32s3: Add depends ESP32-S3-WROOM-1-N8R8 for ESP32S3_DEVKIT
...
Env
esp32s3-devkit:usbnsh
Problem
The `CONFIG_ARCH_BOARD_ESP32S3_DEVKIT` will be disabled if `CONFIG_ARCH_CHIP_ESP32S3WROOM1N8R8` selected
$ diff defconfig boards/xtensa/esp32s3/esp32s3-devkit/configs/usbnsh/defconfig
7a8
> # CONFIG_ARCH_LEDS is not set
10a12
> CONFIG_ARCH_BOARD="esp32s3-devkit"
12,15c14
< CONFIG_ARCH_BOARD_CUSTOM=y
< CONFIG_ARCH_BOARD_CUSTOM_DIR=""
< CONFIG_ARCH_BOARD_CUSTOM_DIR_RELPATH=y
< CONFIG_ARCH_BOARD_CUSTOM_NAME=""
---
> CONFIG_ARCH_BOARD_ESP32S3_DEVKIT=y
18c17
< CONFIG_ARCH_CHIP_ESP32S3WROOM1N8R8=y
---
> CONFIG_ARCH_CHIP_ESP32S3WROOM1N4=y
And command make fails
No directory at /workspace/nuttx//src
make[1]: *** [tools/Unix.mk:320: arch/xtensa/src/board/board] Error 1
make: *** [tools/Unix.mk:700: menuconfig] Error 2
With this patch
$ diff defconfig boards/xtensa/esp32s3/esp32s3-devkit/configs/usbnsh/defconfig
17c17
< CONFIG_ARCH_CHIP_ESP32S3WROOM1N8R8=y
---
> CONFIG_ARCH_CHIP_ESP32S3WROOM1N4=y
Link: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32s3/esp32-s3-devkitc-1/user_guide.html
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-11-26 14:06:31 +08:00
wangmingrong1
d2dc2c796d
Path Error
...
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-11-26 13:50:53 +08:00
buxiasen
3e24aab208
stream_getc: use lib_stream_eof instead of EOF
...
Will case scanftest break #14778 , at " %4c%n" case.
scanf use INT_MAX cause EOF break.
Signed-off-by: buxiasen <buxiasen@xiaomi.com>
2024-11-26 10:25:36 +08:00
Jinliang Li
f3213efc7f
armv8-r/libc: optimize libc string apis with asm
...
Optimize libc string apis(memcpy/memset/memmove/memchr/strcmp/strlen)
with arm32 assembly instruction including vfp and neon.
Add arch releated elf parsing
Signed-off-by: Jinliang Li <lijinliang1@lixiang.com>
2024-11-26 10:22:12 +08:00
hujun5
f5136b2afa
spinlock: remove recursive locks with write_lock_irqsave/read_lock_irqsave
...
reason:
1 There is a similar PR, https://github.com/apache/nuttx/pull/14079 ,
2 Currently, no one is using recursive locks with write_lock_irqsave/read_lock_irqsave.
3 Nested spinlock is harmful, prone to abuse and leading to a decline in code quality and performance
4 Nested spinlock is also not available in Linux.
5 In our future plans, nested usage of enter_critical_section and spin_lock_irqsave will also be removed.
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-26 10:21:04 +08:00
hujun5
33226a9bb7
use spin_lock_wo_note replace spin_lock in csection
...
reason:
spin_lock_wo_note/spin_unlock_wo_note should be called in matching pairs.
This commit fixes the regression from https://github.com/apache/nuttx/pull/13933
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-26 10:17:18 +08:00
simbit18
00f831028f
[ci] platforms: added toolchains
...
add toolchains for macOS on Apple Intel
xtensa-esp32s2
xtensa-esp32s3
add toolchains for macOS on Apple Silicon
xtensa-esp32s2
xtensa-esp32s3
add install for ubuntu.sh
xtensa-esp32s2
xtensa-esp32s3
add install for linux.sh
xtensa-esp32s2
xtensa-esp32s3
2024-11-26 10:14:42 +08:00
hujun5
eb65c5a8cd
note: Remove enter_critical_section from the sched_note module to avoid recursive calls.
...
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-26 10:14:02 +08:00
hujun5
111a0746c2
arm64: change name saved_reg to saved_regs
...
reason:
saved_regs is more meaningful and used by all other arch
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-26 10:09:31 +08:00
hujun5
53548509b1
fix build error
...
common/espressif/esp_rmt.c: In function 'rmt_set_tx_thr_intr_en':
common/espressif/esp_rmt.c:654:48: error: passing argument 1 of 'spin_lock_irqsave' makes pointer from integer without a cast [-Werror=int-conversion]
654 | flags = spin_lock_irqsave(g_rmtdev_common.rmt_spinlock);
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
| |
| spinlock_t {aka unsigned char}
/home/hujun5/downloads1/vela_sim/nuttx/include/nuttx/spinlock.h:617:55: note: expected 'volatile spinlock_t *' {aka 'volatile unsigned char *'} but argument is of type 'spinlock_t' {aka 'unsigned char'}
617 | irqstate_t spin_lock_irqsave(FAR volatile spinlock_t *lock)
| ~~~~~~~~~~~~~~~~~~~~~^~~~
CC: nsh_script.c common/espressif/esp_rmt.c:662:48: error: passing argument 1 of 'spin_lock_irqsave' makes pointer from integer without a cast [-Werror=int-conversion]
662 | flags = spin_lock_irqsave(g_rmtdev_common.rmt_spinlock);
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~
| |
| spinlock_t {aka unsigned char}
/home/hujun5/downloads1/vela_sim/nuttx/include/nuttx/spinlock.h:617:55: note: expected '
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-26 09:03:29 +08:00
YAMAMOTO Takashi
92b9a30878
fs/littlefs: make CONFIG_FS_LITTLEFS_VERSION include the "v" prefix
...
To allow other tags/branches like "devel" and even sha256 hash.
2024-11-25 20:15:53 -03:00
Neo Xu
224a8f4b28
Documentation: fix nuttxgdb related commands
...
Now we should load tools/gdb/gdbinit.py script
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-11-25 18:43:23 -03:00
hujun5
34e79f9618
spinlock: use spin_lock_init replace spin_initialize
...
reason:
1: spin_lock_init and spin_initialize have similar functionalities.
2: spin_lock and spin_unlock should be called in matching pairs.
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-26 00:02:44 +08:00
yinshengkai
e69903c939
tools/gdb: Add a singleton class for macros
...
Usage:
macro = Macro("nuttx/nuttx")
print(macro.CONFIG_MM_BACKTRACE)
if macro.CONFIG_MM_BACKTRACE:
print("mm backtrace is enabled")
else:
print("mm backtrace is disabled")
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-11-25 22:58:53 +08:00
yinshengkai
9eaec7ba49
tools/gdb: move the macros cache files to a temporary directory
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-11-25 22:58:53 +08:00
yinshengkai
7aa2dc24cd
tools/gdb: fix checkpatch warning
...
Use Python raw strings to avoid escaping:
SyntaxWarning: invalid escape sequence '\?'
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-11-25 22:58:53 +08:00
chao an
24add5eeaf
spelling: fix spelling typo premp -> preemp
...
Signed-off-by: chao an <anchao@lixiang.com>
2024-11-25 22:05:05 +08:00
chao an
6ffb001fdf
spelling: fix spelling typo premption -> preemption
...
Signed-off-by: chao an <anchao@lixiang.com>
2024-11-25 22:05:05 +08:00
wangmingrong1
47e33c6433
clang/gcov: Add a way to directly dump memory address
...
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-11-25 18:03:19 +08:00
wangmingrong1
a73217d1d6
Clang/gcov: Supports gcc standard output interface "__gcov_dump"
...
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
2024-11-25 18:03:19 +08:00
hujun5
03f430edf7
fix some build error
...
hujun5@hujun5-OptiPlex-7070:~/downloads1/vela_sim/nuttx$ make -j12
chip/qemu_boot.c: In function 'up_cpu_start':
chip/qemu_boot.c:102:3: warning: implicit declaration of function 'sched_note_cpu_start' [-Wimplicit-function-declaration]
102 | sched_note_cpu_start(this_task(), cpu);
| ^~~~~~~~~~~~~~~~~~~~
chip/qemu_boot.c:102:24: warning: implicit declaration of function 'this_task' [-Wimplicit-function-declaration]
102 | sched_note_cpu_start(this_task(), cpu);
| ^~~~~~~~~
Signed-off-by: hujun5 <hujun5@xiaomi.com>
2024-11-25 17:10:50 +08:00
xuxingliang
8031c9c1de
gdb/mm: cache global variables to save time of memleak check
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-25 13:37:42 +08:00
xuxingliang
a0e9b82a79
tools/gdb: always use name to read register
...
For unknown reason, for some cases, GDB refuses to read register using descriptor. Let's stick to the register name.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-25 13:37:42 +08:00
xuxingliang
9881fbae28
tools/gdb: fix thread command not working
...
`thread` is a GDB prefix command. Use `define` can only change it to a
user prefix command. In this case, `thread 3` is unable to pass
the argument 3 to python.
Use python code to register command to overwrite this behavior. It may
not work with future GDB, but all is good for now.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-25 13:37:42 +08:00
xuxingliang
efb890abd3
gdb/diagnose: use unified message for command error
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-25 13:37:42 +08:00
xuxingliang
5b477aacca
gdb/diag: catch gdb.error in diagnositics
...
gdb.error could report if memory is corrupted. Save and report the exception and continue to next command.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-25 13:37:42 +08:00
xuxingliang
191dbcc4f1
gdb/debug: add debugpy to debug python code
...
Usage:
(gdb) debugpy
Waiting for connection at localhost:5678
In VSCode, add new configuration in launch.
{
"name": "Python Debugger: Remote Attach",
"type": "debugpy",
"request": "attach",
"connect": {
"host": "localhost",
"port": 5678
}
}
and launch.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-25 13:37:30 +08:00
xuxingliang
6119a5ea63
gdb: print trace back when some modules failed to load
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-11-25 13:37:19 +08:00