Skip to content

Releases: RT-Thread/rt-thread

RT-Thread v5.1.0 released

22 Apr 06:50
Compare
Choose a tag to compare

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

08 Oct 03:25
Compare
Choose a tag to compare

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

21 Jun 14:54
Compare
Choose a tag to compare

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

    • Add dfs-v2.0
    • Fix potential Memory leak problems(#7378)
    • Fix tmpfs spinlock error. (#7216),nfs 64bit arch fault
  • 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)

    • Fix lwp _load_script. (#7405)
    • Modify rt_err_t change to sysret_t in the lwp_syscall (#7374)
    • Modify when fork Child process, lwp_struct_copy function adds copy working_directory function (# 7380)
  • Network

    • Add more hook functions
    • Fix ping timeout calculation bug(#7545),ipv6 compatibility issues(#7339)
    • Fix next-hop finding in lwip_ip4_route_src. (#7504)
    • Modify use the interface to set the default netdev
    • optimize at_vprintfln and network related Kconfig
  • 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

31 Mar 13:47
897ba36
Compare
Choose a tag to compare

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

22 Aug 02:31
aab2428
Compare
Choose a tag to compare

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...
Read more

RT-Thread v4.1.1 Beta released

16 Aug 11:56
1ba47b7
Compare
Choose a tag to compare
Pre-release

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...
Read more

RT-Thread v4.1.0 released

30 Mar 09:13
201bd88
Compare
Choose a tag to compare

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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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

29 Jan 14:23
Compare
Choose a tag to compare
Pre-release

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...
Read more

RT-Thread v4.0.5 released

29 Dec 11:35
158bb5e
Compare
Choose a tag to compare

Change log since v4.0.4

Kernel

  • Remove weak symbol from rt_memset , rt_memcmp, and add it for rt_vsnprintf

Components

  • Update Libc
    • Fix the error when invoking fopen with mode "b"
  • [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

15 Oct 10:10
Compare
Choose a tag to compare

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...
Read more