| Age | Commit message (Collapse) | Author |
|
|
|
rt_console_set_device() is typically called in rt_hw_board_init() right
after rt_components_board_init(). null was INIT_DEVICE (level 3), so it
was not registered yet and could not be RT_CONSOLE_DEVICE_NAME.
Raise to INIT_BOARD_EXPORT; null is a pure software sink with no HW deps.
Co-Authored-By: Grok <[email protected]>
|
|
The touch framework has no private headers in its source directory, so
adding the directory to CPPPATH is unnecessary. Remove it to avoid
polluting the global header search path, as discussed in #10980.
|
|
* [libcpu][risc-v] Refactor the RISC-V architecture port
Introduce an opt-in unified RISC-V common layer for RV32 and RV64 while keeping existing BSPs on the legacy implementation during migration.
- use ARCH_RISCV and ARCH_CPU_64BIT for architecture and XLEN selection
- unify context, trap, MMU, cache, timer, SBI, SMP and ISA handling
- add PLIC, CLIC, ACLINT, APLIC and IMSIC support
- map physical hart IDs to contiguous logical CPU IDs
- add T-Head vendor overrides while preserving legacy ports
- migrate qemu-virt64-riscv with RV32 and RV64 support
- update clock_time, MM, LWP, OFW, PCI and Rust integration
Existing BSPs continue using legacy_common or common64 unless they select RT_USING_RISCV_NEW_COMMON.
Signed-off-by: GuEe-GUI <[email protected]>
* [libcpu][risc-v] skip disabled CPU nodes in early FDT walk
Rbb666 noted that rt_hw_fdt_install_early() walked every /cpus child
without checking status, so disabled cores still joined hart registration
and MMU capability probing. Skip nodes that are not okay/ok via
rt_fdt_device_is_available() before reading reg or mmu-type.
Signed-off-by: seteiro <[email protected]>
* [libcpu][risc-v] Fix per-CPU page table mapping
- reuse existing non-leaf page table entries when mapping per-CPU areas
- reject leaf entry conflicts instead of overwriting mappings
Signed-off-by: GuEe-GUI <[email protected]>
---------
Signed-off-by: GuEe-GUI <[email protected]>
Signed-off-by: seteiro <[email protected]>
Co-authored-by: seteiro <[email protected]>
|
|
|
|
|
|
|
|
|
|
rt_thread_delay(0)
The 'index == times' condition in the delay_tick calculation is never true,
so the delay was still applied after the last ping, contrary to the comment.
Skip the delay on the final ping by checking 'index != times - 1'.
Also only call rt_thread_delay() when delay_tick > 0, since passing 0
returns -RT_EINVAL.
|
|
|
|
Reject full configuration descriptors with more interfaces than the instance can hold. Clean up using the fixed interface-array capacity so an attach failure cannot leave detach trusting an oversized device-supplied count.
Fixes #11288
|
|
netdev_cmd_ping() computed avg_time / received before checking that any
reply arrived. When every request times out, received is 0 and the
integer division traps (SIGFPE on the simulator, a fault on Cortex-M),
taking the shell thread down. Only compute the average inside the
existing received > 0 branch where it is printed.
Fixes #11852
|
|
enabled.
The '#define assert ASSERT' in ulog_def.h conflicts with the 'assert'
used in reset.c (rstc->rstcer->ops->assert), causing unintended macro expansion.
Signed-off-by: Jiang Yu <[email protected]>
|
|
Signed-off-by: Jaeyeong Lee <[email protected]>
|
|
With RT_USB_DEVICE_CDC and RT_USING_SERIAL_V2 both enabled, _function_enable
assigned the embedded rx_ringbuffer to serial.serial_rx. Serial V2 reads that
pointer as a struct rt_serial_rx_fifo, whose first member is a rt_ringbuffer,
so ring-buffer access happened to work while rx_cpt, rx_cpt_index and
rx_timeout landed on the following members of struct vcom, corrupting tx_rbp.
The layout shifts again with RT_SERIAL_USING_DMA, which inserts dma_ping_rb
ahead of those fields.
Serial V2 already owns the receive FIFO: dev_serial_v2.c allocates it with
rt_malloc on open and releases it with rt_free on close, so the assignment
also made rt_free run on memory inside struct vcom.
Drop the assignment and read the FIFO Serial V2 owns. rt_hw_serial_isr
reports RX_IND from serial_rx->rb, so the endpoint handler now fills that
ring buffer and _vcom_getc drains it. The Serial V1 path is unchanged.
Fixes #11739
Signed-off-by: Jaeyeong Lee <[email protected]>
|
|
Newer GCC emits C++ global constructors into .init_array, which many
linker scripts keep outside [__ctors_start__, __ctors_end__), so they
never ran. Walk __init_array_start/__init_array_end (weak) as well,
skipping entries already covered by the ctors range.
Add RT_USING_CPP_CRT_INIT for ports whose startup runtime already runs
.init_array, default on for the simulator. With it set, only the
.init_array walk is skipped; the ctors range is still walked.
Renesas RA/RA_WIRELESS/RZ families select it when C++ is enabled: FSP
SystemInit() already walks .init_array, so boards whose linker script
only provides __init_array_* would run constructors twice. Boards that
fold .init_array into the ctors range (ra6m3-hmi-board, ra8d1, rz)
still run them once via RT-Thread.
Also source env.sh and restore RTT_EXEC_PATH in ToolsCI project generate
and dist steps so scons is on PATH (exit 127) and the ARM toolchain path
is not overwritten by env.sh.
Fixes #11778
|
|
|
|
The option loop advanced by the option length without checking the
number of bytes actually received by recvfrom(), so a malformed or
truncated DHCP packet could make the server read past the end of the
receive buffer.
Check that the option type, length and payload stay inside the received
data before reading them, and stop parsing when a requested IP option
is shorter than 4 bytes or a message type option is shorter than 1 byte.
Fixes #11323
|
|
按根目录 .clang-format 跑过 clang-format 19.1.7。
颜色复位仍在换行之前。
|
|
Fixes #11296
ulog_tail_formater() 原来先写换行再写 CSI_END,颜色复位落在下一行开头,
shell 提示符不会回到默认颜色。现在先写 CSI_END,再写换行。
|
|
|
|
|
|
- Kconfig: RT_USING_LWIP221 choice, RT_USING_LWIP_VER_NUM=0x20201
- SConscript for lwip-2.2.1 (acd.c, mdns split files, tftp.c)
- replay RTT patch set from lwip-2.1.2 onto 2.2.1
- import RTT ping.c and tftp_port.c (adapted to 2.2.x TFTP API)
- SAL: version-gated netconn socket accessor (callback_arg union >= 2.2.0)
- lwipopts: DHCP ACD (RFC 5227) and MEMP_NUM_SYS_TIMEOUT version gates
|
|
Verbatim upstream lwIP 2.2.1 official release (STABLE-2.2.1),
complete with apps/, test/ and Filelists.
|
|
|
|
|
|
Numeric hostnames were copied into a fixed stack buffer without a length bound.
Cache the length, reject values that cannot fit, and terminate the copy explicitly.
Fixes #11332
Assisted-by: OpenAI Codex:GPT-5
|
|
|
|
|
|
detect_rust_target() 的 Cortex-M33 分支固定返回 thumbv8m.main-none-eabi,
没有使用同函数已计算的 hard_float,而 M4/M7 分支是判断的。
硬浮点 M33 板卡因此拿到软浮点 ABI 的 Rust 库,链接时报
"uses VFP register arguments" 并终止构建。
按 hard_float 选择 eabihf/eabi,与 M4/M7 分支保持一致。
|
|
Fix format specifier mismatches in blk_partition.c by using the
appropriate integer formats and explicit casts.
This removes -Wformat warnings on platforms where rt_uint32_t and
rt_size_t are represented as unsigned long.
|
|
|
|
|
|
|
|
NUM_MEM_REGIONS / NUM_CONFIGURABLE_REGIONS / NUM_EXCLUSIVE_REGIONS had no
Kconfig defaults. Enabling RT_USING_HW_STACK_GUARD without explicitly
setting them generated empty macros in rtconfig.h (e.g.
'#define NUM_CONFIGURABLE_REGIONS'), which expanded into invalid C
expressions like '(2 + )' and 'for (i = 0U; i < ; i++)', breaking
compilation for cortex-m4/m7/m33 MPU code.
Add safe defaults: NUM_MEM_REGIONS=8, NUM_CONFIGURABLE_REGIONS=0,
NUM_EXCLUSIVE_REGIONS=0. Also document the MemManage_Handler strong-symbol
conflict with CubeMX-generated stm32f4xx_it.c and how to resolve it.
Reported-by: wdfk-prog
|
|
The terminal subsystem's own headers (terminal.h, tty_config.h, ...) are
resolved by the compiler's quoted-include directory lookup for sources
inside components/lwp/terminal; nothing else depends on the path.
Stop polluting the global CPPPATH with this internal directory,
following the convention discussed in #10980.
|
|
|
|
|
|
|
|
|
|
When sal_socket() rejects a request, DFS v2 descriptor cleanup destroys the dfs_file but leaves its separately allocated vnode behind.
Destroy the vnode before releasing the failed descriptor and add a regression test that verifies repeated failures do not consume heap.
Fixes #11710
Assisted-by: OpenAI Codex:GPT-5
|
|
|
|
|
|
在 v1/v2 串口文件边界复制已知用户参数,补齐 v2 unread count 和 termios 缓冲区保护。
在 imx6ull UART 编程前校验波特率,并在硬件配置成功后提交串口状态。
|
|
Fix clang-format 22 alignment in loadavg macros, tmpfs setattr
mask wrap, and record-lock utest defines so the format CI passes.
|
|
Cover positive/negative l_len, overlapping GETLK conflicts,
interrupted F_SETLKW, split/merge, and close/dup2 lock release on
tmpfs.
|
|
Grow maps without a 256 VMA cap, skip RSS walks for maps, report
matching status text, real RSS/statm, MemAvailable after page-pool
free pages, load averages plus last PID, cumulative processes, RV32
cpuinfo, and per-character mount escaping.
|
|
If waiter allocation fails, mark the fd with POLLERR and wake
epoll_wait() instead of silently dropping the watch.
|
|
NULL read/write buffers now return -EFAULT. tmpfs setattr uses the
vnode-backed object after unlink, keeps S_ISUID/S_ISGID/S_ISVTX, and
the tmpfs utest checks ENAMETOOLONG plus post-unlink fchmod.
|
|
将 VirtIO Net 的依赖从 RT_USING_ETHERNET 调整为 RT_USING_LWIP。
避免 SMART QEMU 在未启用以太网抽象时无法选择网卡。
|