Rt Thread Versions Save

RT-Thread is an open source IoT real-time operating system (RTOS).

v5.0.2

6 months ago

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.

v5.0.1

10 months ago

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

v5.0.0

1 year ago

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.

v4.1.1

1 year ago

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 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
    • create new fcntl.h file for vs
    • optimize lvgl folder structure about simulator
    • avoid conflicts between winsock.h and sys/time.h
    • improve Kconfig structure add Onboard Peripheral Drivers menu
    • enable BSD socket by default
    • add RTC menuconfig
    • clean the compiler warning under windows
    • optimize the SD mount logic
    • remove LV_DISP_DEF_REFR_PERIOD which are defined manually
    • winsock implement on windows simulator
    • improve init process
    • sync lvgl win32 driver
    • fix some warnings
    • fix the problem of path cannot be find and cause failure
    • change "exit()" to "exit(1)"
  • qemu

    • add compiler option "-Werror" for qemu-vexpress-a9 and qemu-virt64-aarch64
    • Add quick start guide for QEMU on macOS
    • chmod u+x shell script for qemu-risc-virt64
    • remove LV_DISP_DEF_REFR_PERIOD which are defined manually
    • rename qemu-riscv-virt64 to qemu-virt64-riscv
    • add remount operation to avoid dfs_mout fail for qemu-vexpress-a9
    • don't use sbi in m-mode for qemu-virt64-riscv
    • Add more VirtIO drivers for qemu-virt64-aarch64
    • Fixup VirtIO queue align size for qemu-virt64-aarch64
    • improve qemu readme
    • update qemu project
    • Add VirtIO-Console and GPIO driver for qemu-virt64-aarch64
    • Update drivers' code for qemu-virt64-aarch64
  • airm2m

    • fix the exception for i2c
  • n32g452xx

    • add spi3
    • avoid system pause when timeout check
    • add hardware CRC support
    • update the driver about "can"
  • microchip

    • Add Microchip SAM series MCU support
    • add ethernet, ADC, IIC support
    • update the serial driver for samc21/same54/same70
    • add SAML10 series
  • nuvoton

    • Disable TRNG function in default configuration
    • Update nuc980iot configuration
    • remove LV_DISP_DEF_REFR_PERIOD which are defined manually
    • Add private data pointer for MTD-NAND
  • at32

    • add at32f435_437 board
    • update at32f435_437 adc driver
    • add at32f413 and at32f415 series
    • modify the folder structure
    • optimize code to improve network throughput performance
  • NXP

    • rt1052 add RT-Thread studio entrance
    • imxrt1060 exchange On-chip Peripheral Drivers and Onboard Peripheral Drivers menu in Kconfig
    • prepare to support squareline studio
    • imxrt1060 optimize lvgl folder structure about simulator
    • imxrt1060 support NXP GUiGuider
    • imxrt1060 support keil armclang compiler
    • support touchpad
    • add rt1170/rt1020 bsp
    • update rt1170n menuconfig
    • Implement api docking of rt_pin_get
    • Fixed Touch pannel for imxrt1060-nxp-evk
    • mimxrt1170 Qspi flash bootup problems
    • optimize the "sconsript" under floder "applications"
    • Added LCD Touch Int pin to ioconfig
    • During testing GT911 would not come out of reset because INT pin could not be driven low or high.
    • upgrade the SDK of RT1170-EVK to 2.12
    • fix a tiny problme this is report in slack group for imxrt1060
    • remove suareline studio specific support for imxrt1060
    • update enet for rt1170
    • fix gpio interrupt bug in drv_gpio.c
    • format issue report in slack group
    • move phy driver into drivers folder
    • add double network interface and driver for phy8211F
    • add sdram driver for rt1170
    • fix the compiler error bettwen "rtc.c/rtc.h"
    • format files for rt1170
  • Nuclei

    • add null CCFLAGS for Nuclei bsps
  • renesas

    • add BSP doc
    • add RA2L1-CPK bsp
    • refreash the driver about flash, gpio and head file
    • add introduction of captouch
    • fix the error on drv_wdt.c
    • Add hardware i2c driver.
  • essemi

    • update es32f36xx libraries
    • Adapt es32f369x for RTduino
    • Fix a bug of I2C and edit some documents
    • remove libraries dependencies for rtduino function
  • esp

    • add the bsp of esp32c3
    • Add the gpio driver and readme.md for esp32c3
    • add Kconfig esp32c3
    • add ESP32 UART driver
  • k210

    • use new SDK packages
    • modify the folder structure of Kconfig
  • HC32

    • Add the BSP of HC32 series
    • add rtc driver
    • Unified management interrupt vector table
    • configuration file revise
    • add usart1/2/3 configure for hc32f460
    • add can support
    • Fixed a problem where the descriptor for multiple serial ports was overwritten
    • add virtual iic driver
    • add adc support
    • fix bugs of hc32 driver adc and can
    • add rtc driver for hc32f460
    • support MDK AC6 compiler
    • fix the system crash if can bus is under bus off state
    • fix a problem that configure can filter is useless
    • fix a problem that error interrupt isn't work
    • modify precompile waring for uart,spi driver
    • add the driver about timerA
    • change RT_CONSOLE_DEVICE_NAME from "uart" to "uart1"
    • add the driver of WDT
  • raspberry-pico

    • optimize lvgl folder structure
    • Fix the issue of inaccurate system tick.
  • nuc980

    • Fix bug when restarting and getting interrupts that are not processed
  • rockchip

    • add rk2108 base support
  • nrf5x

    • add doc for development on rtt-studio
  • adapt lvgl 8.3.0

  • n32

    • add n32 bsp
    • modify i2c and rtc drivers
  • fm33lc026

    • add gpio support
    • refreash FM33LC0xx_FL_Driver to FL_xxx_v2.3.1
  • apm32

    • add apm32f407ig-minibroard
    • add the F1xxx library of APM32 for APM32F10x_SDK_V1.6
    • add the F4xxx library of APM32 for APM32F4xx_SDK_V1.2
  • ifx

    • add cypress board of CY8CKIT-062S2-43012
    • add hwtimer device
  • raspi3-32

    • fix some bug of funtion '__rt_ffs'
  • synwit

    • add swm341 bsp
  • tms320f28379d

    • update .config: select FINSH_USING_SYMTAB
    • fix finsh problems of using sym table

CPU

  • arm
    • add dsb and isb instructions in the end of rt_hw_context_switch_to
    • fix compilation warning
    • Add exception install function
    • optimize the complier error
    • fix armclang error when enable LTO
    • fix rt_hw_cpu_dcache_ops clean invalid bug
  • arm/Cortex-M33
    • Add Cortex M33
    • add macro ARCH_ARM_CORTEX_SECURE to makesure rtos system can run in the cpu safe mode
  • arm/Cortex-R4
    • fix "prefethc abort"
    • add RT_USING_CPU_FFS to avoid redefined error about "__rt_ffs()"
  • risc-v/virt64
    • fix parameter for call handle_trap

Document

  • Fixed the description of logging usage in the Contributing code Guide
  • Update English coding style for more idiomatic use
  • Overhaul of document, fixing multiple grammar mistakes and editing for clarity
  • Further edits of documentation for clarity
  • correct the license description
  • Fix the doxygen file
  • update env document append some information about menuconfig -s
  • handle the grammar and wording fixes in memory.md
  • update at/adc/hwtimer/i2c/pin/rtc/sensor docs

Tools

  • Fix bugs for processing command line parameters
  • CI
    • update action use python@v3
    • add nxp check
    • update stm32 ci checking list
    • restrict rt-thread organization
  • Copyright
    • improve copyright for old files
  • Scons
    • sort the source file path
    • Add Python 3 compatibility patch
    • rtconfig.CROSS_TOOL->rtconfig.PLATFORM
    • Decouple the addition of command line arguments
    • support command: scons --target=xmake
    • Add CMAKE_EXPORT_COMPILE_COMMANDS ON for cmake
    • add new option for building library
  • Readme.md add Deutsche and Spanish version
  • update readme for languages choices
  • append path for scons env
  • Update the libs import for eclipse project
  • modify the reorder problem for "include path"
  • allow setting optional url for packages via envvar
  • format python code
  • remove .sconsign.dblite when scons clean

v4.1.1-beta

1 year ago

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
    • create new fcntl.h file for vs
    • optimize lvgl folder structure about simulator
    • avoid conflicts between winsock.h and sys/time.h
    • improve Kconfig structure add Onboard Peripheral Drivers menu
    • enable BSD socket by default
    • add RTC menuconfig
    • clean the compiler warning under windows
    • optimize the SD mount logic
    • remove LV_DISP_DEF_REFR_PERIOD which are defined manually
    • winsock implement on windows simulator
    • improve init process
    • sync lvgl win32 driver
    • fix some warnings
    • fix the problem of path cannot be find and cause failure
    • change "exit()" to "exit(1)"
  • qemu
    • add compiler option "-Werror" for qemu-vexpress-a9 and qemu-virt64-aarch64
    • Add quick start guide for QEMU on macOS
    • chmod u+x shell script for qemu-risc-virt64
    • remove LV_DISP_DEF_REFR_PERIOD which are defined manually
    • rename qemu-riscv-virt64 to qemu-virt64-riscv
    • add remount operation to avoid dfs_mout fail for qemu-vexpress-a9
    • don't use sbi in m-mode for qemu-virt64-riscv
    • Add more VirtIO drivers for qemu-virt64-aarch64
    • Fixup VirtIO queue align size for qemu-virt64-aarch64
    • improve qemu readme
    • update qemu project
    • Add VirtIO-Console and GPIO driver for qemu-virt64-aarch64
    • Update drivers' code for qemu-virt64-aarch64
  • airm2m
    • fix the exception for i2c
  • n32g452xx
    • add spi3
    • avoid system pause when timeout check
    • add hardware CRC support
  • microchip
    • Add Microchip SAM series MCU support
    • add ethernet, ADC, IIC support
    • update the serial driver for samc21/same54/same70
    • add SAML10 series
  • nuvoton
    • Disable TRNG function in default configuration
    • Update nuc980iot configuration
    • remove LV_DISP_DEF_REFR_PERIOD which are defined manually
    • Add private data pointer for MTD-NAND
  • at32
    • add at32f435_437 board
    • update at32f435_437 adc driver
    • add at32f413 and at32f415 series
    • modify the folder structure
    • optimize code to improve network throughput performance
  • NXP
    • rt1052 add RT-Thread studio entrance
    • imxrt1060 exchange On-chip Peripheral Drivers and Onboard Peripheral Drivers menu in Kconfig
    • prepare to support squareline studio
    • imxrt1060 optimize lvgl folder structure about simulator
    • imxrt1060 support NXP GUiGuider
    • imxrt1060 support keil armclang compiler
    • support touchpad
    • add rt1170/rt1020 bsp
    • update rt1170n menuconfig
    • Implement api docking of rt_pin_get
    • Fixed Touch pannel for imxrt1060-nxp-evk
    • mimxrt1170 Qspi flash bootup problems
    • optimize the "sconsript" under floder "applications"
    • Added LCD Touch Int pin to ioconfig
    • During testing GT911 would not come out of reset because INT pin could not be driven low or high.
    • upgrade the SDK of RT1170-EVK to 2.12
    • fix a tiny problme this is report in slack group for imxrt1060
    • remove suareline studio specific support for imxrt1060
    • update enet for rt1170
    • fix gpio interrupt bug in drv_gpio.c
    • format issue report in slack group
    • move phy driver into drivers folder
    • add double network interface and driver for phy8211F
    • add sdram driver for rt1170
    • fix the compiler error bettwen "rtc.c/rtc.h"
  • Nuclei
    • add null CCFLAGS for Nuclei bsps
  • renesas
    • add BSP doc
    • add RA2L1-CPK bsp
    • refreash the driver about flash, gpio and head file
    • add introduction of captouch
    • fix the error on drv_wdt.c
    • Add hardware i2c driver.
  • essemi
    • update es32f36xx libraries
    • Adapt es32f369x for RTduino
    • Fix a bug of I2C and edit some documents
  • esp
    • add the bsp of esp32c3
    • Add the gpio driver and readme.md for esp32c3
    • add Kconfig esp32c3
    • add ESP32 UART driver
  • k210
    • use new SDK packages
    • modify the folder structure of Kconfig
  • HC32
    • Add the BSP of HC32 series
    • add rtc driver
    • Unified management interrupt vector table
    • configuration file revise
    • add usart1/2/3 configure for hc32f460
    • add can support
    • Fixed a problem where the descriptor for multiple serial ports was overwritten
    • add virtual iic driver
    • add adc support
    • fix bugs of hc32 driver adc and can
    • add rtc driver for hc32f460
    • support MDK AC6 compiler
    • fix the system crash if can bus is under bus off state
    • fix a problem that configure can filter is useless
    • fix a problem that error interrupt isn't work
    • modify precompile waring for uart,spi driver
    • add the driver about timerA
    • change RT_CONSOLE_DEVICE_NAME from "uart" to "uart1"
    • add startup file for apm32f4xx
    • add the driver of WDT
  • raspberry-pico
    • optimize lvgl folder structure
    • Fix the issue of inaccurate system tick.
  • nuc980
    • Fix bug when restarting and getting interrupts that are not processed
  • rockchip
    • add rk2108 base support
  • nrf5x
    • add doc for development on rtt-studio
  • adapt lvgl 8.3.0
  • n32
    • add n32 bsp
    • modify i2c and rtc drivers
  • fm33lc026
    • add gpio support
    • refreash FM33LC0xx_FL_Driver to FL_xxx_v2.3.1
  • apm32
    • add apm32f407ig-minibroard
    • add the F1xxx library of APM32 for APM32F10x_SDK_V1.6
    • add the F4xxx library of APM32 for APM32F4xx_SDK_V1.2
  • ifx
    • add cypress board of CY8CKIT-062S2-43012
    • add hwtimer device
  • raspi3-32
    • fix some bug of funtion '__rt_ffs'
  • synwit
    • add swm341 bsp

CPU

  • arm
    • add dsb and isb instructions in the end of rt_hw_context_switch_to
    • fix compilation warning
    • Add exception install function
    • optimize the complier error
    • fix armclang error when enable LTO
    • fix rt_hw_cpu_dcache_ops clean invalid bug
  • arm/Cortex-M33
    • Add Cortex M33
    • add macro ARCH_ARM_CORTEX_SECURE to makesure rtos system can run in the cpu safe mode
  • arm/Cortex-R4
    • fix "prefethc abort"
    • add RT_USING_CPU_FFS to avoid redefined error about "__rt_ffs()"
  • risc-v/virt64
    • fix parameter for call handle_trap

Document

  • Fixed the description of logging usage in the Contributing code Guide
  • Update English coding style for more idiomatic use
  • Overhaul of document, fixing multiple grammar mistakes and editing for clarity
  • Further edits of documentation for clarity
  • correct the license description
  • Fix the doxygen file
  • update env document append some information about menuconfig -s

Tools

  • Fix bugs for processing command line parameters
  • CI
    • update action use python@v3
    • add nxp check
    • update stm32 ci checking list
    • restrict rt-thread organization
  • Copyright
    • improve copyright for old files
  • Scons
    • sort the source file path
    • Add Python 3 compatibility patch
    • rtconfig.CROSS_TOOL->rtconfig.PLATFORM
    • Decouple the addition of command line arguments
    • support command: scons --target=xmake
    • Add CMAKE_EXPORT_COMPILE_COMMANDS ON for cmake
    • add new option for building library
  • Readme.md add Deutsche and Spanish version
  • update readme for languages choices
  • append path for scons env
  • Update the libs import for eclipse project
  • modify the reorder problem for "include path"
  • allow setting optional url for packages via envvar
  • format python code
  • remove .sconsign.dblite when scons clean

v4.1.0

2 years ago

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

v4.1.0-beta

2 years ago

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 download algorithm

    • Add lvgl music demo for stm32f469-st-disco bsp.

    • Refresh using dma2d,screen refresh average 25fps for stm32f469-st-disco bsp

    • Add esp8266 configuration option takeover

    • add SOC_SERIES_STM32G0 to use "stm32_wdt.hiwdg.Init.Window = 0x00000FFF", otherwise the watchdog always reset.

    • Fix STM32L4 series flash will fail to erase the first time after downloading the program

    • stm32l475-atk-pandora

      • Add ADC PWM pin definition
      • Preliminary realization of Arduino ecological compatibility
      • Add lcd_fill_array()
      • Add lvgl demo
      • Add BSP_USING_LCD_SAMPLE in rttlogo.h
      • Enable SPI3-DMA2 for LCD
      • Beautify kconfig of board
      • Fix issue where board folder sconscript script did not continue scanning subfolders
      • Improve the structrue of sconscript
      • Add ESP8266 quick build option, serial port driver is changed from V2 to V1
  • Fix compile warnings on qemu-vexpress-a9 platform (-Wimplicit-function-declaration)

  • [qemu-a9] add lvgl support.

  • [fix] The baud rate is configured according to the different APB1 frequencies. f4-series only.

  • [qemu] update Kconfig

  • Fix Raspi3 GPIO driver write bug

  • [ls1cdev] add stack size to avoid stack overflow when boot

  • [rp6m4-cpk] Add new drivers and improve BSP

Tools

  • CI

    • Optimize AutoTestCI trigger timing
    • Add scons tools test
    • Add the ci of nrf5x
    • Ci toolchain download using github link.
  • Fix bug with missing brackets in eclipse.py

  • Change ccflags to cflags,add LOCAL_CCFLAGS、LOCAL_CLFAGS、LOCAL_CXXFLAGS

  • Fix generate .project file error

  • Remove unused file 1.txt

  • Update buildbot.py

  • Fix adding empty lists and empty strings

  • Add function of auto-update rtconfig.h

v4.0.5

2 years ago

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

v4.0.4

2 years ago

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 and duplicate definitions in simulator bsp
  • Update libcpu
    • Modified the irq handle interface rt_hw_trap_IRq to support intercore IPI interrupt processing
    • Add interface dcache invalidate/dcache clean&invalidate
    • Adjust the stack_top to bss
    • Remove gtimer/pmu from cortex-a
    • Repair hard fault return bug
    • Add in Cortex-A to turn on the _rt_FFS implementation when RT_USING_CPU_FFS macro definition
    • Add interface to get Cortex-A Generic Timer frequency
    • Add GICV3 interrupt controller code, updated MenuConfig configuration options with utest config.h
    • Tidy up the cortex-a aarch32 boot code
    • Fix RTC driver compile error
    • add gic&gtimer interface
    • Optimized the condition for automatically enabling FPU when cortex-A does not define an exception
    • Fix inconsistent function behavior with different optimization levels
    • Correct cortex-m23 rvds.S including for armclang platform.
  • Fix simulator:
    • Fix sd_sim.c compilation error using rt_dgb instead of old debug output
    • Refresh the project and remove rtlibc and duplicate definitions
    • Add _CRT_DECLARE_NONSTDC_NAMES=0 macro definition
  • Fix stm32f407-explorer
    • Optimize fal Settings
    • Update readme
    • Implement ESP8266 configuration in extended module driver menu
    • Optimized Kconfig file system naming, SFUD registration w25Q128 name adaptive, avoid users to set more than one step name
  • Add more BSP on BSP framework:
    • VangoV85xx
    • hc32l136
    • ap32f103xe-miniboard
    • gd32407v-start
    • mm32f103x
    • ch32f103c8-core
    • n32g452xx
    • hc32l196
    • hc32f460petb
    • gd32f105c-eval
    • nrf52833
    • hc32f030c8t6-mini
    • fm33lc0xx
    • stm32l4r9-st-sensortile-box
    • stm32f302-st-nucleo
    • mm32f3270
    • stm32f407-robomaster-c
    • qemu-riscv-virt64
    • gd32350r-eval
    • stm32f407-armfly-v5
    • juicevm
    • stm32f207-st-nucleo
    • m2354
  • [ch32f103c8-core] rename function name: ch32f1_hwtimer_clock_init, ch32f1_hwtimer_clock_get
  • Fix thread-smart
    • Support T-HEAD Xuantie-E9xx Series CPU on Smart-EVB, eg. E906/F/D/P, E907/F/D/P
    • Formatting code
    • Add QEMU support, and code optimization for thead extension
  • [mm32f327x] Fix .ignore_format file path error
  • [hc32f4a0] Fix syntax errors in scons scripts
  • [x86] Enable romfs
  • Replace gmtime with gmtime_r
  • [swm320-lp100] Update libraries
  • [ft2004] Add gtimer support and fixed can driver initialization issues
  • Fix bluetrum
    • Optimizing the uart driver
    • Fix RTC driver building errors
    • Add RT_USING_CONSOLE judgment
  • [nrf52x] Optimize drv_wdt.c
  • [mm32f327x] Add on-chip flash driver
  • [imxrt1064-nxp-evk] Improved I2C, UART,LCD kconfig, fixed i2C imXrT_i2C_mST_xfer function that would write an address before reading data
  • [w60x] Fix UART1 function unavailable
  • [gd32450z-eval] Update firmware library and delete usb relate library codes
  • [raspi4-32] Update raspi4-32 eth drv
  • [bluetrum] Fix uart1 and uart2 cannot recv data
  • Fix STM32
    • Implement rtc driver to RTC framework V2.0
    • Add spi config increases irq_type
    • Fix driver library USBH initialization errors
    • Add timeval ops for STM32 platform Sub-second timestamp.
  • Remove BSP on BSP framework:
    • realview-a8
    • fh8620
    • gkipc
    • stm32f20x
    • efm32
    • zynq7000
    • stm32f1.0-mini-sysytem
  • Fix unused device frame error
  • Update GPL license to Apache-2.0, and format files
  • Fix incorrect setting of word length when parity check is enabled on the STM32 serial port

Tools

  • Support windows cmake tool
  • Optimization the EXTERN_LIB variable use
  • Update eclipse project after dist
  • Add default project name and project path while --dist-ide
  • Fix the problem of an error when opening menuconfig after the project is dist
  • Update cmake.py, add c++ support and libpath.
  • Python 3 compatibility support
  • Update eclipse.py to compatible tasking

v3.1.5

2 years ago

The v3.1.x is the long term support branch in RT-Thread. It's more focused on bug fixed and BSP update.

The following is the change log since RT-Thread v3.1.4.

Kernel

  • Fix the issue when block = NULL in rt_mp_free;
  • Fix the software issue when the system timer thread is pending
  • Fix the timer/software timer handling issue if the timeout function starts/stops/deletes this timer.
  • Fix an issue with rt_timer_start being broken and destroying the timer list
  • Fix bug of rt_memheap_detach
  • Fix the bug that the linked list is still mounted when the single timer is not modified
  • Fix the delay_until issue
  • Add mb mq value overflow-check code
  • Fix the rt_event_recv function, if the event met without blocking, assigning thread->event_set/event_info will goes well
  • Add the definition of the maximum value of ipc type
  • Fix the delay_until issue
  • fixed __rt_ffs bug on account of armclang LTO.
  • fixed rt_timer_list_next_timeout multi-task safe
  • fix the software issue when the system timer thread pending.
  • Fix the timer/software timer handling issue if the timeout function starts/stops/deletes this timer.
  • The cleanup operation is executed before the current thread exits
  • Modify cleanup to resolve the issue of unable to free memory and communication between threads
  • Fix double release for thread
  • Fix thread control bug about RT_THREAD_CTRL_CLOSE command
  • Fix the issue of critical protection when rt_thread_delete change the status of thread;
  • Fix bug in rt_realloc of mem.c, which may cause memory leak
  • Use object_find to implement thread_find/device_find
  • fix the timer code depends on c99

Components

  • Change rt_data_queue_peak to rt_data_queue_peek.
  • Add rt_data_queue_deinit and fix bug of dataqueue
  • Solve the issue that the do_pollfd function processing the underlying network device returns error -1
  • Fix the issue that when the network card device calls to close dhcp, the bottom layer no need to call the dhcp_stop function to close dhcp
  • Modify the spelling error of the macro definition, modify the printing error when printing the IMEI number
  • Fix the issue that the server closed the connection when web socket requests the data that comes back from the server, and the socket status is incorrectly judged at that point
  • Fix the issue of incorrect sal_getaddrinfo release when sal socket supports multiple network cards
  • Adjust where the AT socket callback function
  • Fix at_client, avoid creating the same client repeatedly and prevent working exceptions and memory leaks.
  • Fix the bug that rx_notice out of sync when the data is received after last rt_device_read() is zero
  • Change the header file included in some libc files from <rtthread.h> to <rtconfig.h> to narrow the scope of inclusion to prevent recursive compilation
  • [jffs2] modify the error check of rt_event_recv()
  • [audio] Fix compile warning, undefine var, and fixed re-include of audio
  • [serial] Fix the crash caused when the serial port receiving buffer is full and ULOG_USING_ISR_LOG is not turned on
  • [spi] Fix "response+1" causing hard fault of unaligned access to SPI memory of STM32 HAL library
  • [hwtimer] When getting the timer count, prevent overflow update due to the interruption
  • [dirver/i2c] i2c driver supports bus lock, STOP control
  • [usb] Fix bug in device descriptor that MAC OS enumeration failed
  • Fix the bug that USB cannot recognize composite device normally
  • Fix USB host core bugs
    • Limit >4 USB ports hubs
    • Double free intf
    • dname buffer size is too small
    • Reset child pointer after detaching instance
  • remove jffs
  • remove uffs

BSP and CPU porting

  • Add license info and code cleanup for vexpress-a9 BSP
  • Fix spelling mistakes of code
  • [allwinner_tina]Fix spi driver bug
  • Optimize BSP dist handle process
  • fixed a bug that caused system crash by changing the run_mode in low power mode
  • drv_flash_f7.c supports single bank mode
  • Optimize the pin-index algorithm for stm32
  • Fix the clock configuration issue of STM32 hardware timer
  • Adjust the interrupt priority configuration of some peripherals of the STM32 series BSP
  • Fix stm32 f1 series rtc bug
  • Fix PWM timer init about pwm
  • remove zynq7000
  • delete stm32f20x/fh8620/gkipc/realview-a8
  • update sam7x/simulator/qemu-vexpress-a9/imx6ul
  • add Copyright_Notice.md

Tools

  • Fixed python 2.x cmp
  • Rename GCC_VERSION to GCC_VERSION_STR
  • Optimize project group sort by name
  • Improve the logic of generating rtconfig.h files in scons with command scons --menuconfig
  • Fixed an issue that *.s src files couldn't be compiled
  • Fixed c99/siginfo_t issue caused by gcc_version