|  | @@ -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 <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
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  # RT-Thread v4.0.3 Change Log
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Change log since v4.0.2
 |