diff --git a/ChangeLog.md b/ChangeLog.md index 0b1ad3508e..2869db7634 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,3 +1,309 @@ +# RT-Thread v4.0.4 released + +Change log since v4.0.3 + +## Kernel + +- Update memheap auto binding policy +- Remove rt_thread_exit function +- Improve API annotations and code comments +- Standardize internal function naming +- Add recessive RT_USING_ASM_MEMCPY definition to Kconfig +- Add RT_PRINTF_LONGLONG option to Kconfig, not selected by default +- Clear support for RT_PRINTF_LONGLONG in kservice.c +- Fix RT_PRINTF_LONGLONG is supported by default in 64-bit mode +- Solve the problem that FINSH cannot respond to serial port input in multi-core mode +- Optimize the comment for ipc +- Adjust the code to support cpu usage +- Adjust the exception handling code structure to support backtrace functionality +- Remove the mutex RT_IPC_FLAG_FIFO function +- Remove switch_to_sethook function +- Add idle reclaimed resources +- Change defined(__CC_ARM) || defined(__CLANG_ARM) to ifdef __ARMCC_VERSION +- Fix comment error for rt_mutex_detach(). +- Remove the rt_sscanf statement +- Add RT_WEAK for rt_malloc_align,rt_free_align +- Changed the memory heap protection mechanism from FIFO to PRIO +- Remove fix priority inversion bug of mutex +- Add volatile to the rt_tick variable to prevent compiler optimization problems +- Keep the atomicity of idle task hook function calls +- Fix the crash problem after opening Oz optimization on ac6. +- Add protect to the rt_tick_increase critical section +- Add rt_mutex_trytake function +- Improve kernel stability +- Remove C99 dependencies +- Add conditional compilation for _has_defunct_thread function +- Clarify the context +- Add get/set microsecond time control command +- Fix code comment error for function rt_memset(). +- Remove rt_device_init_all() function +- Adjust graphics device driver definitions +- Unsigned comparisons should still be used when the signed comparison is undone +- Fix compile error when using LOG_HEX(...) function but RT_USING_ULOG not defined + +## Components + +- Support armclang +- Optimized system for suppoort gcc +- Update Libc + - Create a gcc folder and merge the newlib and partical folders + - Optimized system to support GCC + - Fix support system function + - Fix asctime_r return value + - Lowers the action of calling printf before libc initialization to the warning level + - Replace dfs_select.h with standard sys/select.h + - The RT_LIBC_USING_TIME macro definition remains after RT_USING_LIBC is enabled + - Optimized fcntil.h definition + - Fix syscall was optimized to incorporate minilibc into syscalls.c file + - Rebuild _libc_init_array to prevent chip startup failure under GCC + - RT_USING_NEWLIB and math libraries are defined without libc enabled + - Fix the conflict warning of read and write functions + - Remove libc_signal.h and libc_fdset.h + - Fix an issue where keil did not compile properly + - Remove rtlibc, libc_stdio.h, libc_dirent.h, libc_ioctl.h,libc_signal.h,libc_fdset.h,libc_errno.h, libc_limits.h + - Add delay when the scheduler is not running + - Fix armClang support issues + - usleep supports calling in interrupts. + - Fix sys header file import when liBC is not enabled + - The gettimeofday () function supports time zones and specification set_timeval/get_timeval returns a value + - Fix warning of posix_signal + - Fix bug where nonegcc folder path was not added to project in Simulator Win32 + - Fix error caused by libc removing sys/errno.h file + - Remove _TIMESPEC_DEFINED + - Add the RT_LIBC_FIXED_TIMEZONE default value to time.c to prevent projects that do not have RT_LIBC_FIXED_TIMEZONE configured + - Add the ability to manually set the time zone + - Add riscv.c dlmodule can support riscv architecture + - Implement pid_t gettid(void) + - Implement isatty() + - Implement set_timeval + - Change the libc directory to common and none-gcc + - Remove dlib and armlibc `sys` folder + - Fix MDK build error when using gmtime_r + - Optimize get_timeval and set_timeval conditional compiled code structure + - Update mktime support fixed timezone + - Add microseconds time get feature in gettimeofday + - LOG_W will cause a recursive printing if ulog timestamp function is turned on + - Remove inherent mutex protect +- Update drivers + - Fix stdint in cputime + - Delete NTP configurations + - Make rt_soft_rtc_init private + - Bypass controlling commands in touch class to driver + - Update the RTC device driver framework to unify and simplify RTC device registration and access + - Add i2c bus control api + - Update uac class, remove GPL code + - Fix measurement unit of "percentage" to "permillage" for accuracy + - Add spo2 sensor support in drivers/include/drivers/sensor.h and drivers/sensors/sensor.c + - Optimize pin.h, sensor.h, rtdevice.h to avoid reverse inclusion + - Update usb enlarge uconfig_descriptor's data array space + - Add security devices +- [netif] Fix the eth_tx_msg protection +- Update utest + - Add kernel testcases + - Fix TC_FAIL_LIST_MARK_FAILED Subscript calculation error +- Fix comments error in ringbuffer and workqueue +- Update ringbuffer + - Add an interface comment + - Local variables are used to prevent resource competition + - Write_index bug in rt_ringbuffer_put_force +- Update workqueue + - Add an interface comment + - Remove rt_delayed_work_init() + - Privatize the rt_work_sys_workqueue_init function + - Fix an unexpected suspension of critical condition threads +- Fixed timer ASSERT exception due to multithreaded scheduling +- Optimize the inclusion relationship between dfs.h and dirent.h +- Update finsh + - Restore the FINSH_USING_MSH definition for compatibility + - Expose the finsh_getchar function + - Fixed _cmd_xxx command unavailable due to finsh removal + - Update Kconfig is more hierarchical + - The finsh component can optionally include built-in commands + - Repaie that the table key on msh do not work + - The list-thread command adds the bind core display for multiple cores + - Add support for tasking toolchain + - Add mount/umount cmd +- Fix ringblk_buf error when no longer using dynamic memory +- [timezone] implement timezone +- [DeviceDriver] Change the special device commands form 0x1X to 0x2X. It will avoid same of general device commands +- Update AT + - Update old_urc_table to new_urc_table + - Optimized at socket memory leak modification + - Add at_utils_send virtual function + - Fix at_vprintf and at_vprintfln and end_sign response + - Fix at_server_getchar spelling error +- Add device type USBOTG to redef.h +- [newlib] fix compile error when closing RT_USING_CONSOLE +- Update rtc + - Add RT_DEVICE_CTRL_RTC_GET_TIMEVAL and RT_DEVICE_CTRL_RTC_SET_TIMEVAL ops + - Remove RT_DEVICE_CTRL_RTC_GET_TIME_US and RT_DEVICE_CTRL_RTC_SET_TIME_US. Add RT_DEVICE_CTRL_RTC_GET_TIMEVAL and RT_DEVICE_CTRL_RTC_SET_TIMEVAL. The RT_DEVICE_CTRL_RTC_GET_TIMEVAL cmd can get second time and microsecond time. + - Change core.c/.h name to rtc.c /.h + - Update rt_rtc_dev_register function name to rt_hw_rtc_register + - Change localtime name to localtime_r +- [ethernetif] replace rt_memcpy with SMEMCPY +- [sdio] remove rt_mmcsd_blk_init +- Update time + - Fix an issue where POSIX related functions were not protected for critical sections + - Adjust the judgment logic of posiX related functions to obtain time results + - Rename nonstandard liBC functions and reposition the time.h definition + - Revert the old code +- Fix the sem init check bug in pthread. +- Fix MMC initialization error, write card->csd as card->cid +- Update serial + - Add CTS/RTS flowcontrol + - Implement function of getting window's size(TIOCGWINSZ) + - Optimized RT_USING_POSIX_TERMIOS precompilation + - Serial_v2 support device ops feature + - Fix the problem that serial Close did not clear the callback interface + - Optimize send non-blocking problem when serial_close does not execute rt_completion_done + - Optimize DMA receive processing flow and decouple the driver to call the API interface of the serial port framework + - Added the Serial V2 framework and the Serial port driver based on STM32 + - Serial_v2 support device ops feature + - Fix do RT_DEVICE_CTRL_CLOSE cmd when close serial device regardless of DMA config +- Update lwip + - Fix lwIP critical section protection bug + - Set default lwip stack for old bsp folder. + - Change default lwip stack to lwip2.0.3 + - Fix delete useless code. + - The "event_callback" will be change by RT-Thread dfs. + - Adjust the string.h position + - LWIP_TIMEVAL_PRIVATE: provided by + - 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 + # RT-Thread v4.0.3 Change Log Change log since v4.0.2