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
Without CXX = rtconfig.CXX the scons Environment falls back to the
default host 'g++', and CXXFLAGS stays an empty CLVar, so the C++
group flags appended by DefineGroup end up as a single unquoted
argument and the build fails as soon as RT_USING_CPLUSPLUS is on:
g++: error: -fno-exceptions -fno-rtti ... -Wl,--gc-sections:
linker input file not found: No such file or directory
Found by the CI C++ ctor (.init_array) check.
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
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.
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.
Pass -mpoke-function-name to the compiler and assembler when
RT_BACKTRACE_FUNCTION_NAME is enabled for the Cortex-A9 QEMU BSP.
Keep the BSP configuration opt-in so users can enable symbolized
backtraces through menuconfig without changing the default build.
The flag is appended through CCFLAGS and ASPPCOM after the build
environment is created instead of concatenating it into
CFLAGS/CXXFLAGS/ASFLAGS: when the toolchain is selected with
--exec-path, PrepareBuilding() reloads rtconfig and
_apply_exec_path_override() overwrites those variables, which would
silently drop the option. The build still succeeds but function names
are missing from the text section, leaving backtraces without usable
frames.
Example backtrace in QEMU (vexpress-a9, RT_BACKTRACE_FUNCTION_NAME=y,
fault triggered from msh through cmd_fault -> fault_level1 ->
fault_level2 -> fault_level3):
backtrace:
0x600475a8 @ fault_level3
0x600475dc @ fault_level2
0x60047608 @ fault_level1
0x60047630 @ cmd_fault
0x6006ca80 @ _msh_exec_cmd
0x6006cb3c @ msh_exec
0x600717b4 @ finsh_thread_entry
Signed-off-by: Hui Su <3164683437@qq.com>
Enable RT_USING_HW_STACK_GUARD on Cortex-M4, which was previously only
available on Cortex-M7 and Cortex-M33.
Core porting (libcpu/arm/cortex-m4/):
- Add mpu.c/mpu.h/mputype.h aligned with the Cortex-M7 MPU layer. The only
difference is the default memory type attribute: Cortex-M4 has no L1 cache,
so the cacheability bits are reduced to three cases.
- Add rt_hw_stack_guard_init() to cpuport.c.
- Add missing #include <rtconfig.h> to context_gcc.S and invoke
rt_hw_mpu_table_switch() in the PendSV context switch path.
- Update SConscript to exclude mpu.c when memory protection is disabled.
BSP reference (bsp/stm32/stm32f407-fk407m2-zgt6/):
- board.h: include rtthread.h and define NUM_STATIC_REGIONS.
- board.c: define static_regions[] marking the Flash region read-only,
guarded by RT_USING_MEM_PROTECTION so it is not enabled by default.
* updated template files, conifg files and script files to support hypperram, multicore kickoff, rpmsg-lite, netc, cherryusb and ethercat.
* updated different link files of GCC, IAR and KEIL, for supporting multicore kick-off and different loading methods
* Updated .ini files to support debugging in keil. And updeated .mac files to support deugging in iar.
* Updated template files, conifg files and script files of CM7 to support hypperram, multicore kickoff, rpmsg-lite, netc, cherryusb and ethercat.
* Updated different link files of GCC, IAR and KEIL of CM7 project, for supporting multicore kick-off and different loading methods.
* Modify LittleFS to use the last 1 MB of flash and update CM7 support for LittleFS on QSPI flash.
* Updated different link files of loading to hyperram.
* Updated .ini files of CM7 to support debugging in keil. And updeated .mac files of CM7 to support deugging in iar.
* Remove Keil projects and keep templates only.
* Remove RAMFUNC due to IAR compilation issues, and use linker configuration to place all flash operation code in RAM.
* Add related code to support kick-offing CM7 and rpmsg-lite.
* Add codes to support cherryUSB for CM33 and CM7.
* Add mnt.c to support littleFS for CM7.
* Add codes to support etherCAT for CM7.
* Add codes to support USART12 for RT1180.
* Modify the drv_uart_v2.c to fix some bug to make it can work in CM33, but still cannot work in CM7. Will continue to update in next version.
* Updated README with both Chinese and English versions.
* Move the EtherCAT code into the packages\nxp-imxrt-sdk-latest.
* Remove EtherCAT-related sources, keep only SConscript.
* updated ci.attachconfig.yml for cm33 and cm7 projects.
* Fixed BSP_ROOT path error in rtconfig.py.
* Added drv_netc.c and updated SConscript for netc.
* Updated cherryusb_port.c to avoid worning.
* Updated sconscript to locate multicore directory in packages for header inclusion.
* Updated cm33/board/board.c to avoid worning when enable cm33_kickoff_cm7.
* Deleted peripheral.ethercat, because the related protocol stack has not been uploaded. And added CONFIG_BSP_USING_GPIO=y for Peripheral.netc.:
* Removed the SConscript of multicore and ethercat to packages.
* Added CONFIG_BSP_USING_GPIO=y to Peripheral.hyperflash_dma.
* Added CONFIG_BSP_USING_GPIO=y for Peripheral.hyperflash.
* Reformat code according to coding standards.
* Reformat code according to coding standards.
* Added features of RTC, CAN, I2C DMA, SPI and SDIO for CM33.
* Updated flexspi_port.h to support using flexspi api only.
* Added ci.attachconfig of UART, RTC, CAN, I2C DMA, SPI, DWT and SDIO for CM33.
* Added features of RTC, CAN, I2C DMA, SPI and SDIO for CM7.
* Added ci.attachconfig of UART, RTC, CAN, I2C DMA, SPI, DWT and SDIO for CM7.
* Added driver of DWT.
* Added driver of flexCAN for RT1180.
* Added driver of i2c dma for RT1180.
* Added driver of lpspi and dma for RT1180.
* Added driver of sdio for RT1180.
* Added driver of RTC for RT1180.
* Updated driver of drv_uart.c and fixed some bugs in drv_uart_v2.c.
* Updated README of imxrt1180-nxp-evk.
* Reformat codes according to tools/ci/clang_format_check.py
* fix: use unsigned shift to avoid UB in drv_can.c
* Removed unnecessary build artifacts and test files.
* bsp/nxp/imxrt: fix CI build errors for non-RT1180 BSPs
* bsp/nxp/imxrt: clang-format drv_lpadc.c to fix CI format check
* Fixed standalone driver compilation errors and code formatting issues.
* Fixed CI attach failures by updating the default linker script for CM7-only ITCM builds with large .text sections.
* [bsp][imxrt] fix BBNSM GPR epoch truncation by storing epoch in two 32-bit GPRs
* [bsp][imxrt] define DBG_TAG/DBG_LVL before rtdbg.h in cm7 mnt.c
* [bsp][imxrt1180] fix(sdcard): add timeout to sd0 wait loop in mnt.c
Keep thread timer ownership when timer stop races with an in-flight timeout callback, and consume IPC resources only after a waiter is resumed successfully.
Complete ownership cleanup in the generic and RT-Smart channel timeout callbacks. Add deterministic scheduler and LWP regressions for Event, Semaphore, Mailbox, Message Queue, sender, and receiver paths.
Improve the Rust build integration across core, applications, components, and module examples. Fix build failure propagation, target and feature handling, linker flags, example configuration semantics, and add STM32 CI attach coverage.