RT-Thread Weekly Report (2026-10-19 ~ 2026-10-23)
Reporting period: October 19 (Monday) to October 23 (Friday), 2026 — 5 working days, 5 daily issues; also includes checks on the release day (October 24) of the GitHub commit stream, release pages, and the Studio toolchain index, covering wrap-up changes from 10-23 08:00 to 10-24 17:00 Sources: 5 issues of this publication’s daily RT-Thread update (10-19, 10-20, 10-21, 10-22, 10-23), totaling an effective window from 10-16 08:00 to 10-23 08:00 (the Monday issue covers a 72-hour weekend-spanning window); release-day checks are based on actual commits measured in the GitHub main repository and the packages, env, rtthread-skills, smart-build, and Studio SDK index repositories Editorial note: Covers five dimensions — kernel and versions, security and stability, ecosystem and vendor adaptation, official and community events, and industry applications; facts and dates in the body are taken item by item from the original text of the corresponding daily issues, and release-day supplementary entries are separately marked with their verification method
I. Weekly Highlights
-
SpacemiT K1’s first BSP merged into mainline, marking the first application-processor-class RISC-V platform to enter the main tree (10-19): Proposal #11132 was filed on 2026-01-11 and landed by author GuEe-GUI after roughly nine months of review — 4 commits, 173 files, +53862/-12 — as a follow-up to the Next RISC-V refactor (#10320). The BSP targets a 64-bit RISC-V platform integrating 8 X60 cores, booted by U-Boot/OpenSBI and running in S-mode, with MMU and SMP enabled by default; the validation platform is the Banana Pi BPI-F3. It already supports PCIe/NVMe, eMMC HS400, Ethernet and PTP, HDMI framebuffer, JPU and V2D acceleration, audio, CPUfreq, and thermal management. The driver layer is extracted separately into bsp/spacemit/dm (147 files, 49 C files, about 30 modules) for reuse by SoCs in the same family.
-
RISC-V ticket spinlock switched to atomic add; K1’s SMP configuration raised from 4 to 8 cores the same day (merged 10-22): Proposal #11904 changes ticket acquisition to a single amoadd instruction and release to a single 16-bit halfword store — 6 files, +33/-37. The original implementation ran a load-reserved/conditional-store loop for both acquire and release on the same word, so under high multi-core contention the reservations would cancel each other and fall into livelock; the whole-word read-modify-write on release could also overwrite concurrently issued new ticket numbers. Both root causes are eliminated together, with a memory barrier added on each side. This code is shared by all RISC-V boards, so its impact is broader than a single BSP.
-
ESP32-C3/C6 adaptation to ESP-IDF v6.1 lands end to end; RISC-V toolchain jumps to GCC 15.2 (10-21 ~ 10-22): On the package side, RT-Thread-packages’ esp-idf completed its full upgrade from 5.1 to 6.1.0 and was merged on 10-21 at 15:23 (over 20,000 changed files), adding a components/rtthread porting layer and a CONFIG_IDF_RTOS_RTTHREAD kernel-replacement switch; main-repo proposal #11870 was merged on 10-22 at 15:42, touching 55 files. The thirteen C3 configurations and the C6 default configuration compile successfully, but the on-hardware row still reads “to be verified.” C3 and C6 are RISC-V cores, and this path is now in place from package to main repo.
-
Six defect tickets opened this week, five of them memory and boundary safety; a single NVMe boot leaks about 1.1 MB of kernel heap (10-20 ~ 10-23): Six new tickets — #11902 (use-after-truncate in tmpfs), #11905 (cromfs directory name out of bounds), #11906 (Chinese Windows encoding), #11913 (raw DHCP option out-of-bounds read), #11917 (NFS out-of-bounds write), #11919 (NVMe heap leak) — of which all but the encoding issue are memory and boundary safety. #11919 leaks 1,156,872 bytes per boot on QEMU’s stock NVMe device, accumulating linearly with hotplug; the report cites CWE-401 and CVSS 3.1 4.9. The introducing commit for #11917 traces back to 2010, affecting all versions since v1.2.0.
-
RT-Thread Smart moves from batch proposals to a testable stage; fixes proposed for out-of-bounds issues in signals and device tree (10-18 ~ 10-22): The maintainer opened 13 proposals in two minutes (#11885 ~ #11897) between 19:35 and 19:36 on 10-18, covering enabling Smart on qemu-virt64, disabling SMP on riscv64, mounting ext4 and ptyfs over virtio-blk, splitting lwp syscalls, and 128MB DDR adaptation for K230D. Fixes for this week’s corresponding defects followed: lwp signal number validation (#11899), OFW device tree depth pre-check (#11901, changed to debug-gated after review), cromfs directory name bounds (#11911), and tmpfs use-after-truncate (#11910). On the libdl dynamic module defect, the maintainer stated that bounds checking can be fixed locally, but memory isolation requires moving to user mode.
-
Two independent scheduler paths converge on the same predicate; retesting a three-year-old case exposes a single-core double free (10-21): A community member posted three consecutive comments on the timeslice patch #6645, suspended since 2022, pulling it back into review; its predicate — “only insert at queue head when still running and preempted with timeslice not exhausted” — matches exactly the conclusion independently reached by this week’s new proposal #11907. However, #6645’s “deferred write of READY” implementation triggers a double free of the TCB when idle reclaims on the single-core path (the scheduler group’s utest crashes reliably), and isolation experiments show the problem is not in where YIELD is cleared. The recommendation is to proceed on the basis of #11907’s “save stat_before first, then decide.”
-
Mainline rhythm was “three days of silence, then a single wrap-up”: 7 commits and 6 proposals this week, four commits within three hours on 10-22 (10-19 ~ 10-23): Two on 10-19 (early rt_null registration #11884, K1 first version #11132), zero commits from 10-20 through the morning of 10-22, then four in a row from 15:42 to 18:00 on 10-22 (ESP32 #11870, ticket lock and K1 eight-core #11904, attachconfig #11908), and the clang-format rules proposal #11859 on 10-23 at 17:09. No movement on the release side: the latest tag and release artifacts remain v5.3.0 from 09-10; v5.4.0 has only the version macro and Kconfig defaults merged on 10-17, with no release notes or binaries.
-
Vendors advance in the same week: RT-Thread Ruibing V1.8.4 released with industrial-site fixes, GigaDevice fills in two building blocks — networking and UI — within 24 hours (10-21 ~ 10-22): Ruibing V1.8.4 was released on 10-21 (adds QY1503 encoder, MIPI RGB666, GPIO pull-up/pull-down, amp_device debug commands; fixes EtherCAT interrupt affinity, netstat hang under telnet, UART DMA baud rate), with the IDE upgraded to V1.5.62 in step; on the GigaDevice side, GD32VW553 entered the at_device package on 10-22, the GD32EmbeddedUI example entered the LVGL package index one day after its repo was created, and the Studio SDK index picked up Gino Pi (GD32H77D) 1.1.0 and PyOCD 0.3.1 the same day.
II. Kernel and Version Dynamics
Versions and Mainline
Date: 2026-10-19 ~ 2026-10-24 Source: Main repository releases page
- Official releases: No new releases or tags this week; the latest remains v5.3.0 released on 09-10. v5.4.0 still has no release notes, binaries, or pre-release tag. There were no signs of a “released” status this week, so the entire text is phrased as “version number bumped, not yet released.”
- Mainline commits: 7 commits on master this week, with 6 proposals merged (the K1 proposal itself contains 4 commits); organization-level pushes were concentrated in the main repository and the packages repository.
- Cadence characteristics: Zero commits for three consecutive days from 10-20 to the morning of 10-22; then four commits landed in a three-hour window from 15:42 to 18:00 on 10-22, all handled by the same maintainer; one more was added on 10-23 — this looks like a wrap-up after batched review rather than a rebound in development intensity.
- Release-day check (10-24): Re-checked the commit stream, releases page, and tags page; the end state matches the 10-23 daily report, with no new merges or releases.
This Week’s Merge List (7 commits / 6 proposals)
Date: 2026-10-19 ~ 2026-10-23 Source: Main repository master commit stream
- 10-19 16:53: #11884 moves the registration timing of the rt_null console device from INIT_DEVICE_EXPORT up to INIT_BOARD_EXPORT, 1 file +4/-1, so that the log port takes effect at power-on when configured as null; the author verified the boot output difference between uart0 and null configurations on qemu-vexpress-a9, and noted that AI assisted with the work.
- 10-19 18:49: #11132 SpacemiT K1 first-version BSP (173 files +53862/-12), bringing in three framework and architecture changes in the same batch: a RISC-V atomic compare-and-swap defect fix, a power-domain proxy naming correction, and DVFS OPP duplicate checking.
- 10-22 15:42: #11870 adapts ESP32-C3/C6 to ESP-IDF v6.1 and upgrades the RISC-V toolchain from gcc 11.2 to gcc 15.2 (55 files +4564/-333); the FreeRTOS-Wrapper changes were split out into a separate proposal.
- 10-22 17:59 (two commits): #11904 changes the RISC-V ticket spinlock to use atomic add and half-word unlock, and in the same batch changes K1’s core count from 4 to 8, updating the Chinese and English documentation and the board support matrix.
- 10-22 18:00: #11908 replaces 4 emoji status markers in tools/attachconfig.py with plain ASCII, preserving the existing ANSI colors; the change touches only 4 print lines and does not involve logic.
- 10-23 17:09 (after the Friday daily report cutoff, added during the release-day check): #11859 tightens clang-format rules, 2 files +83/-77 — on the rules side, comment alignment changes from Leave to Always, short functions and short lambdas are no longer allowed on a single line, short loops are forced to wrap, and src/thread.c serves as a formatting example. This proposal had two rounds of follow-up submissions since 10-16 and was wrapped up this Friday.
Security and Defects
Date: 2026-10-20 ~ 2026-10-23 Source: Issue #11919
- Six new issues: #11902 tmpfs sets ENOMEM when rt_realloc(data, 0) returns a null pointer but still returns success, so a legitimate ftruncate(fd, 0) frees the buffer first and then reports success (all versions since v5.0.2, reproduced on QEMU aarch64 and RP2350, claimed by the community on 10-20); #11905 cromfs does not bound the directory name length when reading directory entries, allowing reads past the directory entry buffer and hijacking the kernel program counter (since v5.0.0, both generations of the DFS implementation share the same origin, unclaimed); #11913 the raw-API DHCP server option traversal does not first check buf + 1 < end, allowing reads past the 1500-byte pbuf by up to 4 bytes (the socket implementation in the same directory already performs this check, which confirms the missing point); #11917 nfs_read uses the count returned by the server as the memcpy length, and the built-in cat with an 81-byte stack buffer can have its return address overwritten (introduced by a 2010 commit); #11919 NVMe scanning uses the namespace count reported by the device as the loop upper bound, allocating 4480 bytes before each command is sent, and neither failure path frees it. Also, #11906 is a console encoding defect under Chinese Windows, classified under the toolchain side (see Section III).
- Five fix proposals: #11899 restricts the signal number to 1 through 64 at the sys_sigaction entry and adds the same check inside lwp_signal_action; #11901 pre-traverses to find the maximum depth before device tree expansion and rejects depths over 63 (changed after review to be gated by a debug switch); #11911 constrains the cromfs directory name length; #11910 fixes the use-after-free after zero-length truncation in tmpfs; #11918 makes both the 9PFS read and getdents paths converge the message length to the actual number of bytes received, with the author reproducing it using bsp/simulator plus ASan and a fake 9P server (before the fix, use-after-poison was triggered, with the read position landing at byte 8,334,515 of an 8 MB heap region).
- Still unresolved: #11878 lwip-dhcpd lease pool exhaustion infinite loop, #11905, #11913, and #11917 have no claimants, of which #11917 only had a status refresh this period.
- Common pattern: The common form of the five security defects this week is “device- or server-controlled metadata being used directly as the length or upper bound of a memory operation.” The same researcher reported the NFS, NVMe, and 9PFS issues within two days, and stated that the clues trace back to older issues in mtd-cfi and usbhost. Fixing them one by one costs more than investigating by family.
Review Queue Observations
Date: 2026-10-19 ~ 2026-10-23 Source: PR #11907
- Scheduling and kernel semantics: #11907 fixes the ready order of same-priority threads (4 files +255/-22, including a new utest); measured results change the semaphore wakeup order from B-then-A to A-then-B, and the startup order from D-then-C to C-then-D; #11909 merges the receive timeout event that was silently dropped in the serial V1 framework into the receive indication callback (a one-line branch), affecting the two domestic board supports CH579M and SWM341 that rely on idle timeout for frame splitting; #11900 fixes netdev’s ping failing to record the minimum latency when the count is 1.
- Review of an older scheduling case: #6645’s discriminant is consistent with #11907, but its implementation approach causes a double free of the TCB on the single-core path; the author provides isolation experiments and SMP supplementary test data, and the conclusion recommends #11907 as the baseline to move forward.
- Peripherals and architecture: #11912 adds OSPI and OctaFlash at the component layer, integrates them into SFUD and covers read, write, erase, and status query, with a generic STM32 OctoSPI driver and L4 series board configuration, 32 files +3728/-956; the author reports that both 1-1-1 and 8-8-8 modes are recognized on real hardware; #11914 fixes the GIC information print format specifier for Cortex-A (%p passed an integer is undefined behavior), 2 files +64/-40; #11915 fixes four defects in the relocatable module loading path (the BSS allocation pointer does not advance, section symbol relocation lacks link address correction, SHN_COMMON is silently skipped, and ET_REL modules do not build a symbol table so dlsym always fails), 2 files +147/-9, verified with three test modules on qemu-vexpress-a9.
- Still in process: #11844 (ESP32-S3 board support) is stuck on completing package dependencies, with the last reply on 09-29; #11860 (aarch64 interrupt acknowledge) — the author says another test version is coming; #11864 (IAR implicit declaration) — review requires board configuration and before/after output records; #10096 (on-demand compilation) was suggested to be rebased first; #9941 was confirmed by actual testing that scons –attach works on the mainline, and is suggested to be closed.
III. Ecosystem and Vendor Adaptation
Vendor BSPs and Drivers
Date: 2026-10-19 ~ 2026-10-23 Source: PR #11132
- SpacemiT: The first version of the K1 BSP was merged (#11132); the default core count was changed from 4 to 8 on 10-22, SPI and QSPI moved from “ported, under validation” to officially supported, and the previously pending SPI NOR read-ID issue was closed as a result; the board support table in the repository root added a section for this vendor, with GPIO, UART, ADC, I2C, SPI, watchdog, timer, PWM, RTC, SDIO, PCI, DMA, Ethernet, audio, display, and crypto columns all marked as supported. A spacemit-k1 build leg was added to CI. The BSP embeds RCPU firmware taken from the vendor’s Linux image (for HDMI audio service); the repository notes provide checksums and flag the need to confirm redistribution terms — worth tracking going forward.
- Espressif: ESP32-C3/C6 adaptation to ESP-IDF v6.1 and GCC 15.2 was merged (#11870); ESP32-S3 board support (#11844) still awaits dependency completion.
- GigaDevice: GD32VW553 entered the at_device package (10-22 09:21, +68/-0), with configuration options covering initialization mode, AT socket switch, network device name wifi0, AT client uart4, baud rate from 9600 to 2000000, reset pin, and active level; the chip is RISC-V based at 160 MHz, integrating 2.4 GHz Wi-Fi 6 and BLE 5.2, 4 MB Flash, and 320 KB SRAM. The GD32EmbeddedUI example repository was created (10-21) and entered the LVGL package index one day later (10-22 11:17, +57/-0).
- STMicroelectronics: The OSPI proposal (#11912) additionally adds a generic STM32 OctoSPI low-level driver and L4 series configuration headers, supplements the stm32l4r9-st-eval board with OCTOSPI1 pins, clock, and MSP configuration, and incidentally fixes a .bss overlap caused by that board’s heap and linker layout.
- Allwinner: A proposal for a D1s QEMU run script (#11903) calls an emulated machine from a separate repository (single core, 64 MB RAM, two UARTs, two storage controllers); review did not directly accept the script form, suggesting instead a unified target-machine subdirectory with AI-oriented build instructions; the author has not yet replied.
Software Packages and Middleware
Date: 2026-10-21 ~ 2026-10-23 Source: RT-Thread-packages/esp-idf PR #18
- Full-package esp-idf upgrade (10-21): Upgraded from 5.1 to 6.1.0 and merged, with three structural RT-Thread-side changes relative to upstream v6.1 — a new components/rtthread (C3/C6 porting layer, rtconfig.h, board and context, CMake and linker scripts), a new components/riscv/vectors_rtthread.S, and CONFIG_IDF_RTOS_RTTHREAD switch paths added in FreeRTOS, esp_system, and elsewhere; the menuconfig entry is “Component config → FreeRTOS → Extra → Replace FreeRTOS with RT-Thread”.
- at_device and LVGL (10-22): Two package entries, GD32VW553 and GD32EmbeddedUI demos, were merged on the same day by the same author, adding networking and UI respectively.
- AI assistant package configuration changes (merged 10-23): A single +32/-4 change to ai/Agent’s Kconfig switches the default model from DeepSeek-V4-Pro to deepseek-flash and the default service endpoint from SiliconFlow to api.deepseek.com, expands the multimodal switch into three categories — image, file, and audio — and adds two new configuration items: a local lightweight speech recognition switch and an STT file server address. This entry falls after the Friday daily-report cutoff and is a release-day verification addendum.
- Package organization side: GD32EmbeddedUI-demos was created by the maintainer on 10-21 and currently has only one initial commit; one day later it was hooked into the package index, with the source still pointing to the original repository — a lightweight index mount rather than a code copy.
Toolchain and Development Environment
Date: 2026-10-21 ~ 2026-10-23 Source: Studio SDK index commit stream
- The Studio SDK index actually had three updates this week (release-day verification addendum): On 10-21 it added PyOCD 0.3.1 (259 MB, fixing a GD32H77D download issue, merged the same day via PR #834); on 10-22 it added the Gino Pi (GD32H77D) SDK 1.1.0 (152 MB) and the Renesas RA8P1 Titan Board mini SDK 1.2.2 (346 MB, adding OpenMV support). Several daily reports this week judged the repository as “stalled at 10-10” based on the organization page, which does not match actual per-repository commit-stream measurements; the commit stream is recorded here as authoritative.
- Build and formatting: The issue where scons –attach threw an encoding exception and aborted the entire command on Chinese Windows (code page 936) because the prompt contained emoji was fixed on 10-22 (#11908); the three usages share the same function, and it was previously completely unusable in Chinese environments. The clang-format rules proposal (#11859) was merged on 10-23, tightening the rules overall.
- Env and official skills repositories were quiet this week: Env’s latest commit is at 10-17 (v2.0.3 version switch and WebUI documentation navigation), rtthread-skills and smart-build are at 10-18, rtthread-specification is at 10-17, and the packages index was at the 10-14 chip vendor SDK index update for the early part of the week.
Verification Notes
- The main repository’s releases page and tags page had no new versions this week; the official website’s news list page is dynamically rendered on the front end, so scraping only yields an empty loading shell — news data is taken from the official API.
- Within the search window, only one repository in the topic:rt-thread ecosystem had pushes: zlgopen/awtk, a general-purpose embedded GUI with no specific RT-Thread association; several other newly created personal repositories (at_esp_stm32, rt-thread-zephyr-smp-example, etc.) have single-digit star counts and do not constitute reportable project activity.
- SpacemiT V100 server chip documentation and AI SDK updates are vendor-side background and not part of the RT-Thread topic, so they are not listed as separate entries.
IV. Official and Community Activities
Official Channels
Date: 2026-10-19 ~ 2026-10-23 Source: RT-Thread official news API
- News API remains offline for a fourth month: The latest entry in the organization-category archive is still dated 2026-06-17, meaning the feed has been down for over four months. This week’s per-run checks returned between 5 and 25 items, a difference attributable to API pagination; the latest entry never changed. The official news list page is rendered dynamically on the front end, so scraping yields only a loading state.
- Primary release channel: Product and event information continues to debut via WeChat official accounts, the community forum, and GitHub; the gap in the company’s own channels persisted this week.
Vendor Releases and Livestreams
Date: 2026-10-21 Source: EE Times China: RuiChing Platform V1.8.4 released
- RuiChing V1.8.4: The release post went live on 10-21 at 11:50, with 6 additions and 4 fixes on the SDK side; RuiChingStudio IDE was bumped to V1.5.62 in tandem. The new capabilities center on RC3506 peripherals and display: the QY1503 absolute rotary encoder now runs over the SSI interface with a quadrature-pulse PWM output example, MIPI DSI gains RGB666 adaptation, an interface for controlling display initialization timing is exposed, GPIO adds pull-up and pull-down input modes, and an amp_device debug command is added; on the IDE side, project creation, build, and J-Link/DAP-Link download and debug support are added for the GD32H7 series.
- Livestream: The release livestream was scheduled for 10-21 at 20:00 with a live demo on RC-Pi-3506. No recap post or recording note appeared within the window, so this issue records only that the version shipped, without assessing its impact.
Community Projects and Competitions
Date: 2026-10-19 ~ 2026-10-20 Source: Community post: Greenhouse environment monitoring terminal
- Three new posts this week: On 10-19, a greenhouse environment monitoring terminal based on an ArtInChip D12X development board (DAMO XuanTie E907, RT-Thread 4.1.1 plus LVGL 8.3.1, fully offline); on 10-20 at 08:31, two posts published simultaneously — a dual-board collaborative smart terminal (NOVOSENSE NS800RT7P65 handling display and business logic, Espressif ESP32-C3 as the networking bridge) and an Edgi-Talk edge AI human detection alarm system (Infineon PSoC E84, with the M55 running RT-Thread, the M33 managing secure boot, and the NPU performing fixed-point inference).
- One media-side post: On 10-20, EE Times China published an RT-Thread AIoT Competition merit-award project that uses the Edgi-Talk onboard microphone for four-class acoustic classification of crop pests, extracting Mel filterbank energies and exporting a fixed-point model to the edge device; detection of a pest triggers spraying, entirely offline.
- Ongoing maintenance of earlier projects: Threads on the pollination robot, the sanitizing robot, the Shuheng smart-care robotic arm, and the GD32H759IM USB secondary display received only editorial updates within the window and are not covered again in this issue.
- Competition density: Projects from the 2026 Embedded Competition remain the mainstay of community content; all three new posts this week came from that competition or its AIoT-derived track.
V. Industry Applications and Business Developments
Facility Agriculture and Environmental Monitoring
Date: 2026-10-19 ~ 2026-10-20 Source: Community article: Greenhouse environment monitoring terminal
- Greenhouse monitoring terminal: Aimed at small and household greenhouses, with a DAMO XuanTie E907 (RV32, 396 MHz) as the main controller, 8 MB PSRAM and a 480×272 touchscreen, connecting only DHT11 and BH1750 sensors, with no Wi-Fi and no cloud platform dependency; 6 threads are layered across 12 to 26 priority levels, two message queues feed alarms and the UI respectively, thresholds are written asynchronously to LittleFS via semaphores, the UI switches between four cached pages, alarms use 3 consecutive confirmations plus hysteresis, and 12 MSH diagnostic commands are provided.
- Pest voiceprint recognition: Four-class classification (cicada, cricket, noise, unknown), 1-second window, 200 ms step, 16 kHz sampling, about 2 min 15 s of accumulated samples, split 82:18 into training and test sets, 100 training epochs followed by export of a fixed-point model; the author has released documentation and code.
On-Device AI and Dual-Board Collaboration
Date: 2026-10-20 Source: Community article: Edgi-Talk human detection alarm system
- Human detection alarm: The camera outputs 424×240 via USB host, inference runs once every 5 frames, input is 320×320 8-bit fixed-point, up to 8 candidate boxes, with both confidence and overlap-suppression thresholds at 0.45; alarms are confirmed by 3 consecutive hits and cleared by 5 consecutive misses, storage writes, network reporting and audio playback each have their own queue and do not occupy the video thread, and network loss does not affect local detection or sound-and-light alarms.
- Dual-board collaborative smart terminal: The M7 side runs RT-Thread 5.3.0 and LVGL 9.1.0, implements a 3×3 desktop and 14 applications, and mounts a small filesystem on 16 MB external NOR for power-loss persistence; the C3 side handles wireless connectivity, time synchronization, reporting and web-based upgrades. The two boards communicate over a single serial link, which the author judged insufficient bandwidth for full-screen pixel transfer, hence no video playback.
Industrial Site and Business Developments
Date: 2026-10-21 ~ 2026-10-22 Source: Ruiching changelog
- Industrial site fixes: All four fixes in Ruiching V1.8.4 target field issues — EtherCAT tasks and interrupts were previously not bound to the same CPU, causing occasional access conflicts and crashes during multitasking switches; remote execution of netstat over telnet would block with no response; the UART DMA example failed to set the baud rate; and the 4.3-inch screen’s backlight PWM was raised to improve outdoor visibility. Combined with the EG1200 industrial gateway virtual network port and ROS2 hub-motor motion control solution reported in the previous issue, this product line this week shows two parallel tracks: “networking on the gateway side” and “real-time performance on the motion control side.”
- Business developments: No new commercial deployments, financing, or order-related reports this week. Vendor activity centered on version iterations and package-level groundwork — Ruiching upgraded both its version and IDE, and GigaDevice within 24 hours filled in two foundational pieces at once: connectivity (GD32VW553) and UI (GD32EmbeddedUI). The cadence looks more like groundwork for a complete solution than isolated submissions.
VI. Trend Observations
- The entry of application-processor-class RISC-V platforms into the mainline is the week’s most significant structural change: K1 was merged in the form of S-mode, MMU and multicore SMP, with PCIe/NVMe, HDMI and multimedia acceleration, marking RT-Thread’s transition on high-end RISC-V platforms from “able to boot” to “peripherals complete”; drivers are separated into a bsp/spacemit/dm layer, and the BSP directory is beginning to show a “vendor layer plus board layer” division of labor, with K1 merely the first user. Such platforms will continue to expose generic code defects in reverse — the three fixes to atomic compare-and-swap, power domain naming, and DVFS duplicate checking brought out in the same batch this week are evidence.
- Multicore correctness became the week’s technical mainline: The livelock surface of ticket locks was eliminated at the root, the expected value of atomic compare-and-swap is no longer overwritten by the status register, and same-priority ready ordering was restored to first-come-first-served — all three are issues long masked by default behavior, and all were located within the same week. On the scheduler side, there is also the case of “two implementations unaware of each other converging on the same discriminant,” with cross-proposal horizontal comparison replacing discussion of single patches.
- Security audits now show a family pattern, and the cost of patch-by-patch fixing is exceeding the benefit: The common form of this week’s five security defects is trusting externally controllable metadata as memory operation lengths or upper bounds, involving five components: NFS, NVMe, 9PFS, cromfs, and DHCP. Reporters now supply the introducing commit, affected version range, and reproduction environment, lowering the cost of fixes; but duplicate defects caused by the same origin of the v1 and v2 DFS implementations (the cromfs case has two copies, neither constrained) suggest that family-based triage and structural convergence are needed.
- The mainline shows a “silent—concentrated wrap-up” rhythm, and the release process has not yet started: After three consecutive days of zero commits, four commits landed within three hours, all handled by the same maintainer, looking more like batch processing after accumulated reviews. Since 10-17, v5.4.0 has only version macros and Kconfig defaults, with no tag, no binaries, and no release notes; this “version number first, release artifacts lagging” state has persisted for a week, and the next issue should verify against the release page and ChangeLog whether the gate has truly opened.
- Two parallel tracks in the toolchain: availability of the new foundation and localization details: On one side, ESP-IDF 6.1 plus GCC 15.2 and the CONFIG_IDF_RTOS_RTTHREAD kernel replacement channel are connected, leaving a path for future RISC-V product lines beyond C3/C6; on the other, three updates — emoji under Chinese Windows rendering an entire command unusable, tightened clang-format rules, and the Studio SDK index — are “low technical content but directly affecting the onboarding experience” fixes. The latter often yields higher marginal benefit for domestic developers.
- The division of labor between official channel silence and community carrying is further solidified: The news API has been dormant for over four months, and this week almost all external information was carried by GitHub, forum competition entries, and industry media, with Ruiching’s version release also going through media articles rather than its own channels. This pattern has remained unchanged for two consecutive weeks, while community content density (three works this week, one to two posts per day) has instead taken on the narrative function for the official side.
Appendix: Sources and Verification
Source List
| Issue | Date | Effective Window | Entries Included |
|---|---|---|---|
| Issue 1 | 2026-10-19 (Mon) | 10-16 08:00 to 10-19 08:00 (72 hours) | 16 |
| Issue 2 | 2026-10-20 (Tue) | 10-19 08:00 to 10-20 08:00 (24 hours) | 15 |
| Issue 3 | 2026-10-21 (Wed) | 10-20 08:00 to 10-21 08:00 (24 hours) | 17 |
| Issue 4 | 2026-10-22 (Thu) | 10-21 08:00 to 10-22 08:00 (24 hours) | 15 |
| Issue 5 | 2026-10-23 (Fri) | 10-22 08:00 to 10-23 08:00 (24 hours) | 11 |
- All five daily issues are present with no missing dates; the Monday issue uses a 72-hour window spanning the weekend, starting from the previous issue’s cutoff, so content after 10-16 08:00 overlaps with the Friday segment of the previous weekly report (10-12 to 10-16) and is not repeated here.
- The weekly report body merges same-topic entries from the five daily issues, so its entry count differs from the table above; this is normal consolidation.
Verification Notes
- Release-date verification: On 2026-10-24, the master commit stream, releases and tags, RT-Thread/packages, env, rtthread-skills, smart-build, and the Studio SDK index commit streams were each checked individually, with verification completed before 17:00 on 10-24.
- Late-added entries: The clang-format proposal (#11859) merged at 10-23 17:09 and the ai/Agent package configuration change merged at 10-23 10:12 both fall after the Friday daily report cutoff (10-23 08:00) and are flagged separately per the verification method; in addition, the three Studio SDK index updates between 10-21 and 10-22 were discovered during this verification, recorded as silent on the daily report side, and logged per the commit stream.
- Version wording: For v5.4.0, only the version macro’s measured value exists; the official Release, tags, and ChangeLog have not been updated, so the text consistently states “version number bumped, not yet released.”
- Excluded items: SpacemiT V100 server chip documentation and AI SDK updates (vendor-side background, outside this topic), zlgopen/awtk (general-purpose GUI), several personally created repos with single-digit stars (at_esp_stm32, rt-thread-zephyr-smp-example, etc.), and the Ruiching livestream recording and recap (not found within the window).
- Channel limitations: Multiple Google News queries in Chinese and English and HN Algolia this week returned no valid RT-Thread-related articles; most HN candidates were literal false matches on “threads.” The official website’s news list page is front-end rendered, so news data is based on the official API.
Full Source List
- [1] PR #11132 (SpacemiT K1 first BSP) — https://github.com/RT-Thread/rt-thread/pull/11132
- [2] bsp/spacemit/k1 README — https://github.com/RT-Thread/rt-thread/blob/master/bsp/spacemit/k1/README.md
- [3] K1 BSP driver README (embedded firmware source and verification) — https://github.com/RT-Thread/rt-thread/blob/master/bsp/spacemit/k1/drivers/README.md
- [4] K1 BSP merge commit — https://github.com/RT-Thread/rt-thread/commit/1c801efabc
- [5] libcpu/risc-v/common/atomic_riscv.c — https://github.com/RT-Thread/rt-thread/blob/master/libcpu/risc-v/common/atomic_riscv.c
- [6] PR #11884 (move rt_null earlier to BOARD initialization) — https://github.com/RT-Thread/rt-thread/pull/11884
- [7] Issue #11472 (null console device requirement) — https://github.com/RT-Thread/rt-thread/issues/11472
- [8] PR #11904 (RISC-V ticket lock and K1 octa-core) — https://github.com/RT-Thread/rt-thread/pull/11904
- [9] libcpu/risc-v/common/cpuport.c — https://github.com/RT-Thread/rt-thread/blob/master/libcpu/risc-v/common/cpuport.c
- [10] bsp/README.md (board support matrix) — https://github.com/RT-Thread/rt-thread/blob/master/bsp/README.md
- [11] PR #11907 (same-priority ready order) — https://github.com/RT-Thread/rt-thread/pull/11907
- [12] Issue #8459 (ready queue insertion order) — https://github.com/RT-Thread/rt-thread/issues/8459
- [13] PR #6645 (time-slice scheduling patch, review comments) — https://github.com/RT-Thread/rt-thread/pull/6645
- [14] PR #11909 (serial receive timeout event) — https://github.com/RT-Thread/rt-thread/pull/11909
- [15] Issue #8143 (receive timeout event not implemented) — https://github.com/RT-Thread/rt-thread/issues/8143
- [16] PR #11900 (netdev ping latency statistics) — https://github.com/RT-Thread/rt-thread/pull/11900
- [17] Issue #11902 (tmpfs truncate dangling pointer) — https://github.com/RT-Thread/rt-thread/issues/11902
- [18] Issue #11905 (cromfs directory name out-of-bounds) — https://github.com/RT-Thread/rt-thread/issues/11905
- [19] Issue #11906 (GBK console encoding anomaly) — https://github.com/RT-Thread/rt-thread/issues/11906
- [20] Issue #11913 (raw DHCP option out-of-bounds read) — https://github.com/RT-Thread/rt-thread/issues/11913
- [21] Issue #11917 (NFS read out-of-bounds) — https://github.com/RT-Thread/rt-thread/issues/11917
- [22] Issue #11919 (NVMe kernel heap leak) — https://github.com/RT-Thread/rt-thread/issues/11919
- [23] PR #11918 (9PFS length clamping) — https://github.com/RT-Thread/rt-thread/pull/11918
- [24] Issue #11289 (9PFS out-of-bounds read) — https://github.com/RT-Thread/rt-thread/issues/11289
- [25] PR #11899 (lwp signal number validation) — https://github.com/RT-Thread/rt-thread/pull/11899
- [26] Issue #11882 (sys_sigaction signal out-of-bounds) — https://github.com/RT-Thread/rt-thread/issues/11882
- [27] PR #11901 (OFW device tree depth pre-check) — https://github.com/RT-Thread/rt-thread/pull/11901
- [28] Issue #11879 (fdt expansion nesting overflow) — https://github.com/RT-Thread/rt-thread/issues/11879
- [29] PR #11911 (cromfs directory name boundary) — https://github.com/RT-Thread/rt-thread/pull/11911
- [30] PR #11910 (tmpfs use-after-truncate fix) — https://github.com/RT-Thread/rt-thread/pull/11910
- [31] Issue #11898 (libdl relocation out-of-bounds write) — https://github.com/RT-Thread/rt-thread/issues/11898
- [32] Issue #11878 (lwip-dhcpd lease pool exhaustion) — https://github.com/RT-Thread/rt-thread/issues/11878
- [33] PR #11912 (OSPI and OctaFlash component-layer support) — https://github.com/RT-Thread/rt-thread/pull/11912
- [34] PR #11914 (GIC print format specifier) — https://github.com/RT-Thread/rt-thread/pull/11914
- [35] PR #11915 (dynamic module uninitialized global variables) — https://github.com/RT-Thread/rt-thread/pull/11915
- [36] Issue #5705 (module uninitialized global variable anomaly) — https://github.com/RT-Thread/rt-thread/issues/5705
- [37] PR #11903 (Allwinner D1s emulator script) — https://github.com/RT-Thread/rt-thread/pull/11903
- [38] PR #11870 (ESP32 C3/C6 adaptation to ESP-IDF v6.1) — https://github.com/RT-Thread/rt-thread/pull/11870
- [39] PR #11844 (ESP32-S3 board support) — https://github.com/RT-Thread/rt-thread/pull/11844
- [40] PR #11908 (attachconfig emoji to ASCII) — https://github.com/RT-Thread/rt-thread/pull/11908
- [41] PR #11859 (clang-format rule consolidation) — https://github.com/RT-Thread/rt-thread/pull/11859
- [42] PR #11860 (aarch64 interrupt acknowledge) — https://github.com/RT-Thread/rt-thread/pull/11860
- [43] PR #11864 (implicit declaration of log functions) — https://github.com/RT-Thread/rt-thread/pull/11864
- [44] PR #10096 (on-demand compilation option) — https://github.com/RT-Thread/rt-thread/pull/10096
- [45] Issue #9941 (combining on-demand compilation config with build) — https://github.com/RT-Thread/rt-thread/issues/9941
- [46] Main repo master commit stream — https://github.com/RT-Thread/rt-thread/commits/master
- [47] Main repo releases page — https://github.com/RT-Thread/rt-thread/releases
- [48] Main repo tags page — https://github.com/RT-Thread/rt-thread/tags
- [49] RT-Thread-packages/esp-idf PR #18 (upgrade to ESP-IDF v6.1) — https://github.com/RT-Thread-packages/esp-idf/pull/18
- [50] RT-Thread-packages PR #2047 (at_device GD32VW553) — https://github.com/RT-Thread-packages/packages/pull/2047
- [51] RT-Thread-packages PR #2048 (LVGL GD32EmbeddedUI demos) — https://github.com/RT-Thread-packages/packages/pull/2048
- [52] GD32VW553 product page (GigaDevice) — https://www.gigadevice.com/product/mcu/wireless-mcus/gd32vw553-series
- [53] GD32EmbeddedUI-demos repo — https://github.com/RT-Thread-packages/GD32EmbeddedUI-demos
- [54] ai/Agent package config commit (local STT and default model adjustments) — https://github.com/RT-Thread/packages/commit/7fe57a50907a57bcdbfb07d866d3758781b62e29
- [55] Studio SDK index commit stream — https://github.com/RT-Thread-Studio/sdk-index/commits/master
- [56] Studio SDK index: RA8P1 Titan Board mini 1.2.2 — https://github.com/RT-Thread-Studio/sdk-index/commit/f1a38c59387799ed0cd6681b5a372602e7952c28
- [57] Studio SDK index: Gino Pi (GD32H77D) 1.1.0 — https://github.com/RT-Thread-Studio/sdk-index/commit/8be773637f62cdb20983b33feb367884ec2cd8a2
- [58] Studio SDK index: PyOCD 0.3.1 — https://github.com/RT-Thread-Studio/sdk-index/commit/a0ae678e3de21903421ff92ac83c4aef42a84862
- [59] RT-Thread/env tool repo — https://github.com/RT-Thread/env
- [60] RT-Thread/rtthread-skills — https://github.com/RT-Thread/rtthread-skills
- [61] RT-Thread/smart-build — https://github.com/RT-Thread/smart-build
- [62] RT-Thread/rtthread-specification — https://github.com/RT-Thread/rtthread-specification
- [63] RT-Thread/packages package index — https://github.com/RT-Thread/packages
- [64] RT-Thread official news API — https://club.rt-thread.org/api/index/getList?type=rt_org
- [65] Community forum article API — https://club.rt-thread.org/api/index/getList?type=article
- [66] Community article: RT-Thread-based greenhouse environment monitoring terminal — https://club.rt-thread.org/api/index/getContent?id=5efde4dba301b2ea
- [67] Community article: dual-board collaborative smart terminal — https://club.rt-thread.org/api/index/getContent?id=ed284fe924639b32
- [68] Community article: Edgi-Talk human detection alarm system — https://club.rt-thread.org/api/index/getContent?id=7066e68a89ad6ac5
- [69] EET-China: pest voiceprint recognition in practice — https://www.eet-china.com/mp/a532461.html
- [70] EET-China: Ruiching platform V1.8.4 released — https://www.eet-china.com/mp/a532671.html
- [71] EET-China: in-wheel motor ROS2 solution and livestream schedule — https://www.eet-china.com/mp/a531071.html
- [72] Ruiching documentation center — https://www.rt-thread.com/ruiching/document/site/
- [73] Ruiching changelog — https://www.rt-thread.com/ruiching/document/site/changelog/summary/
- [74] Community article: Renhua intelligent pollination robot — https://club.rt-thread.org/api/index/getContent?id=3028bc2634b2b89d
- [75] Community article: extracting the HardFault crash scene — https://club.rt-thread.org/api/index/getContent?id=9834ccd63b766dfd
Data sources: Daily RT-Thread updates (five issues from 2026-10-19 to 2026-10-23) and this cycle’s release-date verification; the reporting period is 2026-10-19 to 2026-10-23. Suggested next weekly report period: 2026-10-26 to 2026-10-30.