v4.0.4
版本发布时间: 2021-10-15 18:10:17
RT-Thread/rt-thread最新发布版本:v5.1.0(2024-04-22 14:50:37)
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>imer 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