Releases: RT-Thread/rt-thread
RT-Thread v5.1.0 released
Change log since v5.0.2 release:
Kernel
- kservice: Use C89 format to avoid warnings; Fix start address misalignment issue; Remove malloc scheduler lock, fix incorrect use of memheap lock; Add MT-safe console support
- rtdef: Add rt_always_inline operation function
- cpu: Optimize CPU scheduler
- thread: Remove thread reference count
- rthw: Add rt_hw_interrupt_uninstall declaration
- Add hooks for malloc service; Support hook lists (add multiple hooks in a single hook node)
- Optimize system scheduler; Improve rt_vsnprintf
- Prohibit nested blocking IPC interfaces such as free, malloc inside spinlock
- Rename RT_DEBUGING_INIT to RT_DEBUGING_AUTO_INIT
- Define standard spinlock to require scheduler to be disabled, all external spinlocks use disable/enable scheduler mode
- Add RT_USING_NANO macro, support BSP one-click switch to Nano version
- Add functionality to release mutex locks when deleting threads
- Add support for controlling configuration of rt_sem to set the maximum value of semaphore
- Add RV64 RTOS kernel backtrace support; Add ARM64, RV64 implementations
- Add thread creation function time slice parameter check
- Add scons compilation to display project space usage information (#8697)
- Add abstract layer of scheduler (rt_sched), optimize SMP performance (#8537)
- Fix SMP mode software timer repeated triggering issue
- Fix rt_slist_for_each_entry macro cannot traverse elements in slist linked list normally issue
- Fix thread cannot be reclaimed error; Fix deadlock issue of repeatedly obtaining spinlock in SMP mode rt_timer timer check and timer start
- Fix software timer sleep issue; Fix idle_hook_list not locked issue; Fix thread exit system function possible issue
- Fix issue of only being able to schedule two threads with the same priority
- Fix data race issue of accessing percpu object data; Fix rt_exit_critical_safe function error return issue
- Fix SIGNAL node allocation failure return error issue
Component
- Drivers
- core: Adapt and optimize new device driver model; Fix issue where some device drivers could not enter the probe function after registration
- usb: rt_size_t follows UNIX style, changed to rt_ssize_t
- virtio: qemu-virt64-aarch64 / qemu-virt64-riscv support SDL2
- i2c: Add generic software simulation I2C; Add device tree support
- spi: Fix qspi configuration not taking effect issue
- sdio: Add rt_mmcsd_fops_flush(block_dev) function
- rtc: Fix rt_soft_rtc_sync function warning issue caused by using deprecated declaration method
- clk: Add clk driver framework, preparing for full use of device tree
- pwm: Add console secondary command completion feature
- can: Optimize can close order (#8780)
- serial: Add tty name allocation mechanism when using dm, support more baud rates; Add tty related hook functions; Add serial framework device tree support; Fix serial_v2 memory leak issue; Fix virtual serial port data can only be successfully sent once issue
- pic: Add pic-gic support
- pinctrl: Add pinctrl/pin-irqchip support
- hwtimer: Improve Cortex®-a, ARMv8 driver
- DFS
- Add exfat configuration;
- dfs_v1: Fix assertion bug caused by FATFS file system using cat command
- dfs_v2:
- Update Smart kernel to default dfsv2; Update elmfat version from r14b to r15
- Support O_DIRECT and O_SYNC flags
- Fix dfs_dentry_lookup resolving file path issue
- Fix dfs_tmpfs_write error; Fix dfs_v2 dfs_romfs_getdents buffer overflow issue
- Fix potential heap buffer overflow issue in dfs_v2 dfs_file
- Fix transfer fd under dfs_v2, dentry or vnode not existing issue; Fix lwp_free timer recovery call issue
- Fix permissions issue in elm; Fix page cache issue; Fix unmounted mqueue issue
- Add dfs pwrite pread (#8672); Add ptyfs support (#8672)
- Add symbolic link, regular file management and other features (#8672)
- Add sys_utimensat function; Add cromfs symbolic link (#8132)
- Add cromfs mmap support (#8218)
- Libc
- Fix difftime function multiple definitions issue in MDK compilation environment
- Fix data race issue in shared counter ID list; Fix compatibility issue of ctime.c file with old drivers
- Fix macro redefinition issue in eventfd due to toolchain update
- Fix logic error in posix thread local storage search for posix thread handle
- Fix issue of adding legacy macros when unable to get IAR version
- Improve gcc picolibc; Further optimize epoll and timerfd
- Add RT_USING_INTERNAL_LIBC_ONLY macro; Add GCC generic atomic operation functionality (#8648)
- LWP
- Add sys_setitimer function
- Replace lwp_new function with lwp_create; Replace irq disable/enable code in futex; Replace off_t with size_t in lwp_syscall.c
- Fix CPU affinity setting issue; Fix rt_channel internal lock issue; Fix pid recycling issue; Fix init process signal protection flag setting (#8797)
- Enable automatic selection of LDSO and pcache options by default after enabling smart/lwp options
- Update AF_UNIX bind and connect entry, update AF_UNIX data structure sockaddr_un to standard structure
- MM
- Add reserved memory support; Add rt_aspace_mremap_range function implementation
- Fix issue of using released memory in aspace_traversal; Fix issue of page_install function on shadow region
- Net
- Fix wifi scan command duplication issue (#8666)
- at: Optimize at formatting output to avoid conflicts between multiple at client and server outputs; Optimize AT component, and fix potential memory leak issue
- lwip: Fix possible deadlock issue under SMP
- sal: Add ifconfig updown function; Add message quantity limit; Update SAL socket abstraction layer, improve socketpair, sendmsg, recvmsg functionality
- Finsh
- Optimize list_thread display; Optimize MSH macro definition
- Add finsh thread stack size check; Add finsh thread entry hook function
- FAL
- Add blocks mechanism for fal, support adding special block definitions
- MProtect
- Add MPU abstraction layer design, support ARMv7-M, ARMv8-M architecture
- Others
- Synchronize differences in kernel, file system, etc.; Remove vmm
- Fix -Wmissing-prototypes warning
Libcpu
- AARCH64: Fix kernel entry symbol; Fix trace information not visible issue under ulog environment; Use device tree to initialize CPU and memory; Improve IRQ disable/enable performance
- ARM: Add support for Cortex®-M85, Cortex®-R52 architectures; Fix abnormal SMP operation issue in Cortex®-A (#8517)
- RISC-V: Fix d1s smart build failure issue (#8212)
- Fix mmap support
- Support for the overall backtrace framework in the RT-Thread kernel; Added weak implementation of architecture-level backtrace service; Added support for RV64 architecture
- Standardize the Libcpu group name as libcpu
Tools
- Support for LLVMEmbeddedToolchainForArm-17.0.1 toolchain
- Added
scons --target=vsc/--pack=xxx
command; Added prebuilding operation - Fixed rtconfig.h file recognition issue in MPU in scripts
- rt_studio: Fixed missing {cross_toolchain_flags} field issue when importing bsp projects in rt-studio
- env: Fixed built-in python2 subprocess issue
action
- Fixed Doxygen CI issue
- Added CI monitoring for BSP
- Added bsp attach check CI
utest
- Added memory system test cases; Added serial_v2 framework test cases; Added mm test cases; Added scheduler test cases
BSP
- Improved several bsp driver files; Fixed some issues in bsp
- RT-Smart support: DFZU2EG MPSoC, cv181x-riscv
- STM32: STM32 G0, G4, L0, L4 series support one-click switch to RT-Thread Nano version; STM32 Nucleo series added board-level identification macros; STM32 series added Nano version attach config related CI
- RTduino support: raspberry-pico, stm32h503-st-nucleo, stm32h563-st-nucleo, stm32f412-nucleo, stm32f407-rt-spark
- Added some new BSP:
- Adafruit:Metro M4
- Seeed Studio:Wio-Terminal
- ST:stm32L431_tencentos、stm32h7s7-disco,stm32f407-lckfb-skystar、stm32h503-st-nucleo
- Renesas:ek-ra8m1、ek-ra8d1、ra8d1-vision-board
- AT32:at32f402-start、at32f405-start
- HT32:ht32f52352、ht32f12366
- AVR32:at32uc3a0256、at32uc3b0256
- CVITEK: c906_little、cv18xx_risc-v
- WCH:yd-ch32v307vct6(risc-v)
- HC32:ev_hc32f4a0_lqfp176、ev_hc32f460_lqfp100_v2、ev_hc32f448_lqfp80
- GD32:gd32407v-lckfb
- NXP:
- mcxn:frdm-mcxn947
- mcxa:frdm-mcxa153
Userapps
- Fixed issue where the timer would not run when the user space retrieves the current time and then retrieves it again in kernel space, resulting in a negative difference
- Default enabling of epoll/eventfd/signalfd/timerfd/select when using RT-Smart
- Removed prebuilt versions
- Fixed setitimer bug, improved FUTEX support
- Added support for RT-Smart terminal subsystem (#8672)
- Other updates: ssh, sftp, weston, vim...
RT-Thread v5.0.2 released
Change Log Since v5.0.1 Release
Kernel
- include/rtdef.h
- Fixed two issues with atomic volatile in bsp/simulator compiled in VS2019.
- Added RT_USING_LIBC_ISO_ONLY macro.
- Supported POSIX-compatible errno.
- src/kservice.c
- Improved rt_strerror function compatibility.
- Supported DM device id management; Supported multiple threads receiving the same event at the same time.
- No longer used RT_DEBUG_LOG in rtdebug.h.
- Tidied up debug macros and added RT DEBUGING CONTEXT.
- Fixed User mode MQ receive blocking issue.
- Added priority to message queues supported in POSIX interfaces.
- Removed recursion in mutex; Removed RT_DEBUG_xxx macros.
- Implemented default weak function for rt_hw_cpu_shutdown.
Components
- drivers
- sensor: Fixed an error in Sensor-V1 where the return type was inconsistent; Re-implemented sensor framework as Sensor-V2.
- fdt: Added the device tree child node search macro.
- tty: Fixed a bug on foreground app switch; Supported TCGETA/TCSETAF/TCSETAW/TCSETA commands.
- serial: Fixed an issue where the serial port sometimes sent carriage returns repeatedly.
- Supported the Core API for dd2.0.
- i2c: Optimized control interface format to add available commands.
- rtc: Reconfigurable clock framework; Fixed the bug that triggered the alarm for a single time and repeatedly used the timer that did not start.
- hwtimer: Overflow is invalid in oneshot mode.
- core: Revised the macros of header files.
- wlan: Fixed some variables not used warnings when building.
- Moved the core header files to the path: include/drivers/core.
- lwp
- Executed elf with added executable permissions check.
- Supported more features of signals from IEEE Std 1003.1-2017.
- Fixed possible memory leak; Fixed the setup of fake LWP in sys_execve; Fixed socket addr bug; Fixed waitpid function exception.
- Fixed bugs on LWP kill; Fixed exit(2) and added exit_group(2); Fixed rt_memcpy to lwp_memcpy in smart source; Fixed cmd_kill (Fix cmd_kill).
- Added fops for dfs_v2 and fixed warning for eventfd_write and eventfd_read after dfs_v1 changes.
- Cumulative updates of lwip and lwp.
- libc
- Updated the allocation mode of the libc timer id.
- Added signalfd for system call, Added eventfd for system call.
- Implemented lightweight timezone configuration.
- Renamed libc.c as posix/stdio.c.
- Optimized the epoll code to remove restrictions on descriptors.
- Adapted rt_channel, increased the generality of some rt_channel functionality on dfs v2, and standardized signalfd.
- dfs
- Fixed variable usage errors in dfs elm.c.
- Connected the posix mqueue pair to the file system fd.
- Modified some function prototypes of the dfs_file_ops structure and function declarations.
- Fixed fcntl(F_SETFL) bug, and modified the error code when opening a file failed.
- Cumulative repair of dfs changes, including forced uninstallation and pread/pwrite changes.
- dfs v2: Added cromfs function.
- utilities
- Supported ulog_async_output_enabled, Supported adt API for DM.
- Removed zmodem.
- mm
- Improved output of list_page.
- Added unmap page API.
- net
- sal/socket: Fixed a BUG where calling closesocket interface triggered assertions when RT_DEBUG is enabled; Fixed duplicate free on allocated buffer.
- sal: Fixed the IPv4 & v6 compiling issue.
- ktime
- Added RT_USING_KTIME to Kconfig build.
- Fixed some bugs with ktime.
- Optimized the performance of high-precision timer, deleted a useless function.
- Change the Ktime path to: components/drivers/ktime.
- sdio
- Enabled the eMMC internal cache to speed up transmission.
- finsh
- Added msh autocomplete suboption feature.
Drivers Device
- Prepared for device driver v2.0.
Libcpu
- aarch64: Fixed default core binding failure on GICv2; Fixed aarch64 SMP startup failure; Supported hardware atomic; Fixed up FPU storage's size in stack and appended Q16 ~ Q31; Fixed HW atomic_t ops type from dword to qword; Supported public linker scripts; Changed aarch64 trap backtrace & coredump priority rating; Fixed an issue where AARCH64 Qemu failed to compile when SMP was disabled.
- arm: Fixed IAR compilation warnings: function "__LDREX" declared implicitly; Modified start_gcc.S; Fixed race condition with ldrex, strex; Fixed header file circular reference issue.
- arc: Fixed the thread switching bug in the arc architecture.
- sim: Fixed an issue with inconsistent function definitions.
- Added ARCH_ARM_CORTEX_M23 macro definitions.
Tools
- Fixed .uvoptx/uvopt project name.
- Supported Env for finsh shell.
- Removed --dist-strip command.
- Corrected prompt message.
Action
- Added CI to compile more drivers for the changed BSP, Added pkgs-test; Added the manual trigger and fail BSP check; Added more config for manual trigger.
- Added manual triggers for all STM32, Added the exp_STM32 SCons.
- Added the repo check for self-use; Added the code_owner review request; Added paths-ignore for format and static check.
- Fixed the path the YAML can't be folded; Fixed the flag of dist.
- Used env install script.
Documents
- Added RT-Thread Code of Conduct; Added ktime readme doc; Added env vscode document.
- Fixed a typo in documentation.
- Updated env document, Updated qemu for windows doc; Updated quick_start_qemu_windows.
Utest
- Adding volatile solves the problem that the test fails when the optimization level is high.
- Changed the thread size of the thread_tc thread stack to avoid stack anomalies caused by 64-bit machines; Changed the size of the thread stack to avoid stack anomalies.
- Added the signal dependency in signal test.
BSP
- Added some new BSPs
- ST: imx6ull, stm32u585-iot02a, stm32f405zgtx, stm32h563-st-nucleo, stm32h563-st-nucleo, stm32f407-rt-spark
- SOPHGO: cv1800b
- TI: msp432e401y-LaunchPad
- Supported Open Firmware API and model of PIC.
- Fixed MM32 compilation issues.
- stm32
-
stm32/stm32u5: Fixed GPIO interrupt error.
-
stm32/stm32l476-nucleo: Supported timer7 for RTduino; Supported PWM switch to SPI.
-
stm32/stm32wl55-st-nucleo: Fixed SCons compilation failure, improved link file, removed hardware floating-point support.
-
stm32/stm32f407-rt-spark: Release of the first version of rt-spark BSP; Added rt-spark to run utest link snippets under GCC.
-
stm32/stm32f401nucleo/rtduino: Supported function switching of docking pins.
-
stm32/stm32l431-BearPi: Supported the MPU6050 module.
-
stm32/rtduino: Supported tone timers and limited the maximum number of pins checked; Supported function switching of docking pins; Fixed a demo bug and modified the SPI switch function.
-
stm32/i2c driver: Replaced stm32_udelay with rt_hw_us_delay.
-
stm32/build path: Example Modified the STM32 project generation path.
-
- qemu
- qemu-virt64-aarch64: Fixed qemu failed to mount elm file system.
- airm2m
- airm2m/air32f103: Synchronized lib changes, including SRAM locking, fixing RTC acquisition frequency errors; Updated the pin num command.
- wch
- wch/riscv/ch32v307v: Added _head_end for link file.
- wch/riscv/ch32v208w: Fixed C++ compiling errors.
- wch/risc-v/Libraries/ch32_drivers: Fixed UART IRQ declaration.
- imxrt
- imxrt/imxrt1060-nxp-evk: Solved the adaptation problem of RW007 module in MIMXRT1062-EVKB board; Imxrt1060 fix wrong image reference.
- imxrt/imxrt1021-nxp-evk: Fixed RT_ASSERT undefined RT1021 FIXED.
- renesas
- renesas/sdhi driver: Fixed an issue where SDHI could only read the first block when attempting multiple block reads.
- Fixed part of renesas BSP and added related CI to it; Fixed an issue where Renesas BSP compilation would not pass.
- Added hwtimer device for renesas.
- acm32
- acm32/acm32f0x0-nucleo: Fixed scons --dist command error.
- Fixed some issues with acm32 BSP and added CI to it.
- bouffalo_lab
- bouffalo_lab/bl808/d0: Added bl808 d0 core SPI and I2C drivers.
- nuvoton
- nuvoton/numaker-m467hj: Fixed related LVGL version issues.
- Infineon
- Infineon/psoc6-evaluationkit-062S2: Added I2C config for psoc6-evaluationkit; Fixed i2c init error; Added cyw43012 wifi module; Added BT support.
- esp32_c3
- Realized scons compilation of ESP32-C3.
- raspberry-pico:
- Added software simulation SPI and software simulation I2C driver code.
- Optimized Kconfig configuration.
- Improve UART driver.
- Add flowcontrol and parity settings.
- phytium
- phytium/aarch32/e2000d_rtthread: Phytium e2000 update.
- Fixed the Phytium QSPI driver.
- hpmicro
- Three new BSPS are added: hpm6750evk2, hpm6300evk, and hpm6200evk.
- gd32
- gd32/arm/gd32470z-lckfb: Add SDRAM driver.
- nuclei
- nuclei/gd32vf103_rvstar: Add USB-related configuration headers.
Userapps
- Added support for user mode updates in MicroPython, sdl2, lua, ffmpeg.
RT-Thread v5.0.1 released
Change log since v5.0.0 released
Kernel
- Add stdc atomic detection. (#7536)
- Add API rt_hw_interrupt_is_disabled. (#7706)
- Add API to get object name and thread name (#7507)
- Add AMP rt_hw_cpu_id and RT_USING_SMP Macro decoupling,rt_hw_ipi_send depend on RT_USING_AMP
- Fix device_open oflag comparison error. (#7512)
- Fix thread.c variable rt_err not initialized timer.c type conversion error in iar
- Fix and add null pointer check
- Fix Avoid repeated calls device_open interface. (#7476)
- Modify rt_thread change the structure to explicit inheritance rt_object (#7131)
Components
-
DFS
-
Libc
- Support rt-thread CPP wrapper sub-switch macros, external third pary libc software package, picolibc heap
- Optimize resource consumption
- Modify redirecting header sys/ioctl to bits/ioctl, improve posix interface message queue
- Modify if define cputime, then CLOCK_REALTIME use cputime (#7343)
-
LWP
- Add more syscall support.
- Support file descriptor transmit (#7318)
-
Support for scalable memory management (#7277)
-
Network
-
Other
- Fix Finsh offset used before range check
- Support for scalable memory management (#7277)
Drivers Device
- Fix cpu timer in multithreading (#7222),dtb compiling warning.
- Optimize the spi transfer speed and fix some issues
- Modify the ADC channel data type and add the built-in channel universal channel number identification
- Modify convert the current sensor framework back to v1 version and make it independent of v2 (# 7698)
- Modify changing tty's driver to a device and fixing multiple scanfs resulted in data loss issues
Libcpu
add debug info for gdb
- arm: Optimize interrupt mode API,Fix atomic_arm.c
- aarch64: Optimize interrupt mode API,Decoupling startup process,Add no device tree mode in PSCI,Fix cache invalidate operation (#7363)
- risc-v:add ioremap for c906
- mips:Fix variable misuse
Tools
- Add feature to filter out files to file_check.py that do not require cppcheck (#7499)- Add
--add-rtconfig
args for scons when you want to add macro definitions build time. - Support llvm-arm 16.0; Add llvm-arm workflows.
- Fix cannot select c99 and gnu choice in Keil-MDK
- Fix the deque issue for Env['CPPDEFINES'] (#7541)
- Modify move file_check.py into ci folder
action
- Refactoring and optimizing the execution process of ci and adding manual triggers and cppcheck checks for scons dist
utest
- Add UtestTcTab section access under MSC and change access under gcc
- Fix strtol,the sizeof incorrect calculation,the issue of thread test case looping at high optimization levels,file open close mismatch
bsp
fix mismatched function types in rt_pin_ops for all drv_gpio.c
- Add some new BSPs
- apm32: apm32e103ze-evalboard apm32e103ze-tinyboard apm32f030r8-miniboard
- at32: at32f423-start
- essemi: es32vf2264
- imxrt: imxrt1061-forlinx-OK1061-S
- renesas: ra6m3-hmi-board
- stm32: stm32f334-st-nucleo stm32l496-st-discovery
- yichip: yc3122-pos
- bouffalo_lab: bl808/d0
- Add RTduino support for some bsps
- Update some stm32 BSP drivers: timer, uart v2, pwm, adc
- Update BSP
- Add kconfig for some BSPs without kconfig
- fix mismatched function types in rt_pin_ops for all drv_gpio.c (#7457)
- stm32: Fixed some issues, added and improved some drivers
- Renesas: Fixed some issues, added and improved some drivers
- Infineon:Fix drv_gpio and spi problem,psoc6 add drv sdcard (#7522),update: READ.me use path of relative (#7500), fix spi chipselect
- simulator:sync upstream win32 driver (#7165), Fix Linux support
- airm2m/air32f103: update AIR32F10xLib (#7472)
- allwinner: update allwinnter libraries object file path (#7482)
- apm32: add can driver and add apm32e1/s1 rtt driver support (#7170)
- at32 : add support dac driver,update for perfection of drv_usart_v2 (#7210),fixed some
- bouffalo_lab : add sdcard spi driver drv_i2c drv_soft_i2c hwtimer & flash driver support,update bouffalo_lab libraries && script, sdio host driver, uart driver pin && bl808-d0 ioremap mode
- essemi: Update es32vf2264 some library functions and drivers
- fujitsu: BSP support menuconfig
- gd32: Add PWM driver for GD32F303
- imxrt: Update to support Keil AC6, add link script files, improve SPI support, improve SPI support for RW007, and improve documentation
- LPC4088: Increase support for IAR environment (# 7611)
- lpc55sxx: update keil default project,update drv_soft_i2c drv_soft_spi drv_adc drv_wdt,add adaptation LVGL drv_lcd and drv_touch
- raspberry-pico: add drv_soft_spi drv_adc drv_wdt drv_soft_i2c
- rk3568:Support PSCI, amp mode
Userapps
- Using xmake to build a system to replace the original scons
- Built in Toolchain, zlib and other software packages
- Can automatically generate images such as ext4 and fat
- Supports multiple architectures such as arm aarch64 riscv64
- Add built in QEMU runtime environment
RT-Thread v5.0.0 Released
Change log since v4.1.1 released
kernel
- Add RT-Thread Smart features, Support user-mode app.
- Add atomic feature.
- Add nested mutex feature.
- Add rt_ssize_t data structure.
- Add static name for rt_object (#6422).
- Adopt new version macro definition version control specification: https://semver.org
- Split scheduler.c (#7103).
- Fix the Oz optimization problem of AC6 compiler in memheap.
- Fix rt_memset to be word size independent.
- Modify RT_ALIGN_SIZE as 8 by default
Components
- Add FDT(Flattened Device Tree), TMPFS, CRomFS,
- Libc:
- add musl libc support.
- Improve Posix support.
- LWP:
- Add more syscall support.
- Add mm(virtual memory management layer) feature.
- Improve clock accuracy.
- Network: add AF_UNIX feature.
- Drivers Device:
- Improve device: sensor, spi, i2c, serial, can, usb, cpu_time, sdio, pwm, etc.
BSP
- Add RT-Thread Smart support with some BSP: D1/D1s, raspberry, qemu-vexpress-a9, qemu-virt64-aarch64,qemu-virt64-riscv.
- Add company readme.md under bsp dir.
- Fix that use RT_ERROR, RT_EFULL, RT_ENOMEM, RT_EEMPTY, etc.
- Add some new BSPs:
- bouffalo_lab: bl60x/bl70x/bl61x/bl808,
- Infineon: 062s2, 062s3-4343w, 062s4, 062-wifi-bt, 062-ble
- nuvoton: numaker-iot-m467, numaker-m467hj, numaker-hmi-ma35d1
- nxp: LPC55S16, LPC55S36, LPC55S06, LPC5528, LPC55S28
- nrf5xxx: nrf5340
- gd32: gd32470z-lckfb, GD32303C-START
- apm32: apm32f030r8-miniboard, apm32f051r8-evalboard, apm32f091vc-miniboard, apm32f103vb-miniboard, apm32f107vc-evalboard, apm32f407zg-evalboard,apm32f072vb-miniboard
- n32: n32g43xcl-stb, n32g457qel-stb, n32g45xcl-stb, n32g45xml-stb, n32g45xrl-stb, n32g45xvl-stb, n32140xcl-stb, n321436_evb, n32143xml-stb, n32143xrl-stb, n32wb45xl-evb, n32g4frml-stb.
- mm32: mm32f3270-100ask-pitaya
- at32: at32f421-start, at32f425-start
- stm32: stm32f723-st-disco
- phytium: aarch32, aarch64
- other: core-v-cv32e40p, air32f103, YS-F1Pro, etc.
- Update some stm32 BSP drivers: timer, pwm, uart v2, can, etc.
- Update BSP:
- qemu-vexpress-a9: play the version number of QEMU when QEMU running.
- tms320f28379d: fix the startup problem, implement PWM driver.
- simulator: fix simulator compilation warnings, fix compile error.
- raspberry-pico: add SMP
- synopsys: Fix timer call-backs, Fix print syntax, Fix GNU toolchain RTT_CC alias, Use RTT_EXEC_PATH for the toolchain location substitution.
- ti/c28x: add support to not disable global interrupt in context-switch to enable zero-latency isr for critical interrupts, add GPIO & pwm & ADC driver, update rt_vsnprintf for compliance with ti c28x cpus,add support to scons-based .project creation.
- stm32: update all bsp projects.
- renesas: add segger rtt function, add tft-lcd lvgl support, add ra6m4-cpk lvgl for spi-lcd support and update rt_spi_bus_attach_device_cspin function, add tft-lcd pin connection description, and fix some bugs, etc.
- Infineon: add capsense support, add Infineon Doc and modify file structure, update spi driver, add slider driver demo, fix spi cs problem, etc.
- nuvoton: modify RT_WEAK as rt_weak, fix building issue of Nuvoton porting, etc.
- nxp: imxrt1170 Fix usb, Fix flexcan driver, add sdio support. lpc55s69 update PWM. lpc55sxx i2c driver fix & repair, add i2s and wm8904 driver, update spi and pwm driver. etc.
- nrf5xxx: add spi twi drv for nrf5340, fix the Kconfig of nrf52832, etc.
- gd32: fix bug on spi driver
- apm32: fix apm32f0/apm32f1 gcc startup assembly file bug and fix apm32 drv_eth.c bug, add apm32F0 series MCU support, add apm32 rtt sdio/flash/sdram driver. etc.
- at32: fixed gcc compiling usb driver errors, update for including file position and adding macros, optimize emac and usart driver code, add support usb driver. etc.
- esp32: ESP32_C3 fix compile errors/warnings, igrate to ESP-IDF package, add I2C drivers. ESP32 support applying patch to local IDF. etc.
- ch32: add rt_hw_context_switch_interrupt. ch32v307 add uart/spi/adc/gpio/wdt/dac/can/pwm drivers, update readme. etc.
Libcpu
- arm: cortex-a revert safety MMU initialization, cortex-m7 change the return type of function rt_hw_cpu_dcache_ops to rt_uint32_t, etc.
- risc-v: support noncached normal memory, add rt_backtrace function, etc.
- aarch64: add rt_backtrace function, stop when no page is free.
Tools
- Improved ci function
- Add some scons cmds: scons --exec-path=xxx, scons --exec-prefix=, scons --dist --target=xxx, scons --strict, scons --dist --project-path=xxxx, etc.
RT-Thread v4.1.1 released
Change log since v4.1.0 released
Kernel
- rtdef.h
- Add BGR888 pixel format
- be friendly to macro expansion
- add 64bit default value for stack size
- set tick HZ as 1000 by default
- enhanced rt_kprintf to support "long long" type
- use RT_KSERVICE_USING_STDLIB_MEMXXX to replace RT_KSERVICE_USING_STDLIB_MEMCP/MEMSET
- RT_KSERVICE_USING_STDLIB is open by default
- ipc
- Add descriptions for rt_mq_recv and rt_sem_take timeout parameters
- fix parameter name
- enable RT_DEBUG_DEVICE by default and move weak rt_hw_dealy_us in kservice.c
- Updated the Cortex-A of linker scripts for the new version of GCC, Removed C++ global constructor initialization, this method is not used in GCC4.7 and later versions
- remove the register keyword
- rename _rt_scheduler_stack_check as _scheduler_stack_check
- update comments for rt_thread_suspend
- fix comment for rt_container_of
- fixed bug of timer
- remove the executable permission of thread.c
- remove strnlen function
- add NULL check for rt_free and rt_free_align
- suuport perf_counter
- tighten size before check with mem_size_aligned
- Add string information for error
- fix a problem about finsh_set_prompt redefined msh command
- Unify the data type and macro definition of kernel built-in and standard LIBC library
- add macro RT_VERSION_CHECK to implement version check
- fix the style for "rt_hw_us_delay" function
- fix the time slice logic for schedule.c
Components
- driver
- Detailed classification of devices types
- Update device type definition and command definition
- ioctl add F_SETFL cmd
- fix a problem that eliminate recursion
- fix som compilation warning
- driver/serial_v2
- add support for "termios"
- add hardware flow control support
- fixed bug for RT_SERIAL_TX_BLOCKING model
- add rt_assert for serial_v2
- driver/sensor
- Add blood pressure sensor type
- Add RT_SENSOR_VENDOR_MELEXIS in sensor.h
- Add RT_SENSOR_VENDOR_MELEXIS in sensor_cmd.c
- driver/spi
- remove _spi_bus_device_control
- Fix rt_qspi_send symbol extension BUG
- fix issue report #6008 rt_spi_sendrecv8
- driver/rtc
- Adjust ops function input parameters
- Optimize execution efficiency
- Add get/set timestamp function
- Enhanced date command
- fix the parameter check about "time"
- use gmtime_r to replace gmtime
- driver/alarm
- Fix week alarm bug
- Compact alarm output
- fix a typo
- driver/inputcapture
- add DBG_TAG for rt_inputcapure.c
- driver/hwtimer
- add disable interrupt protection for hwtimer_isr function
- driver/hwcrypto
- Optimize memory usage
- driver/sdio
- Support DDR mode
- modify the address offset problem for sdio read and write
- driver/dac
- fix return value of rt_dac_write function
- add get resolution method
- driver/adc
- add a interface to get sampling resolution
- add finsh voltage conversion command
- implement adc_get_vref
- driver/pwm
- clean the useless code
- add finsh pwm function
- driver/usb
- fix build error
- fix stall bug on control transfers
- add interface to get information about virtual uart connect state
- fix usbhost hid issues
- driver/wlan
- Modify wlan framework
- driver/phy
- fix the PHY_FULL_DUPLEX conflicts
- driver/can
- Add CANFD support and correct typos
- Fix can infinite loop when can driver send error
- driver/hwcrypto
- Correct function return value definition
- driver/pin
- add pin operate command in MSH
- driver/touch
- adjust the header file for touch.h
- libc
- fix c/c++ compilation warnings and errors
- improve sconscript
- fix the sys/select.h problem
- fix that some function cannot be found in unistd.h
- Remove definitions that "posix/io" are not in use
- fix the time bug
- optimize the handle logic on armcc/armclang
- fix the compiler error on iar
- fix dlmodule compile 'SEEK_END' undeclared eror
- the recycle logic about resource of pthread
- fix the function pthread_barrier_init return "EINVAL" if "count" is zero.
- solve the conflicts between libc data types and rtdef data types
- remove strdup from rtthread.h
- Fix clock_gettime for CLOCK_CPUTIME_ID
- solve the libc/timer problem which the os tick can be calculated wrongly because the local variable was not initialized
- implement extension standard C functions
- fix the error return
- modify the complier error in iar
- use atomic operation to protect pthread conditional variable
- memory leak when the value of posix semaphore is zero
- fix a problem that function difftime() compile error in iar environment
- pthread_mutex_destroy can't work
- the risk for function exit() when open pthread support
- supplement the case that exit() haven't been impletement
- try to fix the problem about "fflush" functions in armlibc
- use
__clang__
to replace__CLANG_ARM
- solve the compiling error for
_sys_ensure
- ulog
- Add file backend
- Optimize unnecessary refresh
- sfud
- support NM25Q128EVB, GD25Q32C, SST25VF080B, W25Q32BV, W25X16AV, W25X40CL
- modify the opeated way to handle a situation that flash blocks protected
- keep macros in order
- sal
- add draft for docking winsock
- rearrange sal dependencies
- rename sal.h as sal_low_lvl.h
- at
- use pointer that memory had freed
- implement about "AT server"
- lwip
- Support windows simulator
- add list command
- finish
- fix list_device crash
- Enhance system robustness
- add available memory information for free cmd
- add binary search algorithm
- add new functions to get length of finish cmd
- fal
- support fal api for c++
- modify PKG_USING_FAL to RT_USING_FAL
- utest
- add cpp11 base testcase
- enhance strength about cpp testcase
- add posix testcase frame
- add timeslice test
- ymodem
- move error codes to rym_code to silence warnings
- Fix compilation warning
BSP
-
Attention, the list of new bsp we have added :
- at32f413, at32f415-start, at32f435-start, at32f437-start
- cypress-psoc6-cy8cproto-4343w
- ESP32_C3
- gd32vf103r-start, gd32vf103v-eval
- hc32f4a0
- imxrt1021-nxp-evk, imxrt1170-nxp-evk
- microchip, samc21, same54, same70, saml10
- n32g45xvl-stb
- ch32v103r-evt, ch569w-evt, ch32f103c8, ch32f203r-evt
- rockchip-rk3568
- stm32f103-100ask-mini, stm32f103-100ask-pro, stm32wle5-yizhilian-lm402
-
lpc55sxx
- fix issue that dist cannot specify a directory
- fix building error
-
stm32
- use weak reference to handle Macro of RTDINO_xxxx
- add new bsp for STM32WLE5JCI6
- fix some can and pwm bug
- select the input clk of spi based on SPI instances
- fix the bug of can filter conflict
- add rtc for openmv
- add ov5640、dcmi、i2c for openmv
- update ov5640 configuration of openmv
- update arduino related
- stm32f072 support Arduino I2C and update readme
- judge the SPI instances before operating
- fix the io confict about SDIO and UART6(TX) DMA
- fix the problem if use uart DMA to receive
- remove hardware NSS
- Enable RNG Clock
- avoid conflict between cmsis5 and bsp cmsis
- add tim7 support
- f072, f401 support TIM7/TIM11 hardware timer
- l475, remove meaningless header file
- stm32f407, stm32f469 optimize lvgl folder structure about simulator
- stm32f746, cancel choose lwip and dfs by default
- remove CMSIS/RTOS folders
- add RTDUINO_NO_SETUP_LOOP
- add F_CPU to indicate the frequency of CPU
- suuport MsTimer2 library
- add correct the command description for adc, pwm
- add support for STM32L0 series
- move CMSIS hearder files to common folder
- add bootloader.bin, add the description of the bootloader in README.md for stm32h750-art-pi
- Modify the content of flash algorithms in README.md for stm32h750-art-pi
- fix stm32f767-st-nucleo console device name
- create two new bsp for 100ask stm32f103 boards
- add stm32l496zg feature, add on-chip flash
- change the bsp name of 100ask to be consistent with other bsp and commit a bug for drv_adc.c
- add h7 timer support
- implement soft spi
- use perf_counter to instead of hwtimer
- support wireless module pinout for stm32l475
- Add lvgl adaptation of touch screen xpt2046 for stm32f407-atk
- Docking lvgl for stm32f469-st-disco bsp using ft6336 touch chip
- adapt the rtc alarm function
- optimize pwm functions
- Adapt RTduino package for stm32f469-st-disco BSP
- Docking lvgl touch driver using package for stm32f469-st-disco BSP
- Adapt lvgl for using ft6206 model touch screen for stm32f469-st-disco BSP
- Fix the configuration of stm32f401's PWM in CubeMX
- fix the network I/O is confict for stm32f429-atk-apollo
- fix PWM complementary problem and function description
- Improve the connection of RTdunio PWM for stm32f401-st-nucleo
- add a new board f407-robomaster-c and supprot stm32 timer8
- avoid the "recv_len" will be negative if happend accident
- add RTdunio for stm32f103-blue-pill
- stm32l475-atk-pandora update readme, .gitignore
- update the Kconfig for stm32f407atk
- remove libraries dependencies for rtduino function
-
wch
- add ch32v103r-evt bsp
- add WCH CH569W-R0-1v0 evt board bsp port
- ch569w-evt : add spi master driver, SPI0 tested
- add pwm driver and spi_xfer bug fix
-
gd32
- Add gd32450i-eval board bsp
- Complete the pins device define
- firx adc driver
- bug fixed gpio_mode_set mis...
RT-Thread v4.1.1 Beta released
Change log since v4.1.0 released
Kernel
- rtdef.h
- Add BGR888 pixel format
- be friendly to macro expansion
- add 64bit default value for stack size
- set tick HZ as 1000 by default
- enhanced rt_kprintf to support "long long" type
- use RT_KSERVICE_USING_STDLIB_MEMXXX to replace RT_KSERVICE_USING_STDLIB_MEMCP/MEMSET
- RT_KSERVICE_USING_STDLIB is open by default
- ipc
- Add descriptions for rt_mq_recv and rt_sem_take timeout parameters
- fix parameter name
- enable RT_DEBUG_DEVICE by default and move weak rt_hw_dealy_us in kservice.c
- Updated the Cortex-A of linker scripts for the new version of GCC, Removed C++ global constructor initialization, this method is not used in GCC4.7 and later versions
- remove the register keyword
- rename _rt_scheduler_stack_check as _scheduler_stack_check
- update comments for rt_thread_suspend
- fix comment for rt_container_of
- fixed bug of timer
- remove the executable permission of thread.c
- remove strnlen function
- add NULL check for rt_free and rt_free_align
- suuport perf_counter
- tighten size before check with mem_size_aligned
- Add string information for error
- fix a problem about finsh_set_prompt redefined msh command
- Unify the data type and macro definition of kernel built-in and standard LIBC library
- add macro RT_VERSION_CHECK to implement version check
- fix the style for "rt_hw_us_delay" function
- fix the time slice logic for schedule.c
Components
- driver
- Detailed classification of devices types
- Update device type definition and command definition
- ioctl add F_SETFL cmd
- fix a problem that eliminate recursion
- fix som compilation warning
- driver/serial_v2
- add support for "termios"
- add hardware flow control support
- fixed bug for RT_SERIAL_TX_BLOCKING model
- add rt_assert for serial_v2
- driver/sensor
- Add blood pressure sensor type
- Add RT_SENSOR_VENDOR_MELEXIS in sensor.h
- Add RT_SENSOR_VENDOR_MELEXIS in sensor_cmd.c
- driver/spi
- remove _spi_bus_device_control
- Fix rt_qspi_send symbol extension BUG
- fix issue report #6008 rt_spi_sendrecv8
- driver/rtc
- Adjust ops function input parameters
- Optimize execution efficiency
- Add get/set timestamp function
- Enhanced date command
- fix the parameter check about "time"
- use gmtime_r to replace gmtime
- driver/alarm
- Fix week alarm bug
- Compact alarm output
- fix a typo
- driver/inputcapture
- add DBG_TAG for rt_inputcapure.c
- driver/hwtimer
- add disable interrupt protection for hwtimer_isr function
- driver/hwcrypto
- Optimize memory usage
- driver/sdio
- Support DDR mode
- modify the address offset problem for sdio read and write
- driver/dac
- fix return value of rt_dac_write function
- add get resolution method
- driver/adc
- add a interface to get sampling resolution
- add finsh voltage conversion command
- implement adc_get_vref
- driver/pwm
- clean the useless code
- add finsh pwm function
- driver/usb
- fix build error
- fix stall bug on control transfers
- add interface to get information about virtual uart connect state
- fix usbhost hid issues
- driver/wlan
- Modify wlan framework
- driver/phy
- fix the PHY_FULL_DUPLEX conflicts
- driver/can
- Add CANFD support and correct typos
- Fix can infinite loop when can driver send error
- driver/hwcrypto
- Correct function return value definition
- driver/pin
- add pin operate command in MSH
- driver/touch
- adjust the header file for touch.h
- libc
- fix c/c++ compilation warnings and errors
- improve sconscript
- fix the sys/select.h problem
- fix that some function cannot be found in unistd.h
- Remove definitions that "posix/io" are not in use
- fix the time bug
- optimize the handle logic on armcc/armclang
- fix the compiler error on iar
- fix dlmodule compile 'SEEK_END' undeclared eror
- the recycle logic about resource of pthread
- fix the function pthread_barrier_init return "EINVAL" if "count" is zero.
- solve the conflicts between libc data types and rtdef data types
- remove strdup from rtthread.h
- Fix clock_gettime for CLOCK_CPUTIME_ID
- solve the libc/timer problem which the os tick can be calculated wrongly because the local variable was not initialized
- implement extension standard C functions
- fix the error return
- modify the complier error in iar
- use atomic operation to protect pthread conditional variable
- memory leak when the value of posix semaphore is zero
- fix a problem that function difftime() compile error in iar environment
- pthread_mutex_destroy can't work
- the risk for function exit() when open pthread support
- supplement the case that exit() haven't been impletement
- try to fix the problem about "fflush" functions in armlibc
- use
__clang__
to replace__CLANG_ARM
- ulog
- Add file backend
- Optimize unnecessary refresh
- sfud
- support NM25Q128EVB, GD25Q32C, SST25VF080B, W25Q32BV, W25X16AV, W25X40CL
- modify the opeated way to handle a situation that flash blocks protected
- keep macros in order
- sal
- add draft for docking winsock
- rearrange sal dependencies
- rename sal.h as sal_low_lvl.h
- at
- use pointer that memory had freed
- implement about "AT server"
- lwip
- Support windows simulator
- add list command
- finish
- fix list_device crash
- Enhance system robustness
- add available memory information for free cmd
- add binary search algorithm
- add new functions to get length of finish cmd
- fal
- support fal api for c++
- utest
- add cpp11 base testcase
- enhance strength about cpp testcase
- add posix testcase frame
- add timeslice test
- ymodem
- move error codes to rym_code to silence warnings
- Fix compilation warning
BSP
- Attention, the list of new bsp we have added :
- at32f413, at32f415-start, at32f435-start, at32f437-start
- cypress-psoc6-cy8cproto-4343w
- ESP32_C3
- gd32vf103r-start, gd32vf103v-eval
- hc32f4a0
- imxrt1021-nxp-evk, imxrt1170-nxp-evk
- microchip, samc21, same54, same70, saml10
- n32g45xvl-stb
- ch32v103r-evt, ch569w-evt, ch32f103c8, ch32f203r-evt
- rockchip-rk3568
- stm32f103-100ask-mini, stm32f103-100ask-pro, stm32wle5-yizhilian-lm402
- lpc55sxx
- fix issue that dist cannot specify a directory
- fix building error
- stm32
- use weak reference to handle Macro of RTDINO_xxxx
- add new bsp for STM32WLE5JCI6
- fix some can and pwm bug
- select the input clk of spi based on SPI instances
- fix the bug of can filter conflict
- add rtc for openmv
- add ov5640、dcmi、i2c for openmv
- update ov5640 configuration of openmv
- update arduino related
- stm32f072 support Arduino I2C and update readme
- judge the SPI instances before operating
- fix the io confict about SDIO and UART6(TX) DMA
- fix the problem if use uart DMA to receive
- remove hardware NSS
- Enable RNG Clock
- avoid conflict between cmsis5 and bsp cmsis
- add tim7 support
- f072, f401 support TIM7/TIM11 hardware timer
- l475, remove meaningless header file
- stm32f407, stm32f469 optimize lvgl folder structure about simulator
- stm32f746, cancel choose lwip and dfs by default
- remove CMSIS/RTOS folders
- add RTDUINO_NO_SETUP_LOOP
- add F_CPU to indicate the frequency of CPU
- suuport MsTimer2 library
- add correct the command description for adc, pwm
- add support for STM32L0 series
- move CMSIS hearder files to common folder
- add bootloader.bin, add the description of the bootloader in README.md for stm32h750-art-pi
- Modify the content of flash algorithms in README.md for stm32h750-art-pi
- fix stm32f767-st-nucleo console device name
- create two new bsp for 100ask stm32f103 boards
- add stm32l496zg feature, add on-chip flash
- change the bsp name of 100ask to be consistent with other bsp and commit a bug for drv_adc.c
- add h7 timer support
- implement soft spi
- use perf_counter to instead of hwtimer
- support wireless module pinout for stm32l475
- Add lvgl adaptation of touch screen xpt2046 for stm32f407-atk
- Docking lvgl for stm32f469-st-disco bsp using ft6336 touch chip
- adapt the rtc alarm function
- optimize pwm functions
- Adapt RTduino package for stm32f469-st-disco BSP
- Docking lvgl touch driver using package for stm32f469-st-disco BSP
- Adapt lvgl for using ft6206 model touch screen for stm32f469-st-disco BSP
- Fix the configuration of stm32f401's PWM in CubeMX
- fix the network I/O is confict for stm32f429-atk-apollo
- fix PWM complementary problem and function description
- Improve the connection of RTdunio PWM for stm32f401-st-nucleo
- add a new board f407-robomaster-c and supprot stm32 timer8
- avoid the "recv_len" will be negative if happend accident
- add RTdunio for stm32f103-blue-pill
- stm32l475-atk-pandora update readme, .gitignore
- wch
- add ch32v103r-evt bsp
- add WCH CH569W-R0-1v0 evt board bsp port
- ch569w-evt : add spi master driver, SPI0 tested
- add pwm driver and spi_xfer bug fix
- gd32
- Add gd32450i-eval board bsp
- Complete the pins device define
- firx adc driver
- bug fixed gpio_mode_set miss gd32_spi->mosi_pin,gd32_spi->sck_pin
- fix compile error in rtc: "pmu_backup_write_enable" was not found
- Optimize GD32 bsp architecture
- fix a bug about interrupt vetor table lost cause system exception
- add driver of sdio
- correct pin number in drv_gpio.c
- fix compile error if use rtc in gd32 f1~f4
- fix the defined error that uart I/O
- simulator
- improve libc time and MSVC simulator
- slove the problem of simulator can't attach SD card
- upgrade SDL2.0 to 2.0.20
- remove meaningless debug file
- crea...
RT-Thread v4.1.0 released
Change log since v4.1.0 Beta released
Kernel
- src/clock.c add hook for rt_tick_increase
- fix thread init bug if you open RT_USING_MODULE
- Fixed issue that could all timers stop
- remove duplicated clear to 0 in the "thread.c"
- Revert modifications to the semaphore
- Fix 64 bit compilation warning
- src/device.c add RT_DEBUG_LOG
Components
- ulog
- Optimize code to improve readability
- remove the useless function declaration about "localtime_r"
- Optimize "ULOG_OUTPUT_FLOAT" to avoid use "vsnprintf" that provided by complier tools chain
- solve the interference when enable the ulog timestamp
- Fixed the issue LOG_HEX no output at asyn mode
- drivers
- misc
- modify the error name in the "dac.c"
- remove useless head file to avoid problem about recursion
- add the header file to avoid compiler error
- Open RT_USING_POSIX_STDIO caused serial_v2 to compile failed
- add the simulative spi bus drivers that based on spi bus drivers
- remove the complier warning in C99 about "ipc/ringbuffer.c"
- improve serial_v2 structure
- misc
- dfs
- offer complete path when use command "list_fd"
- libc
- posix
- add the included head file
- add the header file to avoid compiler error
- add RT_USING_POSIX_SOCKET
- fix a typo
- posix
- net
- adjust folder structure
- lwip
- integrate lwip porting layer
- integrate and improve lwipopts.h
- add lwip latest version
- utest
- add dependence RT_USING_UTESTCASES
- finsh
- remove extra code
- fix finsh bug
- fal
- add fal component
- utilities
- adjust the order of compiler macros
- var_export
- replace the search algorithm and fix some problems
- tidy the folder name and structure about Kconfig
BSP and CPU porting
- libcpu
- aarch64
- rt_hw_trap_irq get irq instead of iar when using gicv2
- disable irq/fiq when switch thread
- add gtimer frq set and stack align
- add gicv3 support
- mips
- correct the watch dog register address about "gs232.h"
- modify the problem that can't feed hardware watch dog
- arm
- fix syscall_iar.S compiler error based on cortex-m33
- aarch64
- essemi
- fix bugs
- nuvoton
- Update configuration files and fix issue
- Nuvoton drivers updating and more LVGL supporting
- Update drivers and project setting
- format code
- raspberry-pico
- add Raspberry-Pico-LVGL README.md
- simulator
- Optimize the auto initization
- qemu
- vexpress-a9
- Fix a typo in qemu.sh
- vexpress-a9
- n32g452xx
- add drv_spi.c
- at91sam9260
- add mtdnand driver to support "uffs" file system
- at32
- upload bsp package based firmware library v2.0
- add ingore_format.yml
- gd32
- Optimize UART
- add Soft spi for gd32303e-eval
- ft32
- modify the name that head files are included
- apm32
- apm32f103xe-minibroard
- add project and device drivers
- update readme picture name
- fix the startup files of apm32f1
- apm32f103xe-minibroard
- stm32
- Add support with pwm6 to pwm13
- add qspi flash and sdio for openmv h7plus
- modify the bug that the CRC custom configuration can't work
- stm32f469-st-disco
- add readme in english
- stm32f072-st-nucleo
- add arduino support
- support pwm for arduino
- stm32f407-atk-explorer
- add board identification word
- stm32l475-atk-pandora
- update application/arduino folder
- enable i2c4 bus
- fix the bug when using LCD demo
- fullly support analog output(PWM) and analog input(ADC)
- support backlight with brightness adjustable
- Adding dependencies
- stm32h750-art-pi
- porting LVGL to ART-Pi with Media-IO
- stm32f769-st-disco
- fix wrong CPPDEFINES and close lwip
- add stm32f7xx_hal_dsi.c when using LTDC/MIPI-DSI
- stm32h743-openmv-h7plus
- add usbcdc for openmv
- imxrt
- imxrt1060-nxp-evk
- add imxrt1060-evk BSP
- README_zh.md, led blink
- fix gcc can't runing issue
- imxrt1060-nxp-evk
- vango
- add v85xxp bsp
- migrate v85xx and v85xxp into the subcatalog of vango
- remove duplicated files
- acm32f0x0-nucleo
- Add some drivers
- delete swm320-lq100 bsp
- add ch579m bsp
- add air105 bsp
- add RA series bsp
- add bsp-ft32
- migrate acm32f0x0-nucleo and acm32f4xx-nucleo into the subcatalog of acm32
- migrate at91sam9260 and at91sam9g45 into the subcatalog of at91
- migrate mb9xxx series into the subcatalog of fujitsu
- migrate lsxx series into the subcatalog of loongson
- add rockchip/rk3568 bsp
Documentation
- move documentation repo to rt-thread repo
- update documentation
- Fixed Program Memory Distribution - Basic.md
Tools
- fix the problem that print 'b' when complier code that after RT-Threadv4.0.3
- use the relative path to create "CMakefile.txt" when use "scons" command
- allow users to set specific link scripts
- update the template for projcfg.ini in rt-studio
- keil.py Distinguish LOCAL_CFLAGS/LOCAL_CXXFLAGS, refine file control
RT-Thread v4.1.0 Beta released
Change log since v4.0.4
Kernel
- rt_show_version update the year
- Improve comments and parameter checking
- [pm] beautify code
- remove RT_THREAD_BLOCK
- remove .init_priority
- update notes
- Delete an extra semicolon
- change all double-empty-lines to single-empty-lines
- move some __on_rt_xxxxx_hook from rtdef.h to dedicated c soure files
- [kservice] add RT_KSERVICE_USING_STDLIB_MEMSET、 RT_KSERVICE_USING_STDLIB_MEMCPY
- [memheap] Fix 64 bit potential risk
- update Kconfig, add RT_HOOK_USING_FUNC_PTR
- Improving hooking methods
- Backward compatible with existing function-pointer based hooking method
- Using RT_USING_HOOK as an on/off switch
- Introducing a new low-overhead macro-based hooking method
- [include/rtthread.h] Add function declarations to avoid compilation warnings
- ipc init/create add flag judgement
- Adjust RT_ASSERT and RT_DEBUG_NOT_IN_INTERRUPT to maintain code style
- Add a new algorithm to find the lowest non-zero bit of a byte
- Add weak RT_KSERVICE_USING_TINY_FFS definition
- A simplified version of rt_ffs function
- Add RT_WEAK for rt_vsnprintf
- Change the return value type from signed int to int, in accordance with ISO C standards, to prevent compiler errors
- Fix rt_size_t as rt_uint32_t
- Cfg cancels rt_kprintf declaration
- [kservice] add return value's comment
- Modify rt_size_t's type
- [timer] Update the RT_TIMER_CTRL_GET_STATE code in rt_timer_control
- Fix up .bss size define in link.lds and set spsel=1 in aarch64
- remove duplicate work between idle and thread_exit
- When memheap memory management is used, rT_malloc 0 returns RT_NULL, consistent with slab and small memory management algorithms.
- Aligns the address passed in by rt_system_heap_init when using the memheap memory management algorithm
- Set rt_thread_timeout to a private function
- Add attribute(...) for rt_kprintf() to let the compiler check the format string parameters
- Return thread error when resumed by signal
Components
-
libc
- Clear the POSIX/IO folder
- Move libdl to posix folder
- Add the support for PSE51
- Optimize the nanosleep function
- Add RT_USING_POSIX_STDIO
- To deal with compilation problems under win32 platform
- Remove getline
- Create 'posix' folder and move related files into it
- Put getline into posix folder
- Optimize posix structure in libc
- Eliminate judgments in code that rely on RT_LIBC_USING_FILEIO
- Move libc.c/.h to posix folder
- Remove gettid and other functions that do not comply with PSE51
- Add RT_USING_POSIX_SELECT RT_USING_POSIX_POLL
- Add RT_USING_POSIX_DELAY
- Add RT_USING_POSIX_STDIO
- Add delay.c as default
- Select RT_USING_POSIX_STDIO for RT_LIBC_USING_FILEIO
- Add readme
- Revert kconfig of pthread
- Move mmap to src folder
- Implement delay functions as RT_USING_POSIX_DELAY
- Fix a bug caused by two different macro encoding methods in fcntl.h
- Improve IAR and KEIL's read write pile function
- Memory functions add error warnings when HEAP is not enabled
- Revise some RT_USING_POSIX to RT_USING_POSIX_DEVIO
- Add RT_USING_POSIX_FS
- Separate posix into a Kconfig directory
- Fix the bug of _sys_read and _sys_write
- Modify time.h to sys/time.h
- Add dataqueue.c function annotation
- Fix armclang Cpp11 memory leak and compilation warning issues
- Add ipc header files
- Create the mman folder
-
drivers
- Rename src folder as ipc
- Optimize scripts for compiler judgment
- Add rt_work_urgent
- Change the time parameter to ticks to prevent misinterpretation of the unit as ms
- Improve comment
- [sdio] Fix compile warning and optimized code.
- Rename rt_workqueue_critical_work as rt_workqueue_urgent_work
- Fix sensor_cmd.c build error.
- Cputime support 64bit.
- Update cputime_cortexm.c support 64bit.
- Add IPC for POSIX and add pipe for it
- [components] framework update
- Add waitqueue.c function annotation
- Fix compile warning in cdc_vcom.c
-
lwip
- Improve lwip support for 64-bit architecture
- Remove lwip 2.0.2
- Fix ioctl and lwip socket definitions
- modify annotation for sys_arch_mbox_tryfetch
- Fix the return value for sys_arch_mbox_fetch in lwip stack
- Fix dhcpd not including version 2.0.3
- Define RT_USING_BIG_ENDIAN for the long-term version
- ping cmd with specified netif in lwip-2.1.2
- Fix sys_arch.c
- Solve the conflict between multi BYTE_ORDER(s)
- Fix the problem of implicit declaration for "lwip_ip4_route_src".
-
dfs
- Move dfs_posix.h to legacy/dfs/dfs_posix.h
- Move dfs_posix dfs_poll dfs_select.c to posix folder
- Remove dfs_select.h and dfs_poll.h
- Update fatfs to the latest version
- Saved dfs_poll.h dfs_select.h,add warning log
- Remove RT_USING_LIBC from dfs_fs.h
- Move dfs back
-
Shrink pThread to POSIX. Change DFS from POSIX to POSIX from DFS
-
Adjust the SAL dependency
-
Implement legacy support
-
Revise RT_USING_POSIX_STDIO to RT_USING_POSIX_DEVIO
-
Add macro definition restrictions to finsh set Device calls
-
shell
- Update the list_timer cmd.
- Update the code format
-
kservice
- Optimize RT_PRINTF_LONGLONG,reduce duplicate code
- Simplification RT_PRINTF_PRECISION
- Fix the problem of rt_strlen crashed in win32
-
[kernel] Collating of Kconfig
-
[ulog] Add ulog backend filter.
-
[posix] Organize IO categories according to advanced Unix environment programming
-
Add creat() function
-
[Ymodem] silent warnings
-
Use rt_memcpy rt_memset instead of memcpy memset
-
Fixed AT component in CLI mode, the command input is too long, resulting in the array out of bounds
-
[example] Remove RT_USING_TC
-
Fix armclang Cpp11 memory leak and compilation warning issues
-
Improve and add comments in examples/network/ including tcpserver.c
BSP and CPU porting
-
[at91sam9260] Fix "rt_interrupt_dispatch" Undefined error
-
Add pulse encoder porting to imxrt1052
-
libcpu
- Solve the problem of mixing tab and space
- [arm] Fix thumb instruction set assembly syntax error
- [aarch64] Add smp support
- [nuclei] Fix context switch in nuclei
- Fix s-mode issue
- [t-head] Fix rt_hw_interrupt_disable/rt_hw_interrupt_enable bug
- [libcpu] Add ARCH_CPU_BIG_ENDIAN
-
Add and update gd32 bsp
- gd32103c-eval
- gd32105c-eval
- gd32107c-eval
- gd32303e-eval
- gd32450z-eval
- gd32105r-start
- gd32205r-start
- gd32305r-start
-
Update n32g452xx
- Reinit .config based on default setting
- Regenerate rtconfig.h based on default configuration
- Reformat code
- Init update
- Add rt_pin_get support
- Add n32g45x can driver
- Unified header file definition. "GPIO_H__" to "DRV_GPIO_H". "USART_H" to "DRV_USART_H"
- In drv_pwm.c, variable meaning is different with RT-Thread interface definition. Fixed and tested.
- Add support for UART4/UART5.
- In drv_gpio.c Modify "N32F10X_PIN_NUMBERS" to "N32G45X_PIN_NUMBERS"
- Perfect ADC driver and format code
- Add ble support
- Fix formatting issues
- Remove unnecessary comments
- Add gpio input nopull
- rtc add version check
- n32g452xx direct structure base at32
-
Nuvoton
- Support LVGLv81 RTT music demo for N9H30 and NUC980.
- Update drivers
- [N9H30/NUC980] Update SDH driver
- Fix SDH_Set_clock function.
- Correct EMMC, SDH0 and SDH1 options for N9H30.
- Fix IRQ trap issues.
- Update porting drivers and configurations.
-
[raspberry-pico] Add lvgl_8.1.0 support
-
simulator
- Resolves the warning that the "Gm" option was rejected and will be removed in a future release
- Clear the warning under vs
- update project
-
[gd32] Repair startup_gd32f30x_cl.s
-
Remove the problematic rtconfig.h
-
[console] Fixed an error when using device without defining RT_USING_DEVICE
-
Use clang instead of __CLANG_ARM
-
Update essemi bsp
- es32f0654
- es32f369x
- es32f365x
-
[nuclei] change hbird_eval bsp to nuclei_fpga_eval
-
The sconscript script in the application folder increases the recursion searching capability
-
[Vango V85xx] modify NULL to RT_NULL
-
fix the compiling issue for qemu-riscv64
-
update K210 bsp and base on https://github.com/kendryte/K210-Micropython-OpenMV
-
[lpc55s69_nxp_evk]
- Fix the scons --dist
- Add the fixed gcc version
- Add the ci machine
-
Correction of 'BSP /Copyright notice.md' errors
-
nrf5x
- Add the fixed lds
- Add hwtimer driver
- Add hwtimer config & tinyusb config
- Fix i2c driver bug
-
Remove the bsp of nrf51822
-
Add tkm32f499 bsp and flash_download app
-
Remove empty rt_hw_us_delay
-
[at32] Optimized the pin-index algorithm
-
ra6m4
- Organize the project configuration
- Add DAC, ADC and SPI drivers
- Formatting code Style
- Add Flash Driver
- Add SPI, Flash, ADC, DAC documentation
- Add PWM driver
- Fix incorrect dependency macros in scons scripts
- Fix bugs in the code
- Update the error description in the documentation
-
MAX32660-EVK
- Update pin map instruction
- Add MAX32660-EVK pin map
- drv_soft_i2c.c was not in libraries
- delete drv_soft_i2c.c for it was not be used
-
[bluetrum] add flash support
-
[ra6m4-cpk] add gcc build support.
-
stm32
- Fix STM32 USB driver matching hal library version
- stm32h743-openmv-h7plus bsp add sdram for openmv
- Add tinyusb for stm32 driver
- Add stm32g474-st-nucleo bsp
- Add stm32u575-st-nucleo bsp
- Add stm32l552ze-nucleo bsp
- [gcc] Fix stack 0 bug, expand stack to 0x400 (same as Keil IAR)
- Modify variable name p_tm to tm
- drv_common.c add LOW_E for Error_Handler
- Add i2c config for stm32l496-st-nucleo bsp
- For STM32F4 series, CAN is configured according to different ABP1 bus frequencies
- Improved STM32H7 series SPI driver using DMA
- Add BSP ART-PI down...
RT-Thread v4.0.5 released
Change log since v4.0.4
Kernel
- Remove weak symbol from
rt_memset
,rt_memcmp
, and add it forrt_vsnprintf
Components
- Update Libc
- Fix the error when invoking
fopen
with mode "b"
- Fix the error when invoking
- [AT] Fix the overflow problem of input array
- lwIP
- Fix the problem of implicit declaration of "lwip_ip4_route_src"
- Solve the conflict between multi BYTE_ORDERs
BSP
- [qemu-vexpress-gemini] fix build errors
- STM32
- Add SOC_SERIES_STM32G0 to use "stm32_wdt.hiwdg.Init.Window = 0x00000FFF"; otherwise, the watchdog will always reset.
- [STM32L4] Fix the failure of the first erase after programming
- [GD32F4xx] Fix the problem of startup file
- Revert STM32 stack size to 0x400, which is set by mistake in #5129
RT-Thread v4.0.4 released
Change log since v4.0.3
Kernel
- Update memheap auto binding policy
- Remove rt_thread_exit function
- Improve API annotations and code comments
- Standardize internal function naming
- Add recessive RT_USING_ASM_MEMCPY definition to Kconfig
- Add RT_PRINTF_LONGLONG option to Kconfig, not selected by default
- Clear support for RT_PRINTF_LONGLONG in kservice.c
- Fix RT_PRINTF_LONGLONG is supported by default in 64-bit mode
- Solve the problem that FINSH cannot respond to serial port input in multi-core mode
- Optimize the comment for ipc
- Adjust the code to support cpu usage
- Adjust the exception handling code structure to support backtrace functionality
- Remove the mutex RT_IPC_FLAG_FIFO function
- Remove switch_to_sethook function
- Add idle reclaimed resources
- Change defined(__CC_ARM) || defined(__CLANG_ARM) to ifdef __ARMCC_VERSION
- Fix comment error for rt_mutex_detach().
- Remove the rt_sscanf statement
- Add RT_WEAK for rt_malloc_align,rt_free_align
- Changed the memory heap protection mechanism from FIFO to PRIO
- Remove fix priority inversion bug of mutex
- Add volatile to the rt_tick variable to prevent compiler optimization problems
- Keep the atomicity of idle task hook function calls
- Fix the crash problem after opening Oz optimization on ac6.
- Add protect to the rt_tick_increase critical section
- Add rt_mutex_trytake function
- Improve kernel stability
- Remove C99 dependencies
- Add conditional compilation for _has_defunct_thread function
- Clarify the context
- Add get/set microsecond time control command
- Fix code comment error for function rt_memset().
- Remove rt_device_init_all() function
- Adjust graphics device driver definitions
- Unsigned comparisons should still be used when the signed comparison is undone
- Fix compile error when using LOG_HEX(...) function but RT_USING_ULOG not defined
Components
- Support armclang
- Optimized system for suppoort gcc
- Update Libc
- Create a gcc folder and merge the newlib and partical folders
- Optimized system to support GCC
- Fix support system function
- Fix asctime_r return value
- Lowers the action of calling printf before libc initialization to the warning level
- Replace dfs_select.h with standard sys/select.h
- The RT_LIBC_USING_TIME macro definition remains after RT_USING_LIBC is enabled
- Optimized fcntil.h definition
- Fix syscall was optimized to incorporate minilibc into syscalls.c file
- Rebuild _libc_init_array to prevent chip startup failure under GCC
- RT_USING_NEWLIB and math libraries are defined without libc enabled
- Fix the conflict warning of read and write functions
- Remove libc_signal.h and libc_fdset.h
- Fix an issue where keil did not compile properly
- Remove rtlibc, libc_stdio.h, libc_dirent.h, libc_ioctl.h,libc_signal.h,libc_fdset.h,libc_errno.h, libc_limits.h
- Add delay when the scheduler is not running
- Fix armClang support issues
- usleep supports calling in interrupts.
- Fix sys header file import when liBC is not enabled
- The gettimeofday () function supports time zones and specification set_timeval/get_timeval returns a value
- Fix warning of posix_signal
- Fix bug where nonegcc folder path was not added to project in Simulator Win32
- Fix error caused by libc removing sys/errno.h file
- Remove _TIMESPEC_DEFINED
- Add the RT_LIBC_FIXED_TIMEZONE default value to time.c to prevent projects that do not have RT_LIBC_FIXED_TIMEZONE configured
- Add the ability to manually set the time zone
- Add riscv.c dlmodule can support riscv architecture
- Implement pid_t gettid(void)
- Implement isatty()
- Implement set_timeval
- Change the libc directory to common and none-gcc
- Remove dlib and armlibc
sys
folder - Fix MDK build error when using gmtime_r
- Optimize get_timeval and set_timeval conditional compiled code structure
- Update mktime support fixed timezone
- Add microseconds time get feature in gettimeofday
- LOG_W will cause a recursive printing if ulog timestamp function is turned on
- Remove inherent mutex protect
- Update drivers
- Fix stdint in cputime
- Delete NTP configurations
- Make rt_soft_rtc_init private
- Bypass controlling commands in touch class to driver
- Update the RTC device driver framework to unify and simplify RTC device registration and access
- Add i2c bus control api
- Update uac class, remove GPL code
- Fix measurement unit of "percentage" to "permillage" for accuracy
- Add spo2 sensor support in drivers/include/drivers/sensor.h and drivers/sensors/sensor.c
- Optimize pin.h, sensor.h, rtdevice.h to avoid reverse inclusion
- Update usb enlarge uconfig_descriptor's data array space
- Add security devices
- [netif] Fix the eth_tx_msg protection
- Update utest
- Add kernel testcases
- Fix TC_FAIL_LIST_MARK_FAILED Subscript calculation error
- Fix comments error in ringbuffer and workqueue
- Update ringbuffer
- Add an interface comment
- Local variables are used to prevent resource competition
- Write_index bug in rt_ringbuffer_put_force
- Update workqueue
- Add an interface comment
- Remove rt_delayed_work_init()
- Privatize the rt_work_sys_workqueue_init function
- Fix an unexpected suspension of critical condition threads
- Fixed timer ASSERT exception due to multithreaded scheduling
- Optimize the inclusion relationship between dfs.h and dirent.h
- Update finsh
- Restore the FINSH_USING_MSH definition for compatibility
- Expose the finsh_getchar function
- Fixed _cmd_xxx command unavailable due to finsh removal
- Update Kconfig is more hierarchical
- The finsh component can optionally include built-in commands
- Repaie that the table key on msh do not work
- The list-thread command adds the bind core display for multiple cores
- Add support for tasking toolchain
- Add mount/umount cmd
- Fix ringblk_buf error when no longer using dynamic memory
- [timezone] implement timezone
- [DeviceDriver] Change the special device commands form 0x1X to 0x2X. It will avoid same of general device commands
- Update AT
- Update old_urc_table to new_urc_table
- Optimized at socket memory leak modification
- Add at_utils_send virtual function
- Fix at_vprintf and at_vprintfln and end_sign response
- Fix at_server_getchar spelling error
- Add device type USBOTG to redef.h
- [newlib] fix compile error when closing RT_USING_CONSOLE
- Update rtc
- Add RT_DEVICE_CTRL_RTC_GET_TIMEVAL and RT_DEVICE_CTRL_RTC_SET_TIMEVAL ops
- Remove RT_DEVICE_CTRL_RTC_GET_TIME_US and RT_DEVICE_CTRL_RTC_SET_TIME_US. Add RT_DEVICE_CTRL_RTC_GET_TIMEVAL and RT_DEVICE_CTRL_RTC_SET_TIMEVAL. The RT_DEVICE_CTRL_RTC_GET_TIMEVAL cmd can get second time and microsecond time.
- Change core.c/.h name to rtc.c /.h
- Update rt_rtc_dev_register function name to rt_hw_rtc_register
- Change localtime name to localtime_r
- [ethernetif] replace rt_memcpy with SMEMCPY
- [sdio] remove rt_mmcsd_blk_init
- Update time
- Fix an issue where POSIX related functions were not protected for critical sections
- Adjust the judgment logic of posiX related functions to obtain time results
- Rename nonstandard liBC functions and reposition the time.h definition
- Revert the old code
- Fix the sem init check bug in pthread.
- Fix MMC initialization error, write card->csd as card->cid
- Update serial
- Add CTS/RTS flowcontrol
- Implement function of getting window's size(TIOCGWINSZ)
- Optimized RT_USING_POSIX_TERMIOS precompilation
- Serial_v2 support device ops feature
- Fix the problem that serial Close did not clear the callback interface
- Optimize send non-blocking problem when serial_close does not execute rt_completion_done
- Optimize DMA receive processing flow and decouple the driver to call the API interface of the serial port framework
- Added the Serial V2 framework and the Serial port driver based on STM32
- Serial_v2 support device ops feature
- Fix do RT_DEVICE_CTRL_CLOSE cmd when close serial device regardless of DMA config
- Update lwip
- Fix lwIP critical section protection bug
- Set default lwip stack for old bsp folder.
- Change default lwip stack to lwip2.0.3
- Fix delete useless code.
- The "event_callback" will be change by RT-Thread dfs.
- Adjust the string.h position
- LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h>
- LWIP2.0.2 and 2.1.2 remove ERRNO
- Remove ESHUTDOWN from LWIP
- Remove the possible critical zone risk
- Iperf speed test have been stable.
- The overflow problem of lwip rx thread mailbox.
- [pm] Index should be less than PM_MODLUE_MAX_ID
- [cputime] Add sys/errno.h
- Update msh
- Implement tail command
- Fix shell msh_exec memory over-bound.
- Update dfs
- Fix F_GETFL/F_SETFL should be handled by the drivers.
- Change the default maximum number and type of the file system to 4
- Add format_ignore file, exclude fatfs format check
- Add comments for _device_fs
- Update ymodem
- Modified the enabling conditions of YMODEM USING FILE TRANSFER
- Check the file path's legitimacy of'sy' command
- Add new component: rt-link
- [net] Add the function of set [internet up] status, activate the callback.
- [components] Remove uip
- Update ulog
- Using gettimeofday for timestamp get
- Fix thread info show when kernel not startup
- Increase the usec check time
- Add output locker enabled API
- Update FatFs
- Update the mutex protection timeout can be set using Kconfig
- Fix the time dependent function opening condition
BSP and CPU porting
- Support armclang
- [stm32h750-artpi-h750] Complete bsp
- [ls2k] Fix missing header file applications
- [AT32] Complete BSP
- Add _CRT_DECLARE_NONSTDC_NAMES=0 macro definition in simulator bsp
- Refresh the project and remove rtlibc an...