|
| 1 | +# RT-Thread v4.0.4 released |
| 2 | + |
| 3 | +Change log since v4.0.3 |
| 4 | + |
| 5 | +## Kernel |
| 6 | + |
| 7 | +- Update memheap auto binding policy |
| 8 | +- Remove rt_thread_exit function |
| 9 | +- Improve API annotations and code comments |
| 10 | +- Standardize internal function naming |
| 11 | +- Add recessive RT_USING_ASM_MEMCPY definition to Kconfig |
| 12 | +- Add RT_PRINTF_LONGLONG option to Kconfig, not selected by default |
| 13 | +- Clear support for RT_PRINTF_LONGLONG in kservice.c |
| 14 | +- Fix RT_PRINTF_LONGLONG is supported by default in 64-bit mode |
| 15 | +- Solve the problem that FINSH cannot respond to serial port input in multi-core mode |
| 16 | +- Optimize the comment for ipc |
| 17 | +- Adjust the code to support cpu usage |
| 18 | +- Adjust the exception handling code structure to support backtrace functionality |
| 19 | +- Remove the mutex RT_IPC_FLAG_FIFO function |
| 20 | +- Remove switch_to_sethook function |
| 21 | +- Add idle reclaimed resources |
| 22 | +- Change defined(__CC_ARM) || defined(__CLANG_ARM) to ifdef __ARMCC_VERSION |
| 23 | +- Fix comment error for rt_mutex_detach(). |
| 24 | +- Remove the rt_sscanf statement |
| 25 | +- Add RT_WEAK for rt_malloc_align,rt_free_align |
| 26 | +- Changed the memory heap protection mechanism from FIFO to PRIO |
| 27 | +- Remove fix priority inversion bug of mutex |
| 28 | +- Add volatile to the rt_tick variable to prevent compiler optimization problems |
| 29 | +- Keep the atomicity of idle task hook function calls |
| 30 | +- Fix the crash problem after opening Oz optimization on ac6. |
| 31 | +- Add protect to the rt_tick_increase critical section |
| 32 | +- Add rt_mutex_trytake function |
| 33 | +- Improve kernel stability |
| 34 | +- Remove C99 dependencies |
| 35 | +- Add conditional compilation for _has_defunct_thread function |
| 36 | +- Clarify the context |
| 37 | +- Add get/set microsecond time control command |
| 38 | +- Fix code comment error for function rt_memset(). |
| 39 | +- Remove rt_device_init_all() function |
| 40 | +- Adjust graphics device driver definitions |
| 41 | +- Unsigned comparisons should still be used when the signed comparison is undone |
| 42 | +- Fix compile error when using LOG_HEX(...) function but RT_USING_ULOG not defined |
| 43 | + |
| 44 | +## Components |
| 45 | + |
| 46 | +- Support armclang |
| 47 | +- Optimized system for suppoort gcc |
| 48 | +- Update Libc |
| 49 | + - Create a gcc folder and merge the newlib and partical folders |
| 50 | + - Optimized system to support GCC |
| 51 | + - Fix support system function |
| 52 | + - Fix asctime_r return value |
| 53 | + - Lowers the action of calling printf before libc initialization to the warning level |
| 54 | + - Replace dfs_select.h with standard sys/select.h |
| 55 | + - The RT_LIBC_USING_TIME macro definition remains after RT_USING_LIBC is enabled |
| 56 | + - Optimized fcntil.h definition |
| 57 | + - Fix syscall was optimized to incorporate minilibc into syscalls.c file |
| 58 | + - Rebuild _libc_init_array to prevent chip startup failure under GCC |
| 59 | + - RT_USING_NEWLIB and math libraries are defined without libc enabled |
| 60 | + - Fix the conflict warning of read and write functions |
| 61 | + - Remove libc_signal.h and libc_fdset.h |
| 62 | + - Fix an issue where keil did not compile properly |
| 63 | + - Remove rtlibc, libc_stdio.h, libc_dirent.h, libc_ioctl.h,libc_signal.h,libc_fdset.h,libc_errno.h, libc_limits.h |
| 64 | + - Add delay when the scheduler is not running |
| 65 | + - Fix armClang support issues |
| 66 | + - usleep supports calling in interrupts. |
| 67 | + - Fix sys header file import when liBC is not enabled |
| 68 | + - The gettimeofday () function supports time zones and specification set_timeval/get_timeval returns a value |
| 69 | + - Fix warning of posix_signal |
| 70 | + - Fix bug where nonegcc folder path was not added to project in Simulator Win32 |
| 71 | + - Fix error caused by libc removing sys/errno.h file |
| 72 | + - Remove _TIMESPEC_DEFINED |
| 73 | + - Add the RT_LIBC_FIXED_TIMEZONE default value to time.c to prevent projects that do not have RT_LIBC_FIXED_TIMEZONE configured |
| 74 | + - Add the ability to manually set the time zone |
| 75 | + - Add riscv.c dlmodule can support riscv architecture |
| 76 | + - Implement pid_t gettid(void) |
| 77 | + - Implement isatty() |
| 78 | + - Implement set_timeval |
| 79 | + - Change the libc directory to common and none-gcc |
| 80 | + - Remove dlib and armlibc `sys` folder |
| 81 | + - Fix MDK build error when using gmtime_r |
| 82 | + - Optimize get_timeval and set_timeval conditional compiled code structure |
| 83 | + - Update mktime support fixed timezone |
| 84 | + - Add microseconds time get feature in gettimeofday |
| 85 | + - LOG_W will cause a recursive printing if ulog timestamp function is turned on |
| 86 | + - Remove inherent mutex protect |
| 87 | +- Update drivers |
| 88 | + - Fix stdint in cputime |
| 89 | + - Delete NTP configurations |
| 90 | + - Make rt_soft_rtc_init private |
| 91 | + - Bypass controlling commands in touch class to driver |
| 92 | + - Update the RTC device driver framework to unify and simplify RTC device registration and access |
| 93 | + - Add i2c bus control api |
| 94 | + - Update uac class, remove GPL code |
| 95 | + - Fix measurement unit of "percentage" to "permillage" for accuracy |
| 96 | + - Add spo2 sensor support in drivers/include/drivers/sensor.h and drivers/sensors/sensor.c |
| 97 | + - Optimize pin.h, sensor.h, rtdevice.h to avoid reverse inclusion |
| 98 | + - Update usb enlarge uconfig_descriptor's data array space |
| 99 | + - Add security devices |
| 100 | +- [netif] Fix the eth_tx_msg protection |
| 101 | +- Update utest |
| 102 | + - Add kernel testcases |
| 103 | + - Fix TC_FAIL_LIST_MARK_FAILED Subscript calculation error |
| 104 | +- Fix comments error in ringbuffer and workqueue |
| 105 | +- Update ringbuffer |
| 106 | + - Add an interface comment |
| 107 | + - Local variables are used to prevent resource competition |
| 108 | + - Write_index bug in rt_ringbuffer_put_force |
| 109 | +- Update workqueue |
| 110 | + - Add an interface comment |
| 111 | + - Remove rt_delayed_work_init() |
| 112 | + - Privatize the rt_work_sys_workqueue_init function |
| 113 | + - Fix an unexpected suspension of critical condition threads |
| 114 | +- Fixed timer ASSERT exception due to multithreaded scheduling |
| 115 | +- Optimize the inclusion relationship between dfs.h and dirent.h |
| 116 | +- Update finsh |
| 117 | + - Restore the FINSH_USING_MSH definition for compatibility |
| 118 | + - Expose the finsh_getchar function |
| 119 | + - Fixed _cmd_xxx command unavailable due to finsh removal |
| 120 | + - Update Kconfig is more hierarchical |
| 121 | + - The finsh component can optionally include built-in commands |
| 122 | + - Repaie that the table key on msh do not work |
| 123 | + - The list-thread command adds the bind core display for multiple cores |
| 124 | + - Add support for tasking toolchain |
| 125 | + - Add mount/umount cmd |
| 126 | +- Fix ringblk_buf error when no longer using dynamic memory |
| 127 | +- [timezone] implement timezone |
| 128 | +- [DeviceDriver] Change the special device commands form 0x1X to 0x2X. It will avoid same of general device commands |
| 129 | +- Update AT |
| 130 | + - Update old_urc_table to new_urc_table |
| 131 | + - Optimized at socket memory leak modification |
| 132 | + - Add at_utils_send virtual function |
| 133 | + - Fix at_vprintf and at_vprintfln and end_sign response |
| 134 | + - Fix at_server_getchar spelling error |
| 135 | +- Add device type USBOTG to redef.h |
| 136 | +- [newlib] fix compile error when closing RT_USING_CONSOLE |
| 137 | +- Update rtc |
| 138 | + - Add RT_DEVICE_CTRL_RTC_GET_TIMEVAL and RT_DEVICE_CTRL_RTC_SET_TIMEVAL ops |
| 139 | + - 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. |
| 140 | + - Change core.c/.h name to rtc.c /.h |
| 141 | + - Update rt_rtc_dev_register function name to rt_hw_rtc_register |
| 142 | + - Change localtime name to localtime_r |
| 143 | +- [ethernetif] replace rt_memcpy with SMEMCPY |
| 144 | +- [sdio] remove rt_mmcsd_blk_init |
| 145 | +- Update time |
| 146 | + - Fix an issue where POSIX related functions were not protected for critical sections |
| 147 | + - Adjust the judgment logic of posiX related functions to obtain time results |
| 148 | + - Rename nonstandard liBC functions and reposition the time.h definition |
| 149 | + - Revert the old code |
| 150 | +- Fix the sem init check bug in pthread. |
| 151 | +- Fix MMC initialization error, write card->csd as card->cid |
| 152 | +- Update serial |
| 153 | + - Add CTS/RTS flowcontrol |
| 154 | + - Implement function of getting window's size(TIOCGWINSZ) |
| 155 | + - Optimized RT_USING_POSIX_TERMIOS precompilation |
| 156 | + - Serial_v2 support device ops feature |
| 157 | + - Fix the problem that serial Close did not clear the callback interface |
| 158 | + - Optimize send non-blocking problem when serial_close does not execute rt_completion_done |
| 159 | + - Optimize DMA receive processing flow and decouple the driver to call the API interface of the serial port framework |
| 160 | + - Added the Serial V2 framework and the Serial port driver based on STM32 |
| 161 | + - Serial_v2 support device ops feature |
| 162 | + - Fix do RT_DEVICE_CTRL_CLOSE cmd when close serial device regardless of DMA config |
| 163 | +- Update lwip |
| 164 | + - Fix lwIP critical section protection bug |
| 165 | + - Set default lwip stack for old bsp folder. |
| 166 | + - Change default lwip stack to lwip2.0.3 |
| 167 | + - Fix delete useless code. |
| 168 | + - The "event_callback" will be change by RT-Thread dfs. |
| 169 | + - Adjust the string.h position |
| 170 | + - LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h> |
| 171 | + - LWIP2.0.2 and 2.1.2 remove ERRNO |
| 172 | + - Remove ESHUTDOWN from LWIP |
| 173 | + - Remove the possible critical zone risk |
| 174 | + - Iperf speed test have been stable. |
| 175 | + - The overflow problem of lwip rx thread mailbox. |
| 176 | +- [pm] Index should be less than PM_MODLUE_MAX_ID |
| 177 | +- [cputime] Add sys/errno.h |
| 178 | +- Update msh |
| 179 | + - Implement tail command |
| 180 | + - Fix shell msh_exec memory over-bound. |
| 181 | +- Update dfs |
| 182 | + - Fix F_GETFL/F_SETFL should be handled by the drivers. |
| 183 | + - Change the default maximum number and type of the file system to 4 |
| 184 | + - Add format_ignore file, exclude fatfs format check |
| 185 | + - Add comments for _device_fs |
| 186 | +- Update ymodem |
| 187 | + - Modified the enabling conditions of YMODEM USING FILE TRANSFER |
| 188 | + - Check the file path's legitimacy of'sy' command |
| 189 | +- Add new component: rt-link |
| 190 | +- [net] Add the function of set [internet up] status, activate the callback. |
| 191 | +- [components] Remove uip |
| 192 | +- Update ulog |
| 193 | + - Using gettimeofday for timestamp get |
| 194 | + - Fix thread info show when kernel not startup |
| 195 | + - Increase the usec check time |
| 196 | + - Add output locker enabled API |
| 197 | +- Update FatFs |
| 198 | + - Update the mutex protection timeout can be set using Kconfig |
| 199 | + - Fix the time dependent function opening condition |
| 200 | + |
| 201 | +## BSP and CPU porting |
| 202 | + |
| 203 | +- Support armclang |
| 204 | +- [stm32h750-artpi-h750] Complete bsp |
| 205 | +- [ls2k] Fix missing header file applications |
| 206 | +- [AT32] Complete BSP |
| 207 | +- Add _CRT_DECLARE_NONSTDC_NAMES=0 macro definition in simulator bsp |
| 208 | +- Refresh the project and remove rtlibc and duplicate definitions in simulator bsp |
| 209 | +- Update libcpu |
| 210 | + - Modified the irq handle interface rt_hw_trap_IRq to support intercore IPI interrupt processing |
| 211 | + - Add interface dcache invalidate/dcache clean&invalidate |
| 212 | + - Adjust the stack_top to bss |
| 213 | + - Remove gtimer/pmu from cortex-a |
| 214 | + - Repair hard fault return bug |
| 215 | + - Add in Cortex-A to turn on the _rt_FFS implementation when RT_USING_CPU_FFS macro definition |
| 216 | + - Add interface to get Cortex-A Generic Timer frequency |
| 217 | + - Add GICV3 interrupt controller code, updated MenuConfig configuration options with utest config.h |
| 218 | + - Tidy up the cortex-a aarch32 boot code |
| 219 | + - Fix RTC driver compile error |
| 220 | + - add gic>imer interface |
| 221 | + - Optimized the condition for automatically enabling FPU when cortex-A does not define an exception |
| 222 | + - Fix inconsistent function behavior with different optimization levels |
| 223 | + - Correct cortex-m23 rvds.S including for armclang platform. |
| 224 | +- Fix simulator: |
| 225 | + - Fix sd_sim.c compilation error using rt_dgb instead of old debug output |
| 226 | + - Refresh the project and remove rtlibc and duplicate definitions |
| 227 | + - Add _CRT_DECLARE_NONSTDC_NAMES=0 macro definition |
| 228 | +- Fix stm32f407-explorer |
| 229 | + - Optimize fal Settings |
| 230 | + - Update readme |
| 231 | + - Implement ESP8266 configuration in extended module driver menu |
| 232 | + - Optimized Kconfig file system naming, SFUD registration w25Q128 name adaptive, avoid users to set more than one step name |
| 233 | +- Add more BSP on BSP framework: |
| 234 | + - VangoV85xx |
| 235 | + - hc32l136 |
| 236 | + - ap32f103xe-miniboard |
| 237 | + - gd32407v-start |
| 238 | + - mm32f103x |
| 239 | + - ch32f103c8-core |
| 240 | + - n32g452xx |
| 241 | + - hc32l196 |
| 242 | + - hc32f460petb |
| 243 | + - gd32f105c-eval |
| 244 | + - nrf52833 |
| 245 | + - hc32f030c8t6-mini |
| 246 | + - fm33lc0xx |
| 247 | + - stm32l4r9-st-sensortile-box |
| 248 | + - stm32f302-st-nucleo |
| 249 | + - mm32f3270 |
| 250 | + - stm32f407-robomaster-c |
| 251 | + - qemu-riscv-virt64 |
| 252 | + - gd32350r-eval |
| 253 | + - stm32f407-armfly-v5 |
| 254 | + - juicevm |
| 255 | + - stm32f207-st-nucleo |
| 256 | + - m2354 |
| 257 | +- [ch32f103c8-core] rename function name: ch32f1_hwtimer_clock_init, ch32f1_hwtimer_clock_get |
| 258 | +- Fix thread-smart |
| 259 | + - Support T-HEAD Xuantie-E9xx Series CPU on Smart-EVB, eg. E906/F/D/P, E907/F/D/P |
| 260 | + - Formatting code |
| 261 | + - Add QEMU support, and code optimization for thead extension |
| 262 | +- [mm32f327x] Fix .ignore_format file path error |
| 263 | +- [hc32f4a0] Fix syntax errors in scons scripts |
| 264 | +- [x86] Enable romfs |
| 265 | +- Replace gmtime with gmtime_r |
| 266 | +- [swm320-lp100] Update libraries |
| 267 | +- [ft2004] Add gtimer support and fixed can driver initialization issues |
| 268 | +- Fix bluetrum |
| 269 | + - Optimizing the uart driver |
| 270 | + - Fix RTC driver building errors |
| 271 | + - Add RT_USING_CONSOLE judgment |
| 272 | +- [nrf52x] Optimize drv_wdt.c |
| 273 | +- [mm32f327x] Add on-chip flash driver |
| 274 | +- [imxrt1064-nxp-evk] Improved I2C, UART,LCD kconfig, fixed i2C imXrT_i2C_mST_xfer function that would write an address before reading data |
| 275 | +- [w60x] Fix UART1 function unavailable |
| 276 | +- [gd32450z-eval] Update firmware library and delete usb relate library codes |
| 277 | +- [raspi4-32] Update raspi4-32 eth drv |
| 278 | +- [bluetrum] Fix uart1 and uart2 cannot recv data |
| 279 | +- Fix STM32 |
| 280 | + - Implement rtc driver to RTC framework V2.0 |
| 281 | + - Add spi config increases irq_type |
| 282 | + - Fix driver library USBH initialization errors |
| 283 | + - Add timeval ops for STM32 platform Sub-second timestamp. |
| 284 | +- Remove BSP on BSP framework: |
| 285 | + - realview-a8 |
| 286 | + - fh8620 |
| 287 | + - gkipc |
| 288 | + - stm32f20x |
| 289 | + - efm32 |
| 290 | + - zynq7000 |
| 291 | + - stm32f1.0-mini-sysytem |
| 292 | +- Fix unused device frame error |
| 293 | +- Update GPL license to Apache-2.0, and format files |
| 294 | +- Fix incorrect setting of word length when parity check is enabled on the STM32 serial port |
| 295 | + |
| 296 | +## Tools |
| 297 | + |
| 298 | +- Support windows cmake tool |
| 299 | +- Optimization the EXTERN_LIB variable use |
| 300 | +- Update eclipse project after dist |
| 301 | +- Add default project name and project path while --dist-ide |
| 302 | +- Fix the problem of an error when opening menuconfig after the project is dist |
| 303 | +- Update cmake.py, add c++ support and libpath. |
| 304 | +- Python 3 compatibility support |
| 305 | +- Update eclipse.py to compatible tasking |
| 306 | + |
1 | 307 | # RT-Thread v4.0.3 Change Log
|
2 | 308 |
|
3 | 309 | Change log since v4.0.2
|
|
0 commit comments