Releases: RT-Thread/rt-thread
RT-Thread v4.0.5 released
Change log since v4.0.4
Kernel
- Remove weak symbol from
rt_memset
,rt_memcmp
, and add it forrt_vsnprintf
Components
- Update Libc
- Fix the error when invoking
fopen
with mode "b"
- Fix the error when invoking
- [AT] Fix the overflow problem of input array
- lwIP
- Fix the problem of implicit declaration of "lwip_ip4_route_src"
- Solve the conflict between multi BYTE_ORDERs
BSP
- [qemu-vexpress-gemini] fix build errors
- STM32
- Add SOC_SERIES_STM32G0 to use "stm32_wdt.hiwdg.Init.Window = 0x00000FFF"; otherwise, the watchdog will always reset.
- [STM32L4] Fix the failure of the first erase after programming
- [GD32F4xx] Fix the problem of startup file
- Revert STM32 stack size to 0x400, which is set by mistake in #5129
RT-Thread v4.0.4 released
Change 8000 log since v4.0.3
Kernel
- Update memheap auto binding policy
- Remove rt_thread_exit function
- Improve API annotations and code comments
- Standardize internal function naming
- Add recessive RT_USING_ASM_MEMCPY definition to Kconfig
- Add RT_PRINTF_LONGLONG option to Kconfig, not selected by default
- Clear support for RT_PRINTF_LONGLONG in kservice.c
- Fix RT_PRINTF_LONGLONG is supported by default in 64-bit mode
- Solve the problem that FINSH cannot respond to serial port input in multi-core mode
- Optimize the comment for ipc
- Adjust the code to support cpu usage
- Adjust the exception handling code structure to support backtrace functionality
- Remove the mutex RT_IPC_FLAG_FIFO function
- Remove switch_to_sethook function
- Add idle reclaimed resources
- Change defined(__CC_ARM) || defined(__CLANG_ARM) to ifdef __ARMCC_VERSION
- Fix comment error for rt_mutex_detach().
- Remove the rt_sscanf statement
- Add RT_WEAK for rt_malloc_align,rt_free_align
- Changed the memory heap protection mechanism from FIFO to PRIO
- Remove fix priority inversion bug of mutex
- Add volatile to the rt_tick variable to prevent compiler optimization problems
- Keep the atomicity of idle task hook function calls
- Fix the crash problem after opening Oz optimization on ac6.
- Add protect to the rt_tick_increase critical section
- Add rt_mutex_trytake function
- Improve kernel stability
- Remove C99 dependencies
- Add conditional compilation for _has_defunct_thread function
- Clarify the context
- Add get/set microsecond time control command
- Fix code comment error for function rt_memset().
- Remove rt_device_init_all() function
- Adjust graphics device driver definitions
- Unsigned comparisons should still be used when the signed comparison is undone
- Fix compile error when using LOG_HEX(...) function but RT_USING_ULOG not defined
Components
- Support armclang
- Optimized system for suppoort gcc
- Update Libc
- Create a gcc folder and merge the newlib and partical folders
- Optimized system to support GCC
- Fix support system function
- Fix asctime_r return value
- Lowers the action of calling printf before libc initialization to the warning level
- Replace dfs_select.h with standard sys/select.h
- The RT_LIBC_USING_TIME macro definition remains after RT_USING_LIBC is enabled
- Optimized fcntil.h definition
- Fix syscall was optimized to incorporate minilibc into syscalls.c file
- Rebuild _libc_init_array to prevent chip startup failure under GCC
- RT_USING_NEWLIB and math libraries are defined without libc enabled
- Fix the conflict warning of read and write functions
- Remove libc_signal.h and libc_fdset.h
- Fix an issue where keil did not compile properly
- Remove rtlibc, libc_stdio.h, libc_dirent.h, libc_ioctl.h,libc_signal.h,libc_fdset.h,libc_errno.h, libc_limits.h
- Add delay when the scheduler is not running
- Fix armClang support issues
- usleep supports calling in interrupts.
- Fix sys header file import when liBC is not enabled
- The gettimeofday () function supports time zones and specification set_timeval/get_timeval returns a value
- Fix warning of posix_signal
- Fix bug where nonegcc folder path was not added to project in Simulator Win32
- Fix error caused by libc removing sys/errno.h file
- Remove _TIMESPEC_DEFINED
- Add the RT_LIBC_FIXED_TIMEZONE default value to time.c to prevent projects that do not have RT_LIBC_FIXED_TIMEZONE configured
- Add the ability to manually set the time zone
- Add riscv.c dlmodule can support riscv architecture
- Implement pid_t gettid(void)
- Implement isatty()
- Implement set_timeval
- Change the libc directory to common and none-gcc
- Remove dlib and armlibc
sys
folder - Fix MDK build error when using gmtime_r
- Optimize get_timeval and set_timeval conditional compiled code structure
- Update mktime support fixed timezone
- Add microseconds time get feature in gettimeofday
- LOG_W will cause a recursive printing if ulog timestamp function is turned on
- Remove inherent mutex protect
- Update drivers
- Fix stdint in cputime
- Delete NTP configurations
- Make rt_soft_rtc_init private
- Bypass controlling commands in touch class to driver
- Update the RTC device driver framework to unify and simplify RTC device registration and access
- Add i2c bus control api
- Update uac class, remove GPL code
- Fix measurement unit of "percentage" to "permillage" for accuracy
- Add spo2 sensor support in drivers/include/drivers/sensor.h and drivers/sensors/sensor.c
- Optimize pin.h, sensor.h, rtdevice.h to avoid reverse inclusion
- Update usb enlarge uconfig_descriptor's data array space
- Add security devices
- [netif] Fix the eth_tx_msg protection
- Update utest
- Add kernel testcases
- Fix TC_FAIL_LIST_MARK_FAILED Subscript calculation error
- Fix comments error in ringbuffer and workqueue
- Update ringbuffer
- Add an interface comment
- Local variables are used to prevent resource competition
- Write_index bug in rt_ringbuffer_put_force
- Update workqueue
- Add an interface comment
- Remove rt_delayed_work_init()
- Privatize the rt_work_sys_workqueue_init function
- Fix an unexpected suspension of critical condition threads
- Fixed timer ASSERT exception due to multithreaded scheduling
- Optimize the inclusion relationship between dfs.h and dirent.h
- Update finsh
- Restore the FINSH_USING_MSH definition for compatibility
- Expose the finsh_getchar function
- Fixed _cmd_xxx command unavailable due to finsh removal
- Update Kconfig is more hierarchical
- The finsh component can optionally include built-in commands
- Repaie that the table key on msh do not work
- The list-thread command adds the bind core display for multiple cores
- Add support for tasking toolchain
- Add mount/umount cmd
- Fix ringblk_buf error when no longer using dynamic memory
- [timezone] implement timezone
- [DeviceDriver] Change the special device commands form 0x1X to 0x2X. It will avoid same of general device commands
- Update AT
- Update old_urc_table to new_urc_table
- Optimized at socket memory leak modification
- Add at_utils_send virtual function
- Fix at_vprintf and at_vprintfln and end_sign response
- Fix at_server_getchar spelling error
- Add device type USBOTG to redef.h
- [newlib] fix compile error when closing RT_USING_CONSOLE
- Update rtc
- Add RT_DEVICE_CTRL_RTC_GET_TIMEVAL and RT_DEVICE_CTRL_RTC_SET_TIMEVAL ops
- Remove RT_DEVICE_CTRL_RTC_GET_TIME_US and RT_DEVICE_CTRL_RTC_SET_TIME_US. Add RT_DEVICE_CTRL_RTC_GET_TIMEVAL and RT_DEVICE_CTRL_RTC_SET_TIMEVAL. The RT_DEVICE_CTRL_RTC_GET_TIMEVAL cmd can get second time and microsecond time.
- Change core.c/.h name to rtc.c /.h
- Update rt_rtc_dev_register function name to rt_hw_rtc_register
- Change localtime name to localtime_r
- [ethernetif] replace rt_memcpy with SMEMCPY
- [sdio] remove rt_mmcsd_blk_init
- Update time
- Fix an issue where POSIX related functions were not protected for critical sections
- Adjust the judgment logic of posiX related functions to obtain time results
- Rename nonstandard liBC functions and reposition the time.h definition
- Revert the old code
- Fix the sem init check bug in pthread.
- Fix MMC initialization error, write card->csd as card->cid
- Update serial
- Add CTS/RTS flowcontrol
- Implement function of getting window's size(TIOCGWINSZ)
- Optimized RT_USING_POSIX_TERMIOS precompilation
- Serial_v2 support device ops feature
- Fix the problem that serial Close did not clear the callback interface
- Optimize send non-blocking problem when serial_close does not execute rt_completion_done
- Optimize DMA receive processing flow and decouple the driver to call the API interface of the serial port framework
- Added the Serial V2 framework and the Serial port driver based on STM32
- Serial_v2 support device ops feature
- Fix do RT_DEVICE_CTRL_CLOSE cmd when close serial device regardless of DMA config
- Update lwip
- Fix lwIP critical section protection bug
- Set default lwip stack for old bsp folder.
- Change default lwip stack to lwip2.0.3
- Fix delete useless code.
- The "event_callback" will be change by RT-Thread dfs.
- Adjust the string.h position
- LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h>
- LWIP2.0.2 and 2.1.2 remove ERRNO
- Remove ESHUTDOWN from LWIP
- Remove the possible critical zone risk
- Iperf speed test have been stable.
- The overflow problem of lwip rx thread mailbox.
- [pm] Index should be less than PM_MODLUE_MAX_ID
- [cputime] Add sys/errno.h
- Update msh
- Implement tail command
- Fix shell msh_exec memory over-bound.
- Update dfs
- Fix F_GETFL/F_SETFL should be handled by the drivers.
- Change the default maximum number and type of the file system to 4
- Add format_ignore file, exclude fatfs format check
- Add comments for _device_fs
- Update ymodem
- Modified the enabling conditions of YMODEM USING FILE TRANSFER
- Check the file path's legitimacy of'sy' command
- Add new component: rt-link
- [net] Add the function of set [internet up] status, activate the callback.
- [components] Remove uip
- Update ulog
- Using gettimeofday for timestamp get
- Fix thread info show when kernel not startup
- Increase the usec check time
- Add output locker enabled API
- Update FatFs
- Update the mutex protection timeout can be set using Kconfig
- Fix the time dependent function opening condition
BSP and CPU porting
- Support armclang
- [stm32h750-artpi-h750] Complete bsp
- [ls2k] Fix missing header file applications
- [AT32] Complete BSP
- Add _CRT_DECLARE_NONSTDC_NAMES=0 macro definition in simulator bsp
- Refresh the project and remove rtlibc an...
RT-Thread v3.1.5 released
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 8000 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 commandscons --menuconfig
- Fixed an issue that *.s src files couldn't be compiled
- Fixed c99/siginfo_t issue caused by gcc_version
RT-Thread v4.0.3 released
Change log since v4.0.2
Kernel
- Add
__RTTHREAD__
global macro definition - Add user heap options
- Fix bug of rt_memheap_detach
- Add rt_memory_info() for memheap.c
- Add rt_object_get_length/rt_object_get_pointers APIs
- Fix double release for thread
- Fix thread control bug about
RT_THREAD_CTRL_CLOSE
command - Avoid deadlock (rt_hw_interrupt_disable and rt_enter_critical when enable smp)
- Fix the issue of judging the ready_table of pcpu when multi-core rt_schedule_remove_thread
- Fix the issue that the yield operation cannot release the cpu in time
- Fix the iterator failure for softtimer list timeout check
- Fix rt_timer_list_next_timeout multi-task safe
- Add timer working status query function to software timer
- 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 the bug that the linked list is still mounted when the single timer is not modified
- Add function rt_tick_get_millisecond()
- 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
- Remove the call of rt_system_object_init/rt_system_tick_init from the code.
- Removes component configuration macro
RT_USING_FINSH
from the kernel - Use object_find to implement thread_find/device_find
- The cleanup operation is executed before the current thread exits
Components
- Fix assert in the sys_arch_mbox_fetch function when close socket
- Add dhcp start or stop function to start or stop dhcp.
- Change rt_data_queue_peak to rt_data_queue_peek.
- Update elmfat to R0.14 patch 1.
- Add SAL_INTERNET_CHECK configuration item to support turning on or off the network status check
- 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
- Add the function of judging the network card up and down in the sal_accept function
- 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
- Update AT socket
- Support alloc socket dynamically with at device
- Update AT_SW_VERSION and adjust at_socket_ops
- 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
- [FinSH] rm command supports recursive deletion of folders
- Add clear command for FINSH
- [posix] Implement usleep function
- Fix the issue of pthreads compilation error when using the new version of newlib; at the same time solve the problem of pthreads under 64-bit;
- [dlmodule] Fix crash when dlmodule exits
- Add priority & stack_size param parsing for dlmodule
- libc adds getline/getdelim functions
- 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] error check of rt_event_recv()
- Add rt_data_queue_deinit and fix bug of dataqueue
- Change log in device driver framework
- [pin] Add rt_pin_get to pin frame
- [PM] Update RT-Thread PM2.0 framework
- [audio] Fix compile warning, undefine var
- [serial] Fix the crash caused when the serial port receiving buffer is full and ULOG_USING_ISR_LOG is not turned on
- [wlan] Add raw frame send interface and Management frame filter interface
- [Sensor] Add vendor info and sensor types for cmd
- [Sensor] Support custom commands for rt_sensor_control
- [sensor] Support TOF sensor class
- [SFUD] Update the 'sf bench' command.
- [spi] Fix "response+1" causing hard fault of unaligned access to SPI memory of STM32 HAL library
- [RTC] Optimize RTC alarm function, add alarm function for SOFT_RTC
- [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
BSP and CPU porting
-
Add license info and code cleanup for vexpress-a9 BSP
-
Add HDSC hc32f4a0 BSP support
-
Add support for Cypress PSoC6 series products
-
Fix the lpc55 issue under Linux/GCC
-
[qemu] Fix spelling mistakes of code in drv_pl041.c
-
[loongson] Update the SPI driver and UART driver on the Loongson 2K1000 platform
-
[allwinner_tina]Fix spi driver bug
-
[smartfusion2]Support Microsemi SmartFusion2 family FPGA
-
[imxrt] Add ethernet configuration for imxrt1064-nxp-evk
-
Add support for architecture sparc-v8 and soc bm3803.
-
[libc] libc adds getline/getdelim functions (posix.1-2008)
-
Add support for c28x mcu hardware fpu
-
[at32] Add link detecting thread for ethernet driver
-
Fix gcc assembly option in rtconfig.py for imxrt1064-nxp-evk
-
[IMXRT]Fix scons --dist in IMXRT BSP
-
[ls2kdev] Initial gpio driver without irq support on ls2kdev
-
Optimize BSP dist handle process
-
[nrfx] Add the qspi_flash of nordic pdk
-
[nrf5x] Add the BSP of nrf5x, which support UART, SPI, PWM, ADC, i2c drivers and rtc device driver
-
[nrfx] Add the on-chip flash for nrf5x
-
[RISC-V:K210]Add UART1~3 support for K210
-
[Nuclei] Add Nuclei RISC-V Processor support
-
Update BSP for mini2440
-
Add soc timer cntpct
-
LPC55S69: Add NS project and TFM support on LPC55S69
-
Make MicroPython runs on Raspi3-64 BSP
-
Add rt_hw_us_delay for W60x
-
[imxrt] [driver] Add usb device driver
-
Fix raspi4-32
- Add: dma driver, bsc driver, dsi lcd/touch driver, waveshare spi lcd/touch driver, watchdog driver, hdmi driver, sdio driver, gpio interrupt
- Fix: eth driver, spi driver, uart driver
-
Add more BSP on BSP framework:
- At32/at32f403a-start
- At32/at32f407-start
- bluetrum/ab32vg1-ab-prougen
- bm3803
- cypress/psoc6-pioneerkit_modus
- essemi/es32f0271
- essemi/es32f369x
- essemi/es32f0654
- lpc55sxx/lpc55s69_nxp_evk_ns
- ls2kdev
- nrf5x
- nuclei/gd32vf103_rvstar
- nuclei/hbird_eval
- nuvoton/nk-980iot
- nuvoton/numaker-iot-m487
- nuvoton/numaker-pfm-m487
- raspi2
- raspi3-32
- raspi3-64
- raspi4-32
- raspi4-64
- smartfusion2
- thead-smart
- tm4c123 BSP
- zynqmp-r5-axu4ev
-
Add more STM32 BSP based on new STM32 BSP framework:
- STM32L431-BearPi
- stm32f103-blue-pill
- stm32f103-onenet-nbiot
- stm32f410-st-nucleo
- stm32f411-atk-nano
- stm32f413-st-nucleo
- stm32g070-st-nucleo
- stm32h747-st-discovery
- stm32l010-st-nucleo
- stm32l412-st-nucleo
- stm32l433-st-nucleo
- stm32l496-st-nucleo
- stm32mp157a-st-discovery
- stm32mp157a-st-ev1
- stm32wb55-st-nucleo
-
New STM32 BSP framework:
- Add dcmi, ov2640 and SD Card driver for stm32h743
- Fix bug that caused system crash by changing the run_mode in low power mode
- Fix issue when using gcc to compile the chips of stm G4 series, but chip doesn't work
- drv_flash_f7.c supports single bank mode
- Add stm32f103-atk-warshipv3 sram driver
- Update void HAL_Delay(__IO uint32_t Delay)
- Add PWM9_CONFIG default configuration and TIM3_CONFIG default configuration
- [stm32f103-atk-warshipv3] Add sdcard driver
- Add English readme for stm32
- Add dac and can driver for stm32l4 and stm32f4
- openamp driver and add rs485 driver for stm32mp157a
- Optimize the pin-index algorithm
- [stm32f769-disco] Support ethernet device
- Add C++ Support
- 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
- Support SPI/ADC/TIME on-chip peripheral driver
- [stm32h743-atk-apollo]Support stm32h7 uart dma
- Add stm32h743-atk-apollo support for pcf8574 and uart2
- Support stm32h743-atk-apollo pcf8574 and uart2(485)
- Update bsp/stm32/stm32h743-st-nucleo
- Fix ADC channel Configuration bug for SMT32F0/L0/H7
- Add support for onboard AP6181
- Fix UART DMA TX
- Add pm support by cubemx tool for stm32l4
- Add stm32f407-atk-explorer sram driver
- Fix PWM timer init about pwm
- [stm32f103-atk-warshipv3]Add sdcard driver
- Add stm32f103-atk-warshipv3 sram driver
Tools
- Add C++ support for eclipse target
- Keep user's lib configuration while running --target=eclipse
- Add Libraries when perform
scons --dist
- Update tools/building.py and add
tackanalysis
option - Improve the logic of generating
rtconfig.h
files in scons with commandscons --menuconfig
- Fix makeimg.py wrong on linux
- Add Studio IDE dist feature for stm32 BSP
RT-Thread v3.1.4 released
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.3.
Kernel
- Split the component automatic initialization to component automatic initialization and main funciton;
- Fix RT_IDLE_HOOK spelling issue;
- Add thread waiting for message queue when queue is full;
- Fix the issue of delete mq in
rt_mq_create
in some abnormal case; - Remove the C++ keywords in the
rt_console_set_device
function; - Remove the
suspend_thread_count
member from memory_pool structure; - Fix the issue when block = NULL in rt_mp_free;
- Fix the issue of critical protection when
rt_thread_delete
change the status of thread;
Components
- Fix the issue of mPool size in C++ / Queue;
- Add the error status return in C++ / Thread task join/wait function;
- Fix compilation warning in DFS/ELM FatFS;
- Add support for Linux NFS Server in DFS/NFS;
- Fix mkfs issue in DFS/UFFS;
- Add ftruncate, flock, getuid, umask APIs;
- Fix the display issue of fd with offset in list_fd command;
- Add
dfs_mount_device
API to mount a file system on a device which is already in mount_table; - Rename the C++ keywords in DFS/rename function;
- Connnect dfs/poll, select with RT_USING_POSIX in Kconfig;
- Optimize the part of the code of finsh to make it more simple;
- When RT_USING_DEVICE is not used, finsh can use the
rt_hw_console_getchar()
function which is simple to implement and not using the device framework; - Increase the line length of the finsh shell to more than 256 characters;
- utest can support clang compiler and C++ compiler;
- Fix possible cross-boundary issues in ulog;
- Fix compilation warning in
ulog/ulog_console_backend_output
; - Add support for file sending and receiving feature in YModem;
- CRC16 can be calculated without the lookup talbe to reduce code size in YModem component;
- Fix the issue that stack may be wrongly released during pthread/destory;
- Fix the possible memory leaks issue which caused by pthread_create abnormal case;
- The timer-related APIs under different compiler of libc are moved to the
libc\compilers\common
folder; - Remove redundant definitions in
dlib/sys/unistd.h
(which will cause compilation warnings); - Add
sys/errno.h
andsys/signal.h
header files under dlib; - Freemodbus is no longer in the kernel, and split it as a standalone softwre package;
- AT socket updated to v1.3.0:
- Add multi-client and multi-device function support in AT Socket, and improve the dirty data handling when AT device hardware module reboot;
- Support netdev network card feature, which can manage and control AT device network connection through the network card interface;
- Improve AT Server function support in AT components, add AT Server data sending and receiving interfaces
at_server_send ()
andat_server_recv ()
; - Fix the issue of
closesocket()
in SAL component when socket closing failure aftershutdown()
; - Improve
sal_bind ()
network card binding related function in SAL component; - Add IPV6 related options configuration and function support to SAL and netdev;
- Improve ping command error handling and log display in the netdev;
- Add hostname configuration options and functions in lwIP component;
- Fix the assertion issue of
sys_arch_mbox_fetch()
in lwIP which may occur when a socket is closed; - Add network card uninstallation function and support for dhcpd service stop function to the lwip component;
- Fix lwIP component compilation failure caused by closing FinSH component;
- Fix the issue that the socket may not be closed during the DHCPD task in the lwIP DHCP server;
- Add
dhcpd_stop()
interface; - Change log in device driver framework:
- Refactor audio driver framework;
- Fix the issue that the receiving length is 0 in CAN and the issue of returning wrong values;
- Add hardware encryption and decryption driver framework;
- Fix the flag handling issue of
rt_i2c_master_send/rt_i2c_master_recv
; - Add input capture and pulse encoding driver framework;
- Fix the issue that partition lock is deleted when
rt_mmcsd_blk_remove
; - Fix the issue that the enumerated capacity of the large-capacity card in MMC/SD exceeded the data range;
- When the SDIO device is initialized, the function's manufacturer and product can also use the information in CIS;
- Improve the interrupt mode handling in the sensor framework, and fix the issue that the memory is not released when registering the sensor;
- More information are provided in command line of sensor framework;
- Add the checking for Rx buffer size in the serial port framework, and provide a notification when RX buffer full;
- Remove the old Nor SPI Flash driver in SPI framework, and replace with SFUD component;
- Fix some judgements issue in the return value of SFUD;
- Fix the definition warning of
SFUD_FLASH_DEVICE_TABLE
in SFUD; - Add support for W25Q64DW devices in SFUD;
- Fix FiFo creation failure handling when creating a pipe;
- Fix the issue of releasing RBB in advance in
rt_rbb_destroy()
function; - Rename the new keyword using of C++ in
rt_rbb_blk_alloc
function; - Unify the
struct rt_delayed_work
in workqueue tostruct rt_work
; - Add touch driver framework;
- Add USB Audio class;
- Fix RNDIS plug-in/out issue in USB device stack;
- Add the interface callback function in USB device stack;
- Improve wlan framework, including command line functions, handling of AP name, password length, support for netdev, better configurability, etc.
BSP and CPU porting
- Add Clang compiler support in ARM-related CPU porting;
- Fix SCB_AIRCR definition issue in ARM Cortex-M0;
- Unify the .data .bss section to 8bytes alignment in GCC tool chain;
- Rerange NXP i.MXRT BSP and add related BSP documents;
- Add i.MXRT1052 ATK Commander, Fire Pro BSP and i.MXRT1064 EVK BSP to the new i.MXRT BSP;
- Fix I2C operation (master_xfer) in LPC54114-lite BSP;
- Add Audio driver in LPC54114-lite BSP;
- Refactor qemu-vexpress-a9's Audio driver and fix the issue of OS Tick accuracy;
- Remove old STM32 BSP: stm32f4xx-HAL, stm32f10x, stm32f10x-HAL, stm32f429-apollo, stm32f429-disco, stm32h743-nucleo;
- Fix the issue of
rt_hw_sci_init()
for opening the global interrupt in tms320f28379d BSP; - Add support of soft I2C and hardware encryption module to WinnerMicro W60x BSP(AES/DES/3DES/RC/SHA1/MD3/CRC);
- Add oneshot WiFi configuration support in WinnerMicro W60x BSP;
- Add more STM32 BSP based on new STM32 BSP framework:
- stm32f072-st-nucleo
- stm32f103-gizwits-gokitv21
- stm32f103-yf-ufun
- stm32f412-st-nucleo
- stm32f427-robomaster-a
- stm32f429-st-disco
- stm32f769-st-disco
- stm32g431-st-nucleo
- stm32h743-st-nucleo
- stm32h750-armfly-h7-tool
- stm32l4r5-st-nucleo
- stm32l452-st-nucleo
- For the new STM32 BSP framework:
- Add DMAMUX support to stm32l4+;
- Update F7 HAL library SConscript;
- Open the SWD port configuration on cubemx in stm32f103-atk-warshipv3 BSP;
- Add support for SD card in stm32f427-robomaster-a BSP;
- Add USBFS driver to stm32f412-nucleo BSP;
- Remove use of device user data on uart driver;
- Add QSPI FLASH support in stm32h743-atk-apollo BSP;
- Optimized Ethernet driver;
- Add hardware encryption and decryption driver;
- Add MIPI LCD driver;
- Add pulse encoding driver;
- Optimize hardware timer driver;
- Add support for UART 7/8 in serial driver;
- Optimize WDT driver;
Tools
- Optimize scons script for eclipse in order to generate eclipse project better;
- Improve rtconfig.h generator, PATH type configuration can be generated correctly;
- Fix gcc path detection issue when using the default cross toolchain of the Linux distribution;
RT-Thread v4.0.2 released.
Changelog since v4.0.1
Kernel
- Split the component automatic initialization into component automatic initialization and main funciton;
- Add spin lock API in SMP mode;
- Fix RT_IDLE_HOOK spelling issue;
- Add thread waiting for message queue when queue is full;
- Fix the issue of delete mq in
rt_mq_create
in some abnormal case; - Remove the C++ keywords in the
rt_console_set_device
function; - Remove the
suspend_thread_count
member from memory_pool structure; - Fix the issue when block = NULL in rt_mp_free;
- Fix the issue of incorrect scheduling task sequence caused by rt_thread_yeild in system scheduling;
- Fix the issue that the interrupt is opened too late and cause the signal handling delayed;
- When disable SMP,
cpu.c
will not be added into project by default; - Fix the issue that
rt_thread_exit
turned on the interrupt prematurely in the SMP mode, so other cores might delete this task, causing the issue in subsequent function stacks; - Fix the issue of critical protection when
rt_thread_delete
change the status of thread;
Components
- Fix the issue of mPool size in C++ / Queue;
- Add the error status return in C++ / Thread task join/wait function;
- Fix compilation warning in DFS/ELM FatFS;
- Add support for Linux NFS Server in DFS/NFS;
- Fix mkfs issue in DFS/UFFS;
- Add ftruncate, flock, getuid, umask APIs;
- Fix the display issue of fd with offset in list_fd command;
- Add
dfs_mount_device
API to mount a file system on a device which is already in mount_table; - Rename the C++ keywords in DFS/rename function;
- Connnect dfs/poll, select with RT_USING_POSIX in Kconfig;
- Optimize the part of the code of finsh to make it more simple;
- When RT_USING_DEVICE is not used, finsh can use the
rt_hw_console_getchar()
function which is simple to implement and not using the device framework; - Increase the line length of the finsh shell to more than 256 characters;
- utest can support clang compiler and C++ compiler;
- Fix possible cross-boundary issues in ulog;
- Fix compilation warning in
ulog/ulog_console_backend_output
; - Add support for file sending and receiving feature in YModem;
- CRC16 can be calculated without the lookup talbe to reduce code size in YModem component;
- Fix the issue that stack may be wrongly released during pthread/destory;
- Fix the possible memory leaks issue which caused by pthread_create abnormal case;
- The timer-related APIs under different compiler of libc are moved to the
libc\compilers\common
folder; - Remove redundant definitions in
dlib/sys/unistd.h
(which will cause compilation warnings); - Add
sys/errno.h
andsys/signal.h
header files under dlib; - Freemodbus is no longer in the kernel, and split it as a standalone softwre package;
- AT socket updated to v1.3.0:
- Add multi-client and multi-device function support in AT Socket, and improve the dirty data handling when AT device hardware module reboot;
- Support netdev network card feature, which can manage and control AT device network connection through the network card interface;
- Improve AT Server function support in AT components, add AT Server data sending and receiving interfaces
at_server_send ()
andat_server_recv ()
; - Fix the issue of
closesocket()
in SAL component when socket closing failure aftershutdown()
; - Improve
sal_bind ()
network card binding related function in SAL component; - Add IPV6 related options configuration and function support to SAL and netdev;
- Improve ping command error handling and log display in the netdev;
- Add hostname configuration options and functions in lwIP component;
- Fix the assertion issue of
sys_arch_mbox_fetch()
in lwIP which may occur when a socket is closed; - Add network card uninstallation function and support for dhcpd service stop function to the lwip component;
- Fix lwIP component compilation failure caused by closing FinSH component;
- Fix the issue that the socket may not be closed during the DHCPD task in the lwIP DHCP server;
- Add
dhcpd_stop()
interface; - Change log in device driver framework:
- Refactor audio driver framework;
- Fix the issue that the receiving length is 0 in CAN and the issue of returning wrong values;
- Add hardware encryption and decryption driver framework;
- Fix the flag handling issue of
rt_i2c_master_send/rt_i2c_master_recv
; - Add input capture and pulse encoding driver framework;
- Fix the issue that partition lock is deleted when
rt_mmcsd_blk_remove
; - Fix the issue that the enumerated capacity of the large-capacity card in MMC/SD exceeded the data range;
- When the SDIO device is initialized, the function's manufacturer and product can also use the information in CIS;
- Improve the interrupt mode handling in the sensor framework, and fix the issue that the memory is not released when registering the sensor;
- More information are provided in command line of sensor framework;
- Add the checking for Rx buffer size in the serial port framework, and provide a notification when RX buffer full;
- Remove the old Nor SPI Flash driver in SPI framework, and replace with SFUD component;
- Fix some judgements issue in the return value of SFUD;
- Fix the definition warning of
SFUD_FLASH_DEVICE_TABLE
in SFUD; - Add support for W25Q64DW devices in SFUD;
- Fix FiFo creation failure handling when creating a pipe;
- Fix the issue of releasing RBB in advance in
rt_rbb_destroy()
function; - Rename the new keyword using of C++ in
rt_rbb_blk_alloc
function; - Unify the
struct rt_delayed_work
in workqueue tostruct rt_work
; - Add touch driver framework;
- Add USB Audio class;
- Fix RNDIS plug-in/out issue in USB device stack;
- Add the interface callback function in USB device stack;
- Improve wlan framework, including command line functions, handling of AP name, password length, support for netdev, better configurability, etc.
BSP and CPU porting
- Add Clang compiler support in ARM-related CPU porting;
- Fix SCB_AIRCR definition issue in ARM Cortex-M0;
- Add ARM Cortex-M33 porting;
- Add DMB/DSB related operations for cache operations in ARM Cortex-A porting;
- Add FPU support in ARM Cortex-A porting;
- Re-organize MIPS port. And XBurst related porting are moved to X1000 BSP;
- The porting of loongson 1B and 1C CPU are combined into one GS232 porting;
- Add support for RISC-V Hummingbird processor porting;
- The context switch exit operation of risc-v is forced back to machine mode;
- Fix the issue of switch interruption during TI C28x DSP porting;
- Add _ffs like implementation in the TI C28x DSP porting;
- Unify the .data .bss section to 8bytes alignment in GCC tool chain;
- The es32f0334 BSP is moved to
bsp/essemi/es32f0334
; - Add
bsp/essemi/es8p508x
BSP, including UART and GPIO drivers; - Add GD32VF103V-EVAL (RISC-V MCU) BSP, including UART driver;
- Rerange NXP i.MXRT BSP and add related BSP documents;
- Add i.MXRT1052 ATK Commander, Fire Pro BSP and i.MXRT1064 EVK BSP to the new i.MXRT BSP;
- Add BSP for NXP LPC55S6X series, and increase support for NXP official development board LPC55S69-EVK;
- Fix I2C operation (master_xfer) in LPC54114-lite BSP;
- Add Audio driver in LPC54114-lite BSP;
- Update Loongson 1B BSP and use automatic component initialization in default;
- Add Kconfig configuration for Loongson 1B BSP;
- Add QEMU/mipssim BSP for simulate RT-Thread/MIPS without MIPS hardware;
- Refactor qemu-vexpress-a9's Audio driver and fix the issue of OS Tick accuracy;
- Add LPUART driver to RV32M1 VEGA BSP;
- Remove old STM32 BSP: stm32f4xx-HAL, stm32f10x, stm32f10x-HAL, stm32f429-apollo, stm32f429-disco, stm32h743-nucleo;
- Fix the issue of
rt_hw_sci_init()
for opening the global interrupt in tms320f28379d BSP; - Add support of soft I2C and hardware encryption module to WinnerMicro W60x BSP(AES/DES/3DES/RC/SHA1/MD3/CRC);
- Add oneshot WiFi configuration support in WinnerMicro W60x BSP;
- Add more STM32 BSP based on new STM32 BSP framework:
- stm32f072-st-nucleo
- stm32f103-gizwits-gokitv21
- stm32f103-yf-ufun
- stm32f412-st-nucleo
- stm32f427-robomaster-a
- stm32f429-st-disco
- stm32f769-st-disco
- stm32g431-st-nucleo
- stm32h743-st-nucleo
- stm32h750-armfly-h7-tool
- stm32l4r5-st-nucleo
- stm32l452-st-nucleo
- For the new STM32 BSP framework:
- Add DMAMUX support to stm32l4+;
- Update F7 HAL library SConscript;
- Open the SWD port configuration on cubemx in stm32f103-atk-warshipv3 BSP;
- Add support for SD card in stm32f427-robomaster-a BSP;
- Add USBFS driver to stm32f412-nucleo BSP;
- Remove use of device user data on uart driver;
- Add QSPI FLASH support in stm32h743-atk-apollo BSP;
- Optimized Ethernet driver;
- Add hardware encryption and decryption driver;
- Add MIPI LCD driver;
- Add pulse encoding driver;
- Optimize hardware timer driver;
- Add support for UART 7/8 in serial driver;
- Optimize WDT driver;
Tools
- Optimize scons script for eclipse in order to generate eclipse project better;
- Improve rtconfig.h generator, PATH type configuration can be generated correctly;
- Fix gcc path detection issue when using the default cross toolchain of the Linux distribution;
RT-Thread v3.1.3 released
RT-Thread v3.1.3 Released
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.2.
Kernel
- Fix the
rt_tick_from_millisecond()
compilation warning issue; - Fix the issue that the system object is not detached when handling defunct threads.
- Add the value checking of semaphore (the maximum value of semaphore is up to 65535)
- Add the checking and assertion of re-initialization of object.
- In the rt_enter_critical/rt_exit_critical function, add the checking of whether scheduler is startup or not.
- Fix the definition issue of
ENOTSUP
in libc_errno.h. - Simplify the rtdbg.h file and use ulog to make log/debug system easier to use.
- Add the configuration of RT_USING_ARCH_DATA_TYPE,
rt_int8_t/.../rt_uint32_t
and other basic data types can be defined by BSP itself. (It is recommended to put them into the rtconfig_project.h file, so that this file can be automatically included in rtconfig.h when menuconfig generates it.) - Add
RT_Device_Class_Sensor
type devices; - In the case of single core, the definition of
rt_hw_spin_lock/rt_hw_spin_unlock
is redefined as the disable/enable interrupt. - Add the
rt_strnlen()
function in kservice.c. - Support the long long type in rt_kprintf (HubertXie);
Components
- Remove CMSIS and move to software package as CMSIS package.
- Remove logtrace component. The system log system switches to ulog;
- Add more code to support AC6 tool chain in some BSP and components;
- In DFS file system component, clean up the log and fix the mkfs issue when index may be out of range.
- Split the running mode from sleep mode in power management, and the frequency change should be clearer. Power management is not use idle hook but execute the sleep action in idle thread directly. (How to use power management, please visit programming document for details)
- Cleanup the log of MMC/SD driver framework;
- Rewrite Sensor Framework, replace the original C++ implementation with C version, and add some corresponding sensor software packages; To use the sensor packages, please use this release;
- Add the DMA transmission operation in the serial driver framework;
- Add the consistency protection to tc_flush routine of serial driver (loogg).
- Add rt_sfud_flash_find_by_dev_name API in SFUD.
- When the Pipe device closed, if it is an unnamed Pipe device and the open count is 0, this Pipe device will be deleted.
- The delayed work implementation is added to workqueue, and the workqueue of the system is added as an option.
- Fix the data loss issue when using DMA transmission in USB CDC.
- Change the return type of finsh_getchar to int;
- Fix the errno issue in newlib/GCC tool chain.
- Change the management of pthreads to POSIX thread array instead of mapping pthread_t directly to rt_thread_t; Change the fields definition more similar with newlib/glibc in pthreads.
- Fix the thread name output in ulog.
- Add loop parameter in utest, then executes test cases repeatedly; Add thread parameter in utest to execute testcase in a new thread.
- Add delay in handshake phase to protect incomplete data reception in YModem component.
- Add netdev component, abstract netdev concept, used to management and control network interface device, and provide netdev operation commands, including ping/ifconfig/dns/netstat etc;
- Modify SAL for netdev, that is, adds the judgment of netdev status and information when the socket creating and data transmitting;
- Add options and types for UDP multicast traffic handling and IPPROTO_IP in SAL;
- Fix
ioctl()
function not support to control socketfd issues in SAL; - Improve error log processing in AT socket;
- Fix serial receive data failed issues when AT client initialization is not completed;
BSP
- Add IMXRT1021-EVK BSP (NXP provides maintenance and support);
- Add the ETH hardware checksum option in IMXRT1052 ETH driver;
- Cleanup the LPC 4088 BSP to use main function entry and support menuconfig;
- The double Frame Buffer mechanism and touch screen driver are added in Godson 1C BSP, then it can better to support Persimmon UI (sundm75).
- Add watchdog driver in Godson 1C BSP(sundm75);
- Fix the SysTick interrupt handling issue in nRF52832 and add menuconfig configuration file.
- Add QSPI and SPI flash driver to Nuvoton M487 BSP (bluebear 233)
- Change the CPU porting to libcpu/arm/cortex-a folder in QEMU-VExpress A9/IMX6UL BSP;
- In QEMU-VExpress A9 BSP, the MAC address associated with the local MAC address is used for a unified MAC address in the network.
- remove stm32f0x, stm32f7-disco, stm32f107, stm32f40x, stm32l072, stm32l475-iot-disco, stm32l476-nucleo BSP (when the new STM32 BSP can completely replace these old BSP, these BSP will be removed);
- For the new STM32 BSP:
- Add CAN driver (ylz0923)
- Add CAN driver to stm32f103-fire-arbitrary (ylz0923)
- stm32f746-st-disco with LCD, watchdog, SDCard, ethernet, Flash and other drivers (Jinsheng)
- More board support is added to the new STM32 BSP:
- stm32f103-atk-warship V3 ATK Warship V3 (daizhiwang)
- STm32f103-dofly-M3S Dofly STM32F103 Development Board
- stm32f103-mini-system, the minimum system board for STM32F103 (daizhiwang)
- stm32f401-st-nucleo
- stm32f405-smdz-breadfruit sanmu electronic stm32405 development board (sunlichao)
- stm32f469-st-disco
- stm32h743-atk-apollo (whj4674672)
- stm32l4r9-st-eval
- stm32l053-st-nucleo (sun_shine)
- stm32l475-st-discovery
- stm32l476-st-nucleo (Vincent-VG)
- stm32l496-ali-developer
- The SCI driver is added to the TMS320F28379D BSP (xuzuoyi).
- Add W60X Wi-Fi SoC chip BSP from Winner Microelectronics Co.,Ltd. (Winner Micro and RealThread provide maintenance and support);
- Fix the UART2 IO configuration issue in X1000 UART driver (Zhou Yanjie);
- Cleanup the libcpu/arm/cortex-a code;
- The _rt_hw_context_switch_interrupt/_rt_hw_context_switch is separated in TI DSP TMS320F28379D BSP (xuzuoyi);
Tool
- Add Makefile generation feature in scons with command
scons –target=makefile -s
. Then developer can use make to build RT-Thread under Linux or Windows. - Add Eclipse project generation feature in scons with command
scons –target=eclipse -s
, which will put the necessary information in.cproject
and.project
files in current BSP folder. The developer can use Eclipse to build RT-Thread. - Fix the multi-group same name issue when generating Keil MDK project file and add a library file into the SConscript (Eric Qiang);
- Fix the GCC Version Comparing issue
- ENV version updated to v1.1.2
- Update scons version to 3.0.5
- Fix VC++ warning issue
- Fix Unicode error issue
RT-Thread v4.0.1 released
V4.0.1 release is the bugfix version of RT-Thread v4.0.0, more for: adding netdev to better manage network devices, fix the signal issue under SMP environment, and change the POSIX thread management to array way. Moreover, several chip manufacturers (EastSoft, MindMotion, Winner Micro, NXP, Synopsys, etc.) contribute their BSP to RT-Thread upstream.
V4.0.1 release also represents the v4.0.x series more stable. Later, more multi-core processor BSP will be added, including AMP (Cortex-M4 + M0) and SMP (Dual-Cortex-A7 etc) processor.
Kernel
- Fix the
rt_tick_from_millisecond()
compilation warning issue; - Remove unnecessary code that disable interrupt several times during startup initialization;
- Fix the issue that the system object is not detached when handling defunct threads.
- Add the value checking of semaphore (the maximum value of semaphore is up to 65535)
- Fix the 64-bit issue in kservice.c
- Add the checking and assertion of re-initialization of object.
- In the rt_enter_critical/rt_exit_critical function, add the checking of whether scheduler is startup or not.
- Fix the signal issue under SMP and the issue of signal information list in signal.
- Add 64-bit processor support in slab memory allocation.
- Fix the definition issue of
ENOTSUP
in libc_errno.h. - Simplify the rtdbg.h file and use ulog to make log/debug system easier to use.
- Add the configuration of RT_USING_ARCH_DATA_TYPE,
rt_int8_t/.../rt_uint32_t
and other basic data types can be defined by BSP itself. (It is recommended to put them into the rtconfig_project.h file, so that this file can be automatically included in rtconfig.h when menuconfig generates it.) - Add
RT_Device_Class_Sensor
type devices; - In the case of single core, the definition of
rt_hw_spin_lock/rt_hw_spin_unlock
is redefined as the disable/enable interrupt. - Add the
rt_strnlen()
function in kservice.c. - Support the long long type in rt_kprintf (HubertXie);
Components
- Remove CMSIS and move to software package as CMSIS package.
- Remove logtrace component. The system log system switches to ulog;
- Add more code to support AC6 tool chain in some BSP and components;
- In DFS file system component, clean up the log and fix the mkfs issue when index may be out of range.
- Split the running mode from sleep mode in power management, and the frequency change should be clearer. Power management is not use idle hook but execute the sleep action in idle thread directly. (How to use power management, please visit programming document for details)
- Cleanup the log of MMC/SD driver framework;
- Rewrite Sensor Framework, replace the original C++ implementation with C version, and add some corresponding sensor software packages; To use the sensor packages, please use this release;
- Add the DMA transmission operation in the serial driver framework;
- Add the consistency protection to tc_flush routine of serial driver (loogg).
- Add rt_sfud_flash_find_by_dev_name API in SFUD.
- When the Pipe device closed, if it is an unnamed Pipe device and the open count is 0, this Pipe device will be deleted.
- The delayed work implementation is added to workqueue, and the workqueue of the system is added as an option.
- Fix the data loss issue when using DMA transmission in USB CDC.
- Change the return type of finsh_getchar to int;
- Fix the errno issue in newlib/GCC tool chain.
- Change the management of pthreads to POSIX thread array instead of mapping pthread_t directly to rt_thread_t; Change the fields definition more similar with newlib/glibc in pthreads.
- Fix the thread name output in ulog.
- Add loop parameter in utest, then executes test cases repeatedly; Add thread parameter in utest to execute testcase in a new thread.
- Add delay in handshake phase to protect incomplete data reception in YModem component.
- Add netdev component, abstract netdev concept, used to management and control network interface device, and provide netdev operation commands, including ping/ifconfig/dns/netstat etc;
- Modify SAL for netdev, that is, adds the judgment of netdev status and information when the socket creating and data transmitting;
- Add options and types for UDP multicast traffic handling and IPPROTO_IP in SAL;
- Fix
itctrol()
function not support to control socketfd issues in SAL; - Improve error log processing in AT socket;
- Fix serial receive data failed issues when AT client initialization is not completed;
BSP
-
Add ES32 chip BSP from Shanghai Eastsoft Microelectronics Co., Ltd. (EastSoft provides maintenance and support);
-
Add GD32E230K-start, with ARM Cortex-M23 core BSP (xuzhuoyi)
-
Add IMXRT1021-EVK BSP (NXP provides maintenance and support);
-
Add the ETH hardware checksum option in IMXRT1052 ETH driver;
-
Add more peripheral drivers, GPIO, LCD, SPI, camera, etc. in Kendryte K210 BSP.
-
Cleanup the LPC 4088 BSP to use main function entry and support menuconfig;
-
Add LPC1114 BSP with UART driver (SASANO Takayoshi, Japan);
-
The double Frame Buffer mechanism and touch screen driver are added in Godson 1C BSP, then it can better to support Persimmon UI (sundm75).
-
Add watchdog driver in Godson 1C BSP(sundm75);
-
Add MM32 chip BSP from Shanghai MindMotion Microelectronics Co., Ltd. (MindMotion provides maintenance and support);
-
Fix the SysTick interrupt handling issue in nRF52832 and add menuconfig configuration file.
-
Add QSPI and SPI flash driver to Nuvoton M487 BSP (bluebear 233)
-
Change the CPU porting to libcpu/arm/cortex-a folder in QEMU-VExpress A9/IMX6UL BSP;
-
In QEMU-VExpress A9 BSP, the MAC address associated with the local MAC address is used for a unified MAC address in the network.
-
remove stm32f0x, stm32f7-disco, stm32f107, stm32f40x, stm32l072, stm32l475-iot-disco, stm32l476-nucleo BSP (when the new STM32 BSP can completely replace these old BSP, these BSP will be removed);
-
For the new STM32 BSP:
- Add CAN driver (ylz0923)
- Add CAN driver to stm32f103-fire-arbitrary (ylz0923)
- stm32f746-st-disco with LCD, watchdog, SDCard, ethernet, Flash and other drivers (Jinsheng)
-
More board support is added to the new STM32 BSP:
- stm32f103-atk-warship V3 ATK Warship V3 (daizhiwang)
- STm32f103-dofly-M3S Dofly STM32F103 Development Board
- stm32f103-mini-system, the minimum system board for STM32F103 (daizhiwang)
- stm32f401-st-nucleo
- stm32f405-smdz-breadfruit sanmu electronic stm32405 development board (sunlichao)
- stm32f469-st-disco
- stm32h743-atk-apollo (whj4674672)
- stm32l4r9-st-eval
- stm32l053-st-nucleo (sun_shine)
- stm32l475-st-discovery
- stm32l476-st-nucleo (Vincent-VG)
- stm32l496-ali-developer
-
Add the ARC support for Synopsys Design Ware ARC EM Starter Kit (Synopsys provides maintenance and support);
-
The SCI driver is added to the TMS320F28379D BSP (xuzuoyi).
-
Add W60X Wi-Fi SoC chip BSP from Winner Microelectronics Co.,Ltd. (Winner Micro and RealThread provide maintenance and support);
-
Fix the UART2 IO configuration issue in X1000 UART driver (Zhou Yanjie);
-
Add SConscript file for each CPU porting.
-
Cleanup the libcpu/arm/cortex-a code;
-
The _rt_hw_context_switch_interrupt/_rt_hw_context_switch is separated in TI DSP TMS320F28379D BSP (xuzuoyi);
Tool
- Add Makefile generation feature in scons with command
scons –target=makefile -s
. Then developer can use make to build RT-Thread under Linux or Windows. - Add Eclipse project generation feature in scons with command
scons –target=eclipse -s
, which will put the necessary information in.cproject
and.project
files in current BSP folder. The developer can use Eclipse to build RT-Thread. - Fix the multi-group same name issue when generating Keil MDK project file and add a library file into the SConscript (Eric Qiang);
- Fix the GCC Version Comparing issue
- ENV version updated to v1.1.2
- Update scons version to 3.0.5
- Fix VC++ warning issue
- Fix Unicode error issue
RT-Thread v3.1.2 released
RT-Thread v3.1.2 Released
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.1.
Kernel
- nothing
Components
- When formatting the file system, adds FM_SFD option to create a volume in SFD format for FatFs; (HubretXie)
- Add file system handle pointer in `struct dfs_fd' structure;
- Fix stdio fd issue when POSIX api is used; (gbcwbz)
- Fix the
fd_is_open()
issue: when the sub-path is the same in different mounted filesystem. - Change the critical lock/unlock to dfs_lock/unlock in
getcwd()
function of DFS (the critical lock/unlock is different in SMP environment); - Fix the
aio_result
issue, which is returned byaio_read_work
in AIO; (fullhan) - Fix the mmap issue when the addr parameter is NULL; (fullhan)
- Modify the
_sys_istty
function in armlibc to correctly handle STDIN/STDOUT/STDERR; (gbcwbz) - Modify the
_write_r
function in newlib to correctly handle stdout. - Fix the at_socket issue when socket is a null pointer; (thomas onegd)
- Fix the select event issue in
at_recvfrom()
function in at_socket; - Divide SAL into
sal_socket_ops/sal_proto_ops
and sal_proto_ops is implemented with gethostbyname/getaddrinfo ops etc. - Add socket TLS layer in SAL, that is, upper application can be supported by encrypted transmission without considering lowlevel TLS at all.
- Fix the length issue of
ulog_strcpy
, which should be not exceedULOG_LINE_BUF_SIZE
; - Add the macro definition of hexadecimal log output to ulog; (HubretXie)
- Add uTest component. The uTest is a unit test framework on RT-Thread, and can also be used for automatic testing on board with external Python scripts.
- Fix some compilation warnings and enumeration mismatches in drivers/audio;
- Fix the
can_rx/can_tx
issue, which is not cleared to NULL when CAN device is closed in drivers/can; (xeonxu) - Fix drivers/hwtimer, time acquisition issue with counting down mode;
- Add drivers/adc driver framework;
- Fix the tick compensation issue when enable interrupt too early; (geniusgogo)
- Add
RT_SERIAL_USING_DMA
option in drivers/serial; - Add QSPI support in drivers/spi framework;
- Add QSPI support in SFUD (based on the QSPI peripheral of stm32); SFUD is upgraded to version 1.1.0;
- Optimize SPI take/release function call in spi_msd;
- Fix the
blk_size
issue inrt_rbb_blk_alloc()
; - Fix the FS USB issue in
_get_descriptor
function; - Fix the empty password issue in AP mode of drivers/wlan;
- Fix the return type issue in drivers/wlan;
- Remove the duplicate opening file check when open a file;
BSP
- Change the name parameter to
cosnt char *
inrt_hw_interrupt_install
function; (liruncong) - Fix
$
warning issue in Kconfig files of each BSP; - Add the LPC54114-lite BSP, including GPIO, I2C, SDCard, SPI, SPI Flash, UART driver;
- Add Nuvoton-M487 BSP, including UART, EMAC driver; (Bluebear 233)
- Fix the CAN driver issue in STM32F4XX-HAL BSP; (xeonxu)
- Fix UART DMA settings issue in STM32F10x/STM32F40x BSP; (zhouchuanfu)
- Fix the HEAP_BEGIN definition issue in STM32H743-Nucleo BSP; (nongxiaoming)
- Fix GPIO configuration issue in stm32f10x-HAL; (Wu Han)
- Change stm32f107 BSP as main function entry; (whj4674672)
- Fix the serial interrupt handling issue in stm32f10x BSP;
- Add PWM, RTC and watchdog drivers to stm32f10x-HAL BSP; (XXXXzzzz000)
- Fix the watchdog driver issue in stm32f4xx-HAL BSP; (XXXXzzzz000)
- Use lwIP version 2.x in stm32f40x/stm32f107 BSP.
- Fix the link issue when enable CmBacktrace package in stm32f4xx-HAL BSP; (xeonxu)
- Support Audio and microphones features in stm32f429-apollo BSP;
- Enable dlmodule support in x86 BSP; (SASANO Takayoshi)
- Add uTest section in the link script of qemu-vexpress-a9/stm32f429-atk-apollo BSP for automatic testing;
- Change the license to Apache License v2.0 in Godson 1C BSP; (sundm75)
- Add the new BSP framework for STM32 serial chip, such as STM32 G0/F0/L0/F1/F4/F7/H7. In new BSP framework, the SoC drivers is reused. And in same time, lots of STM32 boards are supported with new BSP framework:
- STM32F091-Nucleo Development Board BSP
- STM32F411-Nucleo Development Board BSP
- STM32L432-Nucleo Development Board BSP; (sun_shine)
- STM32F407-Discovery Development Board BSP
- STM32F446-Nucleo Development Board BSP; (andeyqi)
- STM32F746-Discovery Development Board BSP; (jinsheng)
- STM32F767-Nucleo Development Board BSP; (e31207077)
- STM32G071-Nucleo Development Board BSP;
- ATK STM32F103 NANO Development Board BSP
- ATK STM32F407 Explorer Development Board BSP
- ATK STM32F429 Apollo Development Board BSP
- ATK STM32F767 Apollo Development Board BSP
- ATK STM32L475 Pandora IoT Development Board BSP
- Fire STM32F103 Arbitrary Development Board BSP
- Fire STM32F429 Challenger Development Board BSP
- Fire STM32F767 Challenger Development Board BSP; (Hao Zhu)
- ArmFly STM32F429-v6 Development Board BSP
- STM32F103 iBox development board BSP; (dingo1688)
- Dofly STM32F103 Development Board; (FindYGL)
- STM32F107 uC/Eval Development Board BSP; (whj4674672)
- and more, there are more developers involved for stm32 BSP framework, they are HubretXie, Hao Zhu, e190, etc. to improve the STM32 public driver.
- Add SWM320 BSP of Synwit.cn, including GPIO, HW Timer, I2C, Watchdog, PWM, RTC, SPI, UART, etc.; (provided and maintained by Synwit)
- Add TI TMS320F28379D BSP, the first DSP chip supported on RT-Thread; (xuzhuoyi)
- Fix USB driver issue in X1000; (Zhou YanJie)
Tool
- Provide more information when the tool chain does not exist;
- Add a draft Segger Embedded Studio project file generation command. Note that the tool chain in SES is a special version not the newlib.
- Fix the IAR library link command issue when use scons command line under;
- Fix the BSP path issue in scons
str(Dir('#'))
; - Add
scons --pyconfig-silent
command to add some Kconfig configurations and to generate.config
andrtconfig.h
files; - Update the
scons --dist
command to adapt to the new BSP framework; - Modify the mkromfs.py script. Fix the corresponding C code generation When the romfs contains empty files or empty folders;
- Fix the issue of version string comparison issue for GNU GCC version in utils.py;
- ENV updated to V1.1.0
- Provide better prompt information to improve user experience;
- Add
system32
path to environment variables to avoid thecmd
command cannot be found; - Add
PYTHONHOME
variable to environment variables to avoid PYTHON environment issue;
RT-Thread v4.0.0 released
RT-Thread v4.0.0 Released
The following is the change log of this version since v3.1.1 release.
Kernel
- Add SMP support;
- Add support for 64-bit processors;
- When the thread is running on CPU, the state of this thread is changed to RUNNING stat instead of READY state in previous version;
Components
- When formatting the file system, adds FM_SFD option to create a volume in SFD format for FatFs; (HubretXie)
- Add file system handle pointer in `struct dfs_fd' structure;
- Fix stdio fd issue when POSIX api is used; (gbcwbz)
- Fix the
fd_is_open()
issue: when the sub-path is the same in different mounted filesystem. - Change the critical lock/unlock to dfs_lock/unlock in
getcwd()
function of DFS (the critical lock/unlock is different in SMP environment); - Rewrite
list_thread/list_*
implementation of finsh cmd to avoid multi-core competition case; - Fix the
aio_result
issue, which is returned byaio_read_work
in AIO; (fullhan) - Fix the mmap issue when the addr parameter is NULL; (fullhan)
- Modify the
_sys_istty
function in armlibc to correctly handle STDIN/STDOUT/STDERR; (gbcwbz) - Modify the
_write_r
function in newlib to correctly handle stdout. - Add lightweight processes (lwP) and corresponding system calls;
- the lwP user application environment will be added later;
- Fix the at_socket issue when socket is a null pointer; (thomas onegd)
- Fix the select event issue in
at_recvfrom()
function in at_socket; - Divide SAL into
sal_socket_ops/sal_proto_ops
and sal_proto_ops is implemented with gethostbyname/getaddrinfo ops etc. - Add socket TLS layer in SAL, that is, upper application can be supported by encrypted transmission without considering lowlevel TLS at all.
- Fix the length issue of
ulog_strcpy
, which should be not exceedULOG_LINE_BUF_SIZE
; - Add the macro definition of hexadecimal log output to ulog; (HubretXie)
- Add uTest component. The uTest is a unit test framework on RT-Thread, and can also be used for automatic testing on board with external Python scripts.
- Fix some compilation warnings and enumeration mismatches in drivers/audio;
- Fix the
can_rx/can_tx
issue, which is not cleared to NULL when CAN device is closed in drivers/can; (xeonxu) - Fix drivers/hwtimer, time acquisition issue with counting down mode;
- Add drivers/adc driver framework;
- Fix the tick compensation issue when enable interrupt too early; (geniusgogo)
- Add
RT_SERIAL_USING_DMA
option in drivers/serial; - Add QSPI support in drivers/spi framework;
- Add QSPI support in SFUD (based on the QSPI peripheral of stm32); SFUD is upgraded to version 1.1.0;
- Optimize SPI take/release function call in spi_msd;
- Fix the
blk_size
issue inrt_rbb_blk_alloc()
; - Fix the FS USB issue in
_get_descriptor
function; - Fix the empty password issue in AP mode of drivers/wlan;
- Fix the return type issue in drivers/wlan;
- Remove the duplicate opening file check when open a file;
BSP
- Change the name parameter to
cosnt char *
inrt_hw_interrupt_install
function; (liruncong) - Rewrite the RISC-V porting layer to make as a common and standalone porting layer for RISC-V IMAC 32/64;
- Fix
$
warning issue in Kconfig files of each BSP; - Add the LPC54114-lite BSP, including GPIO, I2C, SDCard, SPI, SPI Flash, UART driver;
- Add Nuvoton-M487 BSP, including UART, EMAC driver; (Bluebear 233)
- Add Kendryte K210 BSP with RISC-V64 dual-core SMP BSP, including UART driver, also verified with micropython;
- Add RV32M1 VEGA BSP, including GPIO, I2C, SDCard, UART and other drivers;
- Fix the CAN driver issue in STM32F4XX-HAL BSP; (xeonxu)
- Fix UART DMA settings issue in STM32F10x/STM32F40x BSP; (zhouchuanfu)
- Fix the HEAP_BEGIN definition issue in STM32H743-Nucleo BSP; (nongxiaoming)
- Fix GPIO configuration issue in stm32f10x-HAL; (Wu Han)
- Change stm32f107 BSP as main function entry; (whj4674672)
- Fix the serial interrupt handling issue in stm32f10x BSP;
- Add PWM, RTC and watchdog drivers to stm32f10x-HAL BSP; (XXXXzzzz000)
- Fix the watchdog driver issue in stm32f4xx-HAL BSP; (XXXXzzzz000)
- Use lwIP version 2.x in stm32f40x/stm32f107 BSP.
- Fix the link issue when enable cmBacktrace package in stm32f4xx-HAL BSP; (xeonxu)
- Support Audio and microphones features in stm32f429-apollo BSP;
- Enable dlmodule support in x86 BSP; (SASANO Takayoshi)
- Addd uTest section in the link script of qemu-vexpress-a9/stm32f429-atk-apollo BSP for automatic testing;
- Change the license to Apache License v2.0 in Godson 1C BSP; (sundm75)
- Add the new BSP framework for STM32 serial chip, such as STM32 G0/F0/L0/F1/F4/F7/H7. In new BSP framework, the SoC drivers is reused. And in same time, lots of STM32 boards are supportted with new BSP framework:
- STM32F091-Nucleo Development Board BSP
- STM32F411-Nucleo Development Board BSP
- STM32L432-Nucleo Development Board BSP; (sun_shine)
- STM32F407-Discovery Development Board BSP
- STM32F446-Nucleo Development Board BSP; (andeyqi)
- STM32F746-Discovery Development Board BSP; (jinsheng)
- STM32F767-Nucleo Development Board BSP; (e31207077)
- STM32G071-Nucleo Development Board BSP;
- ATK STM32F103 NANO Development Board BSP
- ATK STM32F407 Explorer Development Board BSP
- ATK STM32F429 Apollo Development Board BSP
- ATK STM32F767 Apollo Development Board BSP
- ATK STM32L475 Pandora IoT Development Board BSP
- Fire STM32F103 Arbitrary Development Board BSP
- Fire STM32F429 Challenger Development Board BSP
- Fire STM32F767 Challenger Development Board BSP; (Hao Zhu)
- ArmFly STM32F429-v6 Development Board BSP
- STM32F103 iBox development board BSP; (dingo1688)
- Dofly STM32F103 Development Board; (FindYGL)
- STM32F107 uC/Eval Development Board BSP; (whj4674672)
- and more, there are more developers involved for stm32 BSP framework, they are HubretXie, Hao Zhu, e190, etc. to improve the STM32 public driver.
- Add SWM320 BSP of Synwit.cn, including GPIO, HW Timer, I2C, Watchdog, PWM, RTC, SPI, UART, etc.; (provided and maintained by Synwit)
- Add TI TMS320F28379D BSP, the first DSP chip supported on RT-Thread; (xuzhuoyi)
- Fix USB driver issue in X1000; (Zhou YanJie)
- Add BSP for Synopsys Design Ware ARC EM Starter Kit, bsp/synopsys/emsk_em9d, EM9D core, including GPIO, UART and other drivers; (provided and maintained by Synopsys)
Tool
- Provide more information when the tool chain does not exist;
- Add a draft Segger Embedded Studio project file generation command. Note that the tool chain in SES is a special version not the newlib.
- Fix the IAR library link command issue when use scons command line under;
- Fix the BSP path issue in scons
str(Dir('#'))
; - Add
scons --pyconfig-silent
command to add some Kconfig configurations and to generate.config
andrtconfig.h
files; - Update the
scons --dist
command to adapt to the new BSP framework; - Modify the mkromfs.py script. Fix the corresponding C code generation When the romfs contains empty files or empty folders;
- Fix the issue of version string comparison issue for GNU GCC version in utils.py;
- ENV updated to V1.1.0
- Provide better prompt information to improve user experience;
- Add
system32
path to environment variables to avoid thecmd
command cannot be found; - Add
PYTHONHOME
variable to environment variables to avoid PYTHON environment issue;