1*10465441SEvalZero# RT-Thread v4.0.0 Change Log 2*10465441SEvalZero 3*10465441SEvalZero## Kernel 4*10465441SEvalZero 5*10465441SEvalZero* Add SMP support; 6*10465441SEvalZero* Add support for 64-bit processors; 7*10465441SEvalZero* When the thread is running on CPU, the state of this thread is changed to RUNNING stat instead of READY state in previous version; 8*10465441SEvalZero 9*10465441SEvalZero## Components 10*10465441SEvalZero 11*10465441SEvalZero* When formatting the file system, adds FM_SFD option to create a volume in SFD format for FatFs; (HubretXie) 12*10465441SEvalZero* Add file system handle pointer in `struct dfs_fd' structure; 13*10465441SEvalZero* Fix stdio fd issue when POSIX api is used; (gbcwbz) 14*10465441SEvalZero* Fix the `fd_is_open()` issue: when the sub-path is the same in different mounted filesystem. 15*10465441SEvalZero* Change the critical lock/unlock to dfs_lock/unlock in `getcwd()` function of DFS (the critical lock/unlock is different in SMP environment); 16*10465441SEvalZero* Rewrite `list_thread/list_*` implementation of finsh cmd to avoid multi-core competition case; 17*10465441SEvalZero* Fix the `aio_result` issue, which is returned by `aio_read_work` in AIO; (fullhan) 18*10465441SEvalZero* Fix the mmap issue when the addr parameter is NULL; (fullhan) 19*10465441SEvalZero* Modify the `_sys_istty` function in armlibc to correctly handle STDIN/STDOUT/STDERR; (gbcwbz) 20*10465441SEvalZero* Modify the `_write_r` function in newlib to correctly handle stdout. 21*10465441SEvalZero* Add lightweight processes (lwP) and corresponding system calls; 22*10465441SEvalZero * the lwP user application environment will be added later; 23*10465441SEvalZero* Fix the at_socket issue when socket is a null pointer; (thomas onegd) 24*10465441SEvalZero* Fix the select event issue in `at_recvfrom()` function in at_socket; 25*10465441SEvalZero* Divide SAL into `sal_socket_ops/sal_proto_ops` and sal_proto_ops is implemented with gethostbyname/getaddrinfo ops etc. 26*10465441SEvalZero* Add socket TLS layer in SAL, that is, upper application can be supported by encrypted transmission without considering lowlevel TLS at all. 27*10465441SEvalZero* Fix the length issue of `ulog_strcpy`, which should be not exceed `ULOG_LINE_BUF_SIZE`; 28*10465441SEvalZero* Add the macro definition of hexadecimal log output to ulog; (HubretXie) 29*10465441SEvalZero* 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. 30*10465441SEvalZero* Fix some compilation warnings and enumeration mismatches in drivers/audio; 31*10465441SEvalZero* Fix the `can_rx/can_tx` issue, which is not cleared to NULL when CAN device is closed in drivers/can; (xeonxu) 32*10465441SEvalZero* Fix drivers/hwtimer, time acquisition issue with counting down mode; 33*10465441SEvalZero* Add drivers/adc driver framework; 34*10465441SEvalZero* Fix the tick compensation issue when enable interrupt too early; (geniusgogo) 35*10465441SEvalZero* Add `RT_SERIAL_USING_DMA` option in drivers/serial; 36*10465441SEvalZero* Add QSPI support in drivers/spi framework; 37*10465441SEvalZero* Add QSPI support in SFUD (based on the QSPI peripheral of stm32); SFUD is upgraded to version 1.1.0; 38*10465441SEvalZero* Optimize SPI take/release function call in spi_msd; 39*10465441SEvalZero* Fix the `blk_size` issue in `rt_rbb_blk_alloc()`; 40*10465441SEvalZero* Fix the FS USB issue in `_get_descriptor` function; 41*10465441SEvalZero* Fix the empty password issue in AP mode of drivers/wlan; 42*10465441SEvalZero* Fix the return type issue in drivers/wlan; 43*10465441SEvalZero* Remove the duplicate opening file check when open a file; 44*10465441SEvalZero 45*10465441SEvalZero# BSP 46*10465441SEvalZero 47*10465441SEvalZero* Change the name parameter to `cosnt char *` in `rt_hw_interrupt_install` function; (liruncong) 48*10465441SEvalZero* Rewrite the RISC-V porting layer to make as a common and standalone porting layer for RISC-V IMAC 32/64; 49*10465441SEvalZero* Fix `$` warning issue in Kconfig files of each BSP; 50*10465441SEvalZero* Add the LPC54114-lite BSP, including GPIO, I2C, SDCard, SPI, SPI Flash, UART driver; 51*10465441SEvalZero* Add Nuvoton-M487 BSP, including UART, EMAC driver; (Bluebear 233) 52*10465441SEvalZero* Add Kendryte K210 BSP with RISC-V64 dual-core SMP BSP, including UART driver, also verified with micropython; 53*10465441SEvalZero* Add RV32M1 VEGA BSP, including GPIO, I2C, SDCard, UART and other drivers; 54*10465441SEvalZero* Fix the CAN driver issue in STM32F4XX-HAL BSP; (xeonxu) 55*10465441SEvalZero* Fix UART DMA settings issue in STM32F10x/STM32F40x BSP; (zhouchuanfu) 56*10465441SEvalZero* Fix the HEAP_BEGIN definition issue in STM32H743-Nucleo BSP; (nongxiaoming) 57*10465441SEvalZero* Fix GPIO configuration issue in stm32f10x-HAL; (Wu Han) 58*10465441SEvalZero* Change stm32f107 BSP as main function entry; (whj4674672) 59*10465441SEvalZero* Fix the serial interrupt handling issue in stm32f10x BSP; 60*10465441SEvalZero* Add PWM, RTC and watchdog drivers to stm32f10x-HAL BSP; (XXXXzzzz000) 61*10465441SEvalZero* Fix the watchdog driver issue in stm32f4xx-HAL BSP; (XXXXzzzz000) 62*10465441SEvalZero* Use lwIP version 2.x in stm32f40x/stm32f107 BSP. 63*10465441SEvalZero* Fix the link issue when enable cmBacktrace package in stm32f4xx-HAL BSP; (xeonxu) 64*10465441SEvalZero* Support Audio and microphones features in stm32f429-apollo BSP; 65*10465441SEvalZero* Enable dlmodule support in x86 BSP; (SASANO Takayoshi) 66*10465441SEvalZero* Addd uTest section in the link script of qemu-vexpress-a9/stm32f429-atk-apollo BSP for automatic testing; 67*10465441SEvalZero* Change the license to Apache License v2.0 in Godson 1C BSP; (sundm75) 68*10465441SEvalZero* 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: 69*10465441SEvalZero * STM32F091-Nucleo Development Board BSP 70*10465441SEvalZero * STM32F411-Nucleo Development Board BSP 71*10465441SEvalZero * STM32L432-Nucleo Development Board BSP; (sun_shine) 72*10465441SEvalZero * STM32F407-Discovery Development Board BSP 73*10465441SEvalZero * STM32F446-Nucleo Development Board BSP; (andeyqi) 74*10465441SEvalZero * STM32F746-Discovery Development Board BSP; (jinsheng) 75*10465441SEvalZero * STM32F767-Nucleo Development Board BSP; (e31207077) 76*10465441SEvalZero * STM32G071-Nucleo Development Board BSP; 77*10465441SEvalZero * ATK STM32F103 NANO Development Board BSP 78*10465441SEvalZero * ATK STM32F407 Explorer Development Board BSP 79*10465441SEvalZero * ATK STM32F429 Apollo Development Board BSP 80*10465441SEvalZero * ATK STM32F767 Apollo Development Board BSP 81*10465441SEvalZero * ATK STM32L475 Pandora IoT Development Board BSP 82*10465441SEvalZero * Fire STM32F103 Arbitrary Development Board BSP 83*10465441SEvalZero * Fire STM32F429 Challenger Development Board BSP 84*10465441SEvalZero * Fire STM32F767 Challenger Development Board BSP; (Hao Zhu) 85*10465441SEvalZero * ArmFly STM32F429-v6 Development Board BSP 86*10465441SEvalZero * STM32F103 iBox development board BSP; (dingo1688) 87*10465441SEvalZero * Dofly STM32F103 Development Board; (FindYGL) 88*10465441SEvalZero * STM32F107 uC/Eval Development Board BSP; (whj4674672) 89*10465441SEvalZero * and more, there are more developers involved for stm32 BSP framework, they are HubretXie, Hao Zhu, e190, etc. to improve the STM32 public driver. 90*10465441SEvalZero* Add SWM320 BSP of Synwit.cn, including GPIO, HW Timer, I2C, Watchdog, PWM, RTC, SPI, UART, etc.; (provided and maintained by Synwit) 91*10465441SEvalZero* Add TI TMS320F28379D BSP, the first DSP chip supported on RT-Thread; (xuzhuoyi) 92*10465441SEvalZero* Fix USB driver issue in X1000; (Zhou YanJie) 93*10465441SEvalZero* 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) 94*10465441SEvalZero 95*10465441SEvalZero# Tool 96*10465441SEvalZero 97*10465441SEvalZero* Provide more inforamtion when the tool chain does not exist; 98*10465441SEvalZero* Add a draft Segger Embedded Studio project file generation command. Note that the tool chain in SES is a special version not the newlib. 99*10465441SEvalZero* Fix the IAR library link command issue when use scons command line under; 100*10465441SEvalZero* Fix the BSP path issue in scons `str(Dir('#'))`; 101*10465441SEvalZero* Add `scons --pyconfig-silent` command to add some Kconfig configurations and to generate `.config` and `rtconfig.h` files; 102*10465441SEvalZero* Update the `scons --dist` command to adapt to the new BSP framework; 103*10465441SEvalZero* Modify the mkromfs.py script. Fix the corresponding C code generation When the romfs contains empty files or empty folders; 104*10465441SEvalZero* Fix the issue of version string comparison issue for GNU GCC version in utils.py; 105*10465441SEvalZero* ENV updated to V1.1.0 106*10465441SEvalZero * Provide better prompt information to improve user experience; 107*10465441SEvalZero * Add `system32` path to environment variables to avoid the `cmd` command cannot be found; 108*10465441SEvalZero * Add `PYTHONHOME` variable to environment variables to avoid PYTHON environment issue; 109*10465441SEvalZero 110*10465441SEvalZero# RT-Thread v3.1.1 Change Log 111*10465441SEvalZero 112*10465441SEvalZero## Kernel 113*10465441SEvalZero 114*10465441SEvalZero* Support the configuration of the upward growth stack which is defined by the `ARCH_CPU_STACK_GROWS_UPWARD` macro. Because there are fewer ARCH for stacks growing upward, this configuration item does not display directly in menuconfig. When a CPU ARCH needs stacks growing upward, the configuration of `ARCH_CPU_STACK_GROWS_UPWARD` can be selected by BSP Kconfig file in default. 115*10465441SEvalZero* Support for ARMCC V6 and later compiler (LLVM-based Compiler); currently it's mainly used in Keil MDK IDE. Please notes that the "Warnings" needs to use `Moderate Warnings` in project configuration in C/C++ (AC6) TAB; After using ARMCC v6, RT-Thread will add an additional `CLANG_ARM` macro definition; (liruncong, nongxiaoming, bernard) 116*10465441SEvalZero* The `RT_USING_IDLE_HOOK` configuration in Kconfig becomes a separate configuration item, not limited to `RT_USING_HOOK`; (geniusgogo) 117*10465441SEvalZero 118*10465441SEvalZero## Components 119*10465441SEvalZero 120*10465441SEvalZero* Improve the PWM driver framework and add more interfaces. 121*10465441SEvalZero* Fix the F_SETFL handling in ioctrl function; Fix the return value issue of fcntl function which is always 0 value. 122*10465441SEvalZero* Fix the memheap object type issue when creating a ramfs object. 123*10465441SEvalZero* Add power management framework for low power applications. 124*10465441SEvalZero* Add multi-segment support for read and write operations in MC/SDIO driver framework (for stm32, you can choose a separate stm32_sdio package); (weety) 125*10465441SEvalZero* Add ringblk_buf component for the block mode but in ringbuffer applications; 126*10465441SEvalZero* Improve WLAN management framework with unified interfaces, management, commands, to provide more friendly support to developers and users; 127*10465441SEvalZero* Add the conditional macro in the finsh when the MSH component is not enabled, even if the code files are compiled. 128*10465441SEvalZero* Remove gdbstub and move to rt-thread packages. 129*10465441SEvalZero* Upgrade and improve SAL and AT components: (linuxhan, eddylin83, slyant, luofanlu, Hubert Xie, Lawlieta, zhaojuntao, armink) 130*10465441SEvalZero * Fix the none cleared issue when closing socket in SAL, which lead to the socket is always holding. 131*10465441SEvalZero * Fix the `select()` issue for UDP communication in AT component. Add the receiving data handling to complete the clearing of received event; 132*10465441SEvalZero * Add the errno value when receive data timeout in at_recvfrom function in the AT component. 133*10465441SEvalZero * Add the receive data timeout handling in at_client_recv function in the AT component. 134*10465441SEvalZero* Fix a possible issue in fputc function implementation when using microlib; 135*10465441SEvalZero* Add gmtime_r implementation for ARMCC, IAR tool chain; 136*10465441SEvalZero* Improve time function support in IAR and support 64bit time; (hichard) 137*10465441SEvalZero* DHCPD's support for IPv6; 138*10465441SEvalZero* Remove lwIP-1.3.2 porting and add lwIP-2.1.0 porting; lwIP-2.0.2 is still the default version. 139*10465441SEvalZero* Add a lightweight ulog component and automatically replace the debug macro of the original rtdbg.h when it's enable. 140*10465441SEvalZero* USB stack update 141*10465441SEvalZero * HOST, optimize the USB HOST timeout mechanism; fix the un-alignment visit issue in F4xx-HAL USB host driver; 142*10465441SEvalZero * Device: Add the check when class drivers are illegally registered; Fix the un-aligned access issue in some platforms; optimize CDC VCOM classes, add the timeout mechanism and ID definition. 143*10465441SEvalZero 144*10465441SEvalZero## BSP 145*10465441SEvalZero 146*10465441SEvalZero* Upgrade the wlan adaptor to the new version of Wi-Fi management framework in amebaz BSP. 147*10465441SEvalZero* Add airkiss wifi configuration code to amebaz BSP. 148*10465441SEvalZero* Update Apollo2 BSP with ADC, GPIO, I2C, PDM, SPI, UART and other drivers; (Haleyl) 149*10465441SEvalZero* BeagleBone BSP is changed to main function mode, and adds Kconfig configuration file. 150*10465441SEvalZero* DM365 BSP adds Kconfig configuration file; 151*10465441SEvalZero* Update HiFive1 BSP and add more documentation. 152*10465441SEvalZero* Update imx6sx BSP to main function mode, and add Kconfig configuration file. 153*10465441SEvalZero* Change the old imxrt1052-evk BSP. The imxrt1052-related BSPs are classified into the `bsp/imxrt` directory; A touch framework is added to `bsp/imxrt`, and later will be moved into `components/drivers` directory; 154*10465441SEvalZero* Improve stm32f4xx-HAL BSP with PWM, I2C, USB Host driver; (XuanZe, xuzhuoyi) 155*10465441SEvalZero* Improve stm32f10x BSP with CAN driver and increase I2C driver; (wuhanstudio, AubrCool) 156*10465441SEvalZero* Improve stm32f10x-HAL BSP with I2C, IWG, PWM, RTC and other drivers, improve UART driver; (XuanZe) 157*10465441SEvalZero* Improve stm32f429-disco BSP and add I2C, LCD, Touch driver; (xuzhuoyi) 158*10465441SEvalZero* Improve x86 BSP, support dlmodule function; (SASANO Takayoshi, parai) 159*10465441SEvalZero 160*10465441SEvalZero## Tool 161*10465441SEvalZero 162*10465441SEvalZero* Modify the building script to support Python 3; <Python 3 patches have been submitted to scons and need to wait for next scons release,maybe scons-3.0.2> (Arda) 163*10465441SEvalZero* Add `scons --pyconfig` mode, which has a TK UI configurator; (weety) 164*10465441SEvalZero* Support for GNU GCC 7/8 version toolchains (The `-std=c99` is not added into C-compiler flags), but please note: PThreads component failed in 2.5 and new version of newlib. 165*10465441SEvalZero 166*10465441SEvalZero# RT-Thread 3.1.0 Change Log 167*10465441SEvalZero 168*10465441SEvalZero## Kernel 169*10465441SEvalZero 170*10465441SEvalZero* The main thread priority can be configured by Kconfig; 171*10465441SEvalZero* Add the checking of kernel object type, which can effectively avoid the problem of continuing to use kernel objects after they are destroyed. 172*10465441SEvalZero* Add the idle hook list to mount multiple idle hook, and can be configured by Kconfig. 173*10465441SEvalZero* Add the device_ops operation set to reduce the footprint of device object. 174*10465441SEvalZero* Remove the special memory operation in application module when using SLAB memory management algorithm. 175*10465441SEvalZero* Move application module from the kernel to `libc/libdl`. 176*10465441SEvalZero* Enhance the debug information output of `rtdbg.h` file. 177*10465441SEvalZero* In Keil/IAR tool chain, the `RT_USED` is used to keep symbols and avoid to add more argument or section in link phrase. 178*10465441SEvalZero 179*10465441SEvalZero## Components 180*10465441SEvalZero 181*10465441SEvalZero* Remove all of external codes, which will be moved to packages in the future. 182*10465441SEvalZero* Add initialization flag for shell, file system, network protocol stack etc to prevent repeated initialization; 183*10465441SEvalZero* Enable the long file name feature of ELM FatFs in default. 184*10465441SEvalZero* Change DFS FD to dynamic allocation mode. The maximum number of allocation is still DFS_FD_MAX. 185*10465441SEvalZero* Add dfs_fdtable_get() function to get different fdtable; 186*10465441SEvalZero* Add more DFS error messages, and provide easy to understand log when abnormal. 187*10465441SEvalZero* Fix the disk format issue of FatFs file system when multiple FatFs file systems are mounted. 188*10465441SEvalZero* Remove the folder enter feature in msh when input a folder name; 189*10465441SEvalZero* Add `int finsh_set_prompt (const char * prompt);` routine for setting a custom prompt for msh; 190*10465441SEvalZero* Add the VBUS configuration in Kconfig. 191*10465441SEvalZero* Move the application module from kernel to `libc/libdl` component; 192*10465441SEvalZero* Rewrite most of the management code for application module: replace the original object container with the object list; split the symbol resolution code into different processor architecture etc. 193*10465441SEvalZero* Update the application module chapter in the programming guide, and change it into dynamic module chapter. 194*10465441SEvalZero* Overwrite the exit() function of newlib to take over the processing of exit for a dlmodule. 195*10465441SEvalZero* Add SAL (Socket Abstraction Layer) component for adapting different protocol stacks and network implementations, and update the relevant sections of the programming guide; 196*10465441SEvalZero* Add AT component, including AT client, AT server and AT Socket function; 197*10465441SEvalZero* Remove the poll/select API of DFS_NET and move them to SAL component. 198*10465441SEvalZero* Remove the strong dependence of lwIP component for DFS_NET and replace it with Kconfig configuration in SAL. 199*10465441SEvalZero* Add the DHCP server function with lwIP raw API; 200*10465441SEvalZero* Fix the wait queue none-initialization issue in socket allocation of lwIP. 201*10465441SEvalZero* When a thread is about to block on a wait queue, fix the wake up issue for `rt_wqueue_wakeup' is executed to wake up that thread; 202*10465441SEvalZero* Add the PWM driver framework; 203*10465441SEvalZero* Fix the sdio_irq_wakeup release issue in the MMC/SD framework. 204*10465441SEvalZero* Fix the problem of DMA handling in the serial driver framework. 205*10465441SEvalZero* Update SFUD to v1.0.6 version; 206*10465441SEvalZero 207*10465441SEvalZero## BSP 208*10465441SEvalZero 209*10465441SEvalZero* Fix the SP issue when hard fault occurs for ARM Cortex-M arch; 210*10465441SEvalZero* Add C-Sky CK802 architecture porting; 211*10465441SEvalZero* Add Realtek amebaz WiFi SOC (rtl8710bn) BSP; 212*10465441SEvalZero* Update imxrt1052-evk firmware SDK to support B model chip. 213*10465441SEvalZero* Fix the copying packets issue in the Godson 1C BSP when sending message. 214*10465441SEvalZero* The Nuvoton m05x/m451 BSP are changed into the main() entry mode, and supports GCC compilation; 215*10465441SEvalZero* Fix the inconsistency issue between touch range and LCD resolution in qemu-vexpress-a9. 216*10465441SEvalZero* Add qemu-vexpress-gemini BSP for dual core A9 (RT-Thread + Linux) arch; 217*10465441SEvalZero* Add the basic porting for Raspberry Pi 2B ; 218*10465441SEvalZero* Add CAN and PWM drivers in stm32f4xx-HAL BSP; 219*10465441SEvalZero* Optimize the GPIO driver in stm32f4xx-HAL BSP; 220*10465441SEvalZero* Add UART3 driver in stm32f4xx-HAL BSP; 221*10465441SEvalZero* Fix the I2C1 driver clock in stm32f10x BSP and WDG control interface. 222*10465441SEvalZero* Add rt_hw_us_delay interface in stm32f10x-HAL BSP; 223*10465441SEvalZero* Optimize the GPIO driver in stm32f10x-HAL BSP; 224*10465441SEvalZero* Add GPIO driver and RTC driver in stm32f107 BSP; 225*10465441SEvalZero 226*10465441SEvalZero## Tool 227*10465441SEvalZero 228*10465441SEvalZero* ENV update to v1.0.0 final version. 229*10465441SEvalZero* ENV added the China mirror for software package, which can speed up the software package download, update etc. 230*10465441SEvalZero* Fix the ENV known bugs and enhance the interaction with users. 231*10465441SEvalZero* Add building script to detect the version of GCC & newlib; 232*10465441SEvalZero* Add building script to detect the version of armcc; 233*10465441SEvalZero* Add `scons --dist` function to make distribution for a BSP. 234*10465441SEvalZero* Add `scons - dist - strip' function to make a minimal files of distribution for a BSP. 235*10465441SEvalZero* Add `ASFLAGS/LOCAL_ASFLAGS' parameters for defined a group and pass them to assembler; 236*10465441SEvalZero* Fix some errors in building script under the Linux environment. 237*10465441SEvalZero* Add the C-Sky CDK IDE project generation. 238*10465441SEvalZero* Add `scons --target=vsc -s` to generate friendly configuration files for VSCode; 239*10465441SEvalZero 240*10465441SEvalZero# RT-Thread 3.0.4 Change Log 241*10465441SEvalZero 242*10465441SEvalZero## Kernel 243*10465441SEvalZero 244*10465441SEvalZero* Change the location of hook invoking in rt_event_send, which can better reflect the event value to the system view. 245*10465441SEvalZero* Fix the rt_realloc() issue in memheap; 246*10465441SEvalZero* Fix the vstart_addr issue in the dynamic library. 247*10465441SEvalZero* Ensure that signal is more standardized and remove si_errno members from siginfo_t; 248*10465441SEvalZero* Add rt_thread_mdelay() API for millisecond delay in thread. 249*10465441SEvalZero 250*10465441SEvalZero## Components 251*10465441SEvalZero 252*10465441SEvalZero* Fix the DFS mkfs issue of FatFs (which is a merge issue introduced in RT-Thread V3.0 upgrade). 253*10465441SEvalZero* Fix dfs_net poll issue, if there is already received data, the upper layer can not wake up and deal with data. 254*10465441SEvalZero* Fix the socket issue in dfs_net if lwip_socket failed(Bluebear233); 255*10465441SEvalZero* If the dfs_net/socket feature is used within lwIP 1.x version, a compiler error will be returned. 256*10465441SEvalZero* Fix the DFS df() information issue; 257*10465441SEvalZero* Fix the audio device write issue while the interrupt is not properly recovered. 258*10465441SEvalZero* Fix the one-shot timeout issue in the hardware timer driver framework. 259*10465441SEvalZero* In ENC28J60 driver, the "link change interrupt" is enable in initialization. 260*10465441SEvalZero* Fix the data issue in put data into ringbuffer. 261*10465441SEvalZero* Add UDP information display in netstat command; 262*10465441SEvalZero* Fix the USB HS issue when sending 1 bytes of data will cause two times of transmission. 263*10465441SEvalZero* Change the registration mechanism of USB Class Driver and Class Driver can be registered in package. 264*10465441SEvalZero* Add USB Device driver framework for HS USB. 265*10465441SEvalZero* Enhance the compatibility of time() function for different compilers; 266*10465441SEvalZero* Add more configuration items for DHCPD in menuconfig. 267*10465441SEvalZero 268*10465441SEvalZero## BSP 269*10465441SEvalZero 270*10465441SEvalZero* Temporarily remove the Andes AE210P transplant because of the mistakenly use SVC for context switching. 271*10465441SEvalZero* Add SD/MMC drive in Allwinner ARM9 BSP; 272*10465441SEvalZero* Add SPI and SPI Flash drivers to Allwinner ARM9 BSP. 273*10465441SEvalZero* Add GD32's gd32303e-eval development board support; 274*10465441SEvalZero* gd32450z-eval supports GNU GCC compilation; 275*10465441SEvalZero* Rewriting the hifive1 board level support package for the risc-v architecture; 276*10465441SEvalZero* About i.MX RT1052, we have completed various development board support: ATK, Fire, seeed studio; 277*10465441SEvalZero* On i.MX RT1052, add the cache-ops functions; 278*10465441SEvalZero* On i.MX RT1052, add I2S driver and WM8960 codec driver support; 279*10465441SEvalZero* Improve ETH driver support (including support for Fire development board) on i.MX RT1052. 280*10465441SEvalZero* Add Hardware Timer driver support on i.MX RT1052. 281*10465441SEvalZero* On i.MX RT1052, add GPIO driver; 282*10465441SEvalZero* On i.MX RT1052, add RTC driver; 283*10465441SEvalZero* On i.MX RT1052, improve SD/MMC driver; 284*10465441SEvalZero* On i.MX RT1052, add SPI driver and SPI Flash driver (connect to SFUD component); 285*10465441SEvalZero* Add USB Device driver on i.MX RT1052. 286*10465441SEvalZero* Add README files and KConfig files in LPC408x BSP; 287*10465441SEvalZero* Add README documents in LPC5460x-LPCXpresso BSP; 288*10465441SEvalZero* Add the display controller driver (Sundm75) in Godson 1C BSP. 289*10465441SEvalZero* Add CAN driver in Loongson 1C BSP(Sundm75); 290*10465441SEvalZero* In GPIO driver of Loongson 1C BSP, add (external) interrupt feature (Zhuangwei); 291*10465441SEvalZero* Use SPI automatic initialization in Loongson 1C BSP. 292*10465441SEvalZero* Add I2C driver in Loongson1C BSP(Sundm75); 293*10465441SEvalZero* Add resistive touch screen driver in Loongson 1C BSP(Sundm75); 294*10465441SEvalZero* In Loongson 1C BSP, the components initiliazation and main function is enable(Zhuangwei). 295*10465441SEvalZero* Add self bootup in Loongson1C BSP (Zhuangwei); 296*10465441SEvalZero* Add README files and KConfig files to Loongson 1C BSP(Zhuangwei). 297*10465441SEvalZero* Fix the rx descriptor issue in init_rx_desc function in NUC472 BSP (Bluebear233); 298*10465441SEvalZero* Add AC97 Audio driver in QEMU-VExpress-A9 BSP; 299*10465441SEvalZero* Add README description file in QEMU-VExpress-A9; 300*10465441SEvalZero* Add I2C driver in stm32f4xx-HAL BSP, and README description file; 301*10465441SEvalZero* Add cache-ops in stm32f7-disco BSP, and README description file; 302*10465441SEvalZero* Add README description file in stm32f10x/stm32f10x-HAL; 303*10465441SEvalZero* Add README specification files and KConfig configuration files in stm32f40x BSP; 304*10465441SEvalZero* Add KConfig configuration file in stm32f20x BSP; 305*10465441SEvalZero* Add README description file to stm32f411-nucleo BSP and enable GNU GCC tool chain support; 306*10465441SEvalZero* Add GPIO driver and README description file in stm32f429-apollo BSP; 307*10465441SEvalZero* Add KConfig configuration files in stm32f429-armfly BSP; 308*10465441SEvalZero* Add README description file in stm32l476-nucleo BSP; 309*10465441SEvalZero* Because V2M-MPS2 does not support in 32-bit machine simulation operation, temporarily remove this BSP. 310*10465441SEvalZero* Add README description file and some firmware file, such as u-boot.bin, wifi firmware etc, in X1000 BSP; 311*10465441SEvalZeroTools 312*10465441SEvalZero* Add detection feature for the version of GNU GCC tool chain and libc function feature. 313*10465441SEvalZero* Add the function of VSCode editor assistance, and support scons --target=vsc -s under BSP folder to generate configuration files for VSCode. 314*10465441SEvalZero* Add the detection of verson of IAR; 315*10465441SEvalZero* Add the ProjectInfo (Env) function to get information about target: all source files should be compiled, all header files, all macro definitions, the search paths for header file etc. 316*10465441SEvalZero 317*10465441SEvalZero# RT-Thread 3.0.3 Change Log 318*10465441SEvalZero 319*10465441SEvalZero## Kernel 320*10465441SEvalZero 321*10465441SEvalZero* Add scheduler protection when do cleanup for a detached thread; 322*10465441SEvalZero* Fix the object_find issue when enable module feature; 323*10465441SEvalZero* Improve POSIX signal support and add rt_signal_wait function and POSIX sigwait interface; 324*10465441SEvalZero* When enable finsh shell, rtthread.h header file includes the API file of finsh. Therefore, the application code can use command export feature without finsh.h file; 325*10465441SEvalZero* Improve the comments of rtdbg.h file. In RT-Thread, just use following code to add debug log feature: 326*10465441SEvalZero 327*10465441SEvalZero```c 328*10465441SEvalZero #define DBG_ENABLE 329*10465441SEvalZero 330*10465441SEvalZero #define DBG_SECTION_NAME "[ MOD]" 331*10465441SEvalZero #define DBG_LEVEL DBG_INFO 332*10465441SEvalZero #define DBG_COLOR 333*10465441SEvalZero #include <rtdbg.h> 334*10465441SEvalZero``` 335*10465441SEvalZero 336*10465441SEvalZeroWhen close the DBG_ENABLE definition, the debug log will be closed. Otherwise, the `dbg_log(level, fmt, ...)` can be used to print debug information. 337*10465441SEvalZero 338*10465441SEvalZeroDBG_SECTION_NAME - The prefix information for each log line; 339*10465441SEvalZeroDBG_LEVEL - The debug log level; 340*10465441SEvalZeroDBG_COLOR - Whether use color log in console. 341*10465441SEvalZero 342*10465441SEvalZero## Components 343*10465441SEvalZero 344*10465441SEvalZero* Fix the flag issue of fopen in GNU GCC; 345*10465441SEvalZero* Fix the pthread_detach issue when used for a detached pthread; 346*10465441SEvalZero* Fix the _TIMESPEC_DEFINED issue in IAR 8; 347*10465441SEvalZero* Add libc_stdio_get_console() interface for returns the fd of console; 348*10465441SEvalZero* Move UI engine component as a standalone package; 349*10465441SEvalZero* Add a unify TF/SD card driver on SPI device bus; 350*10465441SEvalZero* Add soft-RTC device, therefore device can synchronize with network time and maintains the time with OS tick later; 351*10465441SEvalZero* Change the open/fcntl/ioctl API to POSIX standard interface; 352*10465441SEvalZero* Fix ramfs issue when update with RTT 3.0.x; 353*10465441SEvalZero* Fix the elm fatfs umount issue; (liu2guang) 354*10465441SEvalZero* ignore the O_CREAT flag when open a device file; 355*10465441SEvalZero* Improve VCOM class driver in USB stack; (ChunfengMu, Aubr.Cool) 356*10465441SEvalZero 357*10465441SEvalZero## BSP 358*10465441SEvalZero 359*10465441SEvalZero* Fix the potential issue when enable Cortex-M hardware FPU; 360*10465441SEvalZero* Add v2m-mps2 bsp, which is used in Keil MDK5 for Cortex-M4/M7/M23/M33 simulation; 361*10465441SEvalZero* Add sdcard driver for stm32f10x-HAL;(liu2guang) 362*10465441SEvalZero* Improve GNU GCC support for stm32f10x-HAL;(Xeon Xu) 363*10465441SEvalZero* simulator bsp can be used in Windows/Visual C++ and update SDL to v2.0.7; 364*10465441SEvalZero* Add gk7102 bsp by gokemicro;(gokemicro) 365*10465441SEvalZero* Add allwinner F1C100s ARM9 bsp;(uestczyh222) 366*10465441SEvalZero* Fix some issues in peripherals drive library of NXP LPC54608/i.MX RT; (Valeriy Van) 367*10465441SEvalZero 368*10465441SEvalZero## Tools 369*10465441SEvalZero 370*10465441SEvalZero* scons building script will automatically add `_REENT_SMALL` macro when enable newlib nanao; 371*10465441SEvalZero* Modify building script for Python 3.x and scons 3.0 372*10465441SEvalZero 373*10465441SEvalZero# RT-Thread v3.0.2 Change log 374*10465441SEvalZero 375*10465441SEvalZero## Platform 376*10465441SEvalZero 377*10465441SEvalZero* Make sure the Object_Class to a fixed value 378*10465441SEvalZero* Add `rt_device_create/destroy` API 379*10465441SEvalZero* Add memory trace for small memory management algorithm for memory leak and overwritten. 380*10465441SEvalZero* Add a first version of asynchronous I/O API 381*10465441SEvalZero* Add cputime for high resolution counter 382*10465441SEvalZero* Add pipe device functions in DeviceDrivers 383*10465441SEvalZero* USB Host available in stm32f4 with mass storage class 384*10465441SEvalZero* Add 'df' command in msh 385*10465441SEvalZero* Update UI engine and add an example 386*10465441SEvalZero* Split `clock_time` from pthreads and add a new clock id: `CLOCK_CPUTIME_ID` 387*10465441SEvalZero* Enable IPv6 in lwIP 2.0.2 version 388*10465441SEvalZero* Add memlog in logtrace 389*10465441SEvalZero* Fix closesocket issue in dfs_net 390*10465441SEvalZero* Fix IPv6 issue in NFS 391*10465441SEvalZero* Update JFFS2 file system with new DFS API 392*10465441SEvalZero* Fix the issue of stat "/.." of lwext4 (parai) 393*10465441SEvalZero* Fix the fs type search issue in mkfs 394*10465441SEvalZero* Fix the select issue in dfs_net 395*10465441SEvalZero 396*10465441SEvalZero## Tools 397*10465441SEvalZero 398*10465441SEvalZero* scons: add '--useconfig' command to use an exist config file 399*10465441SEvalZero* scons: force to use g++ for link when enable `RT_USING_CPLUSPLUS` in GNU GCC configuration 400*10465441SEvalZero* Enable package feature in Linux/MacOS host 401*10465441SEvalZero 402*10465441SEvalZero## BSP 403*10465441SEvalZero 404*10465441SEvalZero* Add NUC472 bsp (bluebear) 405*10465441SEvalZero* Update SD/MMC driver for qemu-vexpress-A9 406*10465441SEvalZero* Add keyboard/mouse driver for qemu-vexpress-a9 407*10465441SEvalZero* Add ADC/I2C/Flash/PWM/RTC/smbus/SPI driver for apollo2 (Haleyl) 408*10465441SEvalZero* Add I2C/LCD/Touch driver for i.MXRT1052-EVK 409*10465441SEvalZero* Update SD/MMC driver for mini2440 (kuangdazzidd) 410*10465441SEvalZero* Update simulator to adapt VC++ compiler 411*10465441SEvalZero* Add USB host driver in stm32f4xx-HAL (uestczyh222) 412*10465441SEvalZero* Update EMAC driver for IPv6 in stm32f40x/stm32f107 413*10465441SEvalZero* Add stm32h743-nucleo bsp (polariss) 414*10465441SEvalZero 415*10465441SEvalZero# RT-Thread v3.0.1 Change log 416*10465441SEvalZero 417*10465441SEvalZero## Platform: 418*10465441SEvalZero 419*10465441SEvalZero* Add mmap()/munmap() API for POSIX compatibility. 420*10465441SEvalZero* Fix the filesystem_operation_table issue. 421*10465441SEvalZero* Enhance USB stack for USB slave (HID/ECM/RNDIS/WINUSB or composite device); 422*10465441SEvalZero* Enhance USB stack for USB host (HID/MSC etc); 423*10465441SEvalZero* Fix memory leak issue when close a pipe. 424*10465441SEvalZero* Fix the romfs open issue; 425*10465441SEvalZero* Add SoftAP device in Wi-Fi framework; 426*10465441SEvalZero* Re-order the lwIP/ETH initialization; 427*10465441SEvalZero* Add IPv6 options in Kconfig; 428*10465441SEvalZero* Fix the module_id issue in _rt_thread_init; 429*10465441SEvalZero 430*10465441SEvalZero## Tools: 431*10465441SEvalZero 432*10465441SEvalZero* Add menuconfig for Linux/Mac platform: use `scons --memuconfig` to enable it; 433*10465441SEvalZero* Add LIBS feature for IAR project; 434*10465441SEvalZero 435*10465441SEvalZero## BSP: 436*10465441SEvalZero 437*10465441SEvalZero* Enhance LPC54608 BSP for kinds of compiler; 438*10465441SEvalZero* Add GPIO/I2C/SPI driver for Loongson 1C; 439*10465441SEvalZero* Add csd cmd in sdcard driver of mini2440; 440*10465441SEvalZero* Add SDIO/EMAC driver for qemu-vexpress-a9 bsp; 441*10465441SEvalZero* Enable VC++ to compile simulator bsp; 442*10465441SEvalZero* Add stm32f4xx-HAL bsp for kinds of STM32F4 series <User can use menuconfig to select chip>; 443*10465441SEvalZero* Fix the PHY reset in stm32f429-apollo bsp; 444*10465441SEvalZero* Add Audio/MMC/SLCD/Touch/USB slave/RTC/SPI/SFC Flash driver in Ingenic X1000 bsp; 445*10465441SEvalZero 446*10465441SEvalZero# RT-Thread v3.0.0 Change log 447*10465441SEvalZero## Platform: 448*10465441SEvalZero 449*10465441SEvalZero* Add more POSIX features, for example poll/select, signal, termios etc. 450*10465441SEvalZero* Add waitqueue for poll feature. 451*10465441SEvalZero* Use fops for file operation. There are two ways to visit device object: rt_device_* API, the file API(open/read/write/close etc). 452*10465441SEvalZero* Change the type of cmd from uint8_t to int in control interface. 453*10465441SEvalZero* Add more C++ object for RT-Thread Kernel Object. 454*10465441SEvalZero* Add wlan driver framework for wlan device operation. 455*10465441SEvalZero* Integrate SFUD into RT-Thread to unify the operations of spi flash. 456*10465441SEvalZero* Update lwIP to v2.0.2 version. 457*10465441SEvalZero 458*10465441SEvalZero## Tools: 459*10465441SEvalZero 460*10465441SEvalZero* Enable packages, with ENV tool. 461*10465441SEvalZero* menuconfig & Kconfig. 462*10465441SEvalZero* Add scons --dist for make a distribution for specified BSP. 463*10465441SEvalZero 464*10465441SEvalZero## BSP: 465*10465441SEvalZero 466*10465441SEvalZero* more MCU porting. 467*10465441SEvalZero 468*10465441SEvalZero## IoT: 469*10465441SEvalZero 470*10465441SEvalZero* put more IoT components as packages, for example, MQTT, CoAP, HTTP, TLS etc. 471*10465441SEvalZero 472*10465441SEvalZero# RT-Thread v2.1.0 Change log 473*10465441SEvalZero 474*10465441SEvalZeroThis release is the final release for RT-Thread v2.1.0 branch. This release has been delayed many time. After committed fh8620 and x1000 bsp, we are proud to announce this branch release of the official version. 475*10465441SEvalZero 476*10465441SEvalZeroThe change log since last stable version: 477*10465441SEvalZero 478*10465441SEvalZero## Kernel: 479*10465441SEvalZero 480*10465441SEvalZero* Move the init component to the kernel. 481*10465441SEvalZero* Fix the device open flag issue. 482*10465441SEvalZero* Add assertion hook. 483*10465441SEvalZero* Better application module support. 484*10465441SEvalZero* Does not lock scheduler when invoking soft-timer timeout function. 485*10465441SEvalZero 486*10465441SEvalZero## Board Support Package: 487*10465441SEvalZero 488*10465441SEvalZero* fh8620, which is provided by Shanghai Fullhan Microelectronics Co., Ltd. It's a IP camera chip with ARM1176, 300MHz, 16KB I-Cache and 16kB D-Cache. 489*10465441SEvalZero* x1000 bsp. The CPU is a XBurst CPU 1.0GHz, MIPS-based, from Ingenic Semiconductor Co.,Ltd. 490*10465441SEvalZero* imx6sx bsp, only the Cortex-A9 core porting in the NXP i.MX6 solox. BTW, another full Kinetis series porting was created in rt-thread_fsl, which is maintained by NXP employee. 491*10465441SEvalZero* lpc5410x bsp, only the Cortex-M4 core porting. 492*10465441SEvalZero* ls1cdev bsp for Loogson1C board. 493*10465441SEvalZero* dm365 bsp. 494*10465441SEvalZero* nRF51822/nRF52832 bsp. 495*10465441SEvalZero* stm32f7-disco bsp, the first ARM Cortex-M7 porting in RT-Thread. 496*10465441SEvalZero* stm32f411-nucleo bsp. 497*10465441SEvalZero* Add IAR compiler support in beaglebone bsp. 498*10465441SEvalZero 499*10465441SEvalZero## Components: 500*10465441SEvalZero 501*10465441SEvalZero* Add more socket fd operators in DFS with a virtual lwIP file system ops. 502*10465441SEvalZero* Add CAN/Hardware Timer device drivers. 503*10465441SEvalZero* Fix the SDIO issue to support sdio wifi device. 504*10465441SEvalZero* Add eMMC support in SD/MMC device drivers; 505*10465441SEvalZero* Fix the NAT configured enter reset issue in lwIP NAT. 506*10465441SEvalZero* RTGUI come back, but as a UI engine for blend point/line/rect and bitmap etc. 507*10465441SEvalZero* Add nanopb porting, a small code-size Protocol Buffers implementation; 508*10465441SEvalZero* Add paho-mqtt porting, the Eclipse Paho MQTT C/C++ client for Embedded platforms; 509*10465441SEvalZero* Update freetype to 2.5.4 version. 510*10465441SEvalZero* Enhance msh for file operations. 511*10465441SEvalZero* Split the exported commands of finsh shell to a standalone section: ".rodata.name" 512*10465441SEvalZero 513*10465441SEvalZero# RT-Thread v2.1.0 beta版本更改说明 514*10465441SEvalZero 515*10465441SEvalZero## BSP部分 516*10465441SEvalZero 517*10465441SEvalZero* BeagleBone加入GPIO驱动; 518*10465441SEvalZero* 京微雅格M7,更新驱动库并改进EMAC驱动程序; 519*10465441SEvalZero* 新加入dm365移植(包括EMAC、GPIO、I2C、MMC/SD、SPI等驱动); 520*10465441SEvalZero* LPC4088加入EMC、硬件定时器、CAN驱动; 521*10465441SEvalZero* 新加入龙芯1C,智龙v2开发板移植(包括多串口驱动); 522*10465441SEvalZero* 更改mini2440移植为applications/drivers等的目录方式; 523*10465441SEvalZero* 更新simulator在MS VC++上的移植,处理好初始化代码工作,完善UART控制台驱动; 524*10465441SEvalZero* 新加入stm32f7-disco移植; 525*10465441SEvalZero* 在stm32f10x中新加入CAN驱动及应用代码示例; 526*10465441SEvalZero* 在stm32f40x中加入硬件定时器驱动,RTC驱动; 527*10465441SEvalZero* 调整stm32f107为新的串口驱动框架; 528*10465441SEvalZero 529*10465441SEvalZero## 组件 530*10465441SEvalZero 531*10465441SEvalZero* DFS的struct stat定义中移除st_blksize成员(可以兼容于VC++中的stat定义); 532*10465441SEvalZero* 修正DFS中select实现的问题; 533*10465441SEvalZero* 修正DFS中文件操作出错、关闭时的fd处理问题; 534*10465441SEvalZero* 修正DFS中mkdir和lseek出错时的fd处理问题; 535*10465441SEvalZero* 修正lwIP中SYS_ARCH_PROTECT/SYS_ARCH_UNPROTECT保护的问题; 536*10465441SEvalZero* 增加CAN驱动框架; 537*10465441SEvalZero* 增加硬件定时器驱动框架; 538*10465441SEvalZero* SD/MMC驱动框架中增加eMMC支持; 539*10465441SEvalZero* 修正注册SDIO驱动时驱动关联的问题; 540*10465441SEvalZero* 修正串口驱动框架DMA发送时激活标志的问题; 541*10465441SEvalZero* SPI Flash驱动中加入对GD25Q spi flash芯片支持; 542*10465441SEvalZero* 增加paho-mqtt组件移植; 543*10465441SEvalZero* 增加msh的脚本执行能力,可以在msh下执行*.sh脚本; 544*10465441SEvalZero* 增加msh下的mkfs命令; 545*10465441SEvalZero* 修正在Linux Telnet下使用finsh shell回车符处理的问题; 546*10465441SEvalZero* 增加应用模块在使用armcc、gnu gcc编译器时的libc符号导出; 547*10465441SEvalZero* 在以太网网卡驱动框架中增加ETHIF_LINK_AUTOUP/PHYUP参数用于指定初始时的链路Up/Down状态; 548*10465441SEvalZero* 在组件初始化中导出log_trace组件; 549*10465441SEvalZero 550*10465441SEvalZero## 内核 551*10465441SEvalZero 552*10465441SEvalZero* 更改UNUSED/USED等更改成RT_UNUSED/RT_USED; 553*10465441SEvalZero* 链接时增加.rodata.name section,当空间资源受限时可以把它放到性能低的内存区域; 554*10465441SEvalZero* 完善IAR编译器下的组件自动初始化; 555*10465441SEvalZero* 增加rt_assert_hook,在触发断言时可以执行这个钩子函数; 556*10465441SEvalZero* 修正应用模块分散加载情况下的问题; 557*10465441SEvalZero 558*10465441SEvalZero## 工具 559*10465441SEvalZero 560*10465441SEvalZero* scons中定义Group时加入了本Group内的编译参数定义; 561*10465441SEvalZero* 修正了如果Group中即包含代码,也包含二进制库时,生成的Keil MDK工程文件有两个重名Group的问题; 562*10465441SEvalZero 563*10465441SEvalZero版本: RT-Threadv2.0.1及v2.1.0 alpha 564*10465441SEvalZero 565*10465441SEvalZeroRT-Thread v2.0.1是2.0这个系列的bug修正版,而v2.1.0 alpha则是当前开发主干的一个技术预览版本,它给出了v2.1.0这个版本系列的技术预览情况,不建议用于实际产品中,因为它可能存在大量的一些bug。 566*10465441SEvalZero 567*10465441SEvalZero# RT-Thread v2.0.1更改说明 568*10465441SEvalZero 569*10465441SEvalZero* IAR用的dlib,加入THREAD_SUPPORT 和 FILE_DESCRIPTOR的支持; 570*10465441SEvalZero* 修正finsh中echo回显模式的问题; 571*10465441SEvalZero* 修正USB host代码的编译错误; 572*10465441SEvalZero* 修正sensor框架回调函数的问题; 573*10465441SEvalZero* 修正pin设备注册时的设备名称问题; 574*10465441SEvalZero 575*10465441SEvalZero而v2.1.0 alpha这个技术预览版则沿着最初设定的roadmap技术路线进行,这其中主要包括: 576*10465441SEvalZero 577*10465441SEvalZero* lwip更深度的集成:把它集成到RT-Thread的文件系统接口中,这样Linux/Unix下的一些socket网络应用能够更顺利的移植到RT-Thread上,也为以后可以应用到更多地方的select接口铺路。 578*10465441SEvalZero 579*10465441SEvalZero* 这部分是和RT-Thread发布本身无关,但也是这个版本系列设定的目标之一:开启一个云端集成开发环境的时代!云端会是什么样的,请用现代化的浏览器打开[CloudIDE](http://lab.rt-thread.org/cloudide/simulator/index.html) 580*10465441SEvalZero 581*10465441SEvalZero# RT-Thread 2.0.0正式版更改说明 582*10465441SEvalZero 583*10465441SEvalZero经历了大约1年的时间,RT-Thread v2.0.0的最终版本终于发布出来了。自这个版本开发以来,引入了多项功能、修改、增强等。感谢参与的诸位开发人员! 584*10465441SEvalZero以下是自v2.0.0 RC版本以来的详细更改记录。后续我还会给出v2.0.0版本自v1.2.x版本的主要不同、看点,以及给出下一个版本的roadmap规划。 585*10465441SEvalZero 586*10465441SEvalZero## 内核 587*10465441SEvalZero 588*10465441SEvalZero* console以RT_DEVICE_FLAG_STREAM参数打开字符设备; 589*10465441SEvalZero* 在rt_memheap_free中加入更多的断言检查; 590*10465441SEvalZero 591*10465441SEvalZero## 组件 592*10465441SEvalZero 593*10465441SEvalZero* 更新RW009驱动以支持Wi-Fi SoftAP模式(aozima); 594*10465441SEvalZero* 修正sensor框架的一些问题,并加入C API接口(睿赛德服务公司提供); 595*10465441SEvalZero* 加入MPU6050 sensor的代码(bernard, Coing); 596*10465441SEvalZero* 加入BMI055 sensor的代码(Coing); 597*10465441SEvalZero* 当未使能heap时,修正finsh/msh中list_memheap的问题; 598*10465441SEvalZero* 修正LIBC编译的警告; 599*10465441SEvalZero* 加入IAR dlib相关的移植,使得应用能够使用标准的API接口; 600*10465441SEvalZero* 修正YMode握手时可能引起的竞争问题(grissiom); 601*10465441SEvalZero* 更新FreeType版本到2.5.4 602*10465441SEvalZero* 单独把C++的全局对象初始化放到cplusplus_system_init函数中,并在初始化线程中调用; 603*10465441SEvalZero* finsh中以RT_DEVICE_FLAG_STREAM参数打开字符设备; 604*10465441SEvalZero* 添加VBUS组件用于Linux与RT-Thread系统之间,RT-Thread与RT-Thread系统之间通信(睿赛德服务公司捐赠); 605*10465441SEvalZero* 增加lwIP/NAT组件,可以做多个网口间的地址转换(Hicard); 606*10465441SEvalZero* 增加lwIP/DHCP服务端,用于向客户端分配IP地址(睿赛德服务公司提供); 607*10465441SEvalZero 608*10465441SEvalZero## BSP 609*10465441SEvalZero 610*10465441SEvalZero* 修正LPC4357串口驱动初始化时过早打开中断的问题(nongxiaoming); 611*10465441SEvalZero* 重写LPC4357串口驱动,并让芯片上M4/M0核心分别都执行RT-Thread系统,两核心之间以VBUS组件进行系统间通信(睿赛德服务公司捐赠); 612*10465441SEvalZero* 新增RX移植(limxuzheng); 613*10465441SEvalZero* 新增NuMicro M051 Series移植,支持GCC、Keil MDK编译器(bright-pan); 614*10465441SEvalZero* 新增LPC54102移植(Coing); 615*10465441SEvalZero* 移除STM32F4 BSP中不需要的RT_TIMER_TICK_PER_SECOND配置(pangweishen); 616*10465441SEvalZero* 在Linux Clang编译分析中,强制以32位模式进行编译(grissiom); 617*10465441SEvalZero* 修正STM32F103中串口驱动中断过早打开的问题(armink); 618*10465441SEvalZero 619*10465441SEvalZero## 工具 620*10465441SEvalZero 621*10465441SEvalZero* 增加scons中的MD5支持(bright-pan); 622*10465441SEvalZero 623*10465441SEvalZero# RT-Thread 2.0.0 RC 更改说明 624*10465441SEvalZero 625*10465441SEvalZero发布时间:2014/11/4 626*10465441SEvalZero 627*10465441SEvalZero随着RT-Thread功能越来越多,如何发布版本也成为一件头疼的事情,因为需要仔细对比最近三个月来的修改记录。这次的发布距离上一次beta版本依然是三个月的时间,但按照发布计划已然推迟了一个月进行发布。 628*10465441SEvalZero 629*10465441SEvalZero在这三个月中,开源社区上也发生了很多有趣的事情: 630*10465441SEvalZero 631*10465441SEvalZero阿嘉的使用RT-Thread的四轴飞行器毕业设计惊艳亮相,采用了1个STM32F4 + 8个STM32F1进行飞行控制,总计9个MCU的另类实现方式;沿循四轴飞行器的路线,与国内匿名团队合作,采用RW009 Wi-Fi控制的迷你四轴飞行器也在稳步推进过程中。 632*10465441SEvalZero 633*10465441SEvalZeroRT-Thread做为一个开源组织参与的CSDN开源夏令营结出了丰硕的果实: 634*10465441SEvalZero由hduffddybz参与的IPv6协议栈移植(最新版本的lwIP-head版本移植)在这次发布中已经包括进来,从而能够在使用RT-Thread的小型设备上实现TCP/IP v4/v6双栈的支持; 635*10465441SEvalZero由wzyy2参与的GDB stub实现,也完美的支持BeagleBoneBlack开发板和STM32F4平台; 636*10465441SEvalZeroCSDN开源夏令营其他的成果,例如bluedroid移植也有了初步的成果,希望能够在后续的版本(可能会是2.1.0系列版本?)包含进来。CSDN开源夏令营是一次非常棒的活动,能够让学生提前进入实战,了解软件开发的初步知识。对开源社区来说,也是一次非常有益的社区互动活动。希望明年这个活动可以继续,关注RT-Thread、嵌入式开发的同学可以关注明年的动向。 637*10465441SEvalZero 638*10465441SEvalZero当前智能化设备是一个备受关注的领域,针对这一领域的特点,RT-Thread也相应的做出了积极的响应,所以这个版本开始加入sensor的应用框架(APP/算法 <--> sensor framework <--> RT-Thread device driver <--> 硬件外设)。希望在小型化的RT-Thread操作系统基础上融合智能化相关的技术,让RT-Thread成为这方面可选的OS系统之一。RT-Thread操作系统的sensor框架也尝试新的实现方式,即采用C++的方式来实现(当然也会考虑C方面的兼容,无疑C++的面向对象特性会更好,所以最终选择了C++),在这个基础上也可能融合其他的一些生态技术,例如ARM mbed平台上的一些社区组件技术。所以这个发布版本中既包括sensor框架,也包括了C++底层的一些基础支撑。 639*10465441SEvalZero 640*10465441SEvalZero这个版本是RT-Thread 2.0.0系列正式版本的候选版本,正式版本预计会在年底正式发布,距离正式版本还会加入更完善的一些支撑(例如各种传感器驱动)。也计划2014年11月22日,在上海浦东举行RT-Thread嵌入式系统沙龙活动,欢迎大家关注并参与进行RT-Thread方方面面的技术交流。 641*10465441SEvalZero 642*10465441SEvalZero以下是这个版本的更改记录: 643*10465441SEvalZero 644*10465441SEvalZero## 内核 645*10465441SEvalZero 646*10465441SEvalZero* 修正当采用高级别优化编译时,idle任务中查询是否有僵尸线程的潜在bug; 647*10465441SEvalZero 648*10465441SEvalZero* 修正memory pool中的竞争问题; 649*10465441SEvalZero 650*10465441SEvalZero* 在console中打开设备时,加入流标志进行打开; 651*10465441SEvalZero 652*10465441SEvalZero## 组件 653*10465441SEvalZero 654*10465441SEvalZero* 加入C++基础支撑组件。C++组件依赖于RT_USING_LIBC库,当使用GCC编译器时请注意查看其中的说明文档并更改ld script; 655*10465441SEvalZero* 修正DFS中NFS打开目录的bug; 656*10465441SEvalZero* 更改DFS ROMFS默认romfs_root为弱化符号; 657*10465441SEvalZero* 添加DFS中dfs_file_lseek接口中关于fs的检查; 658*10465441SEvalZero* 移除I2C core中无用的core lock锁; 659*10465441SEvalZero* 添加sensor framework(采用C++的方式支持各种sensor); 660*10465441SEvalZero* 修正serial框架中DMA发送的bug(heyuanjie87); 661*10465441SEvalZero* 移除SPI框架中不必要的device初始化代码; 662*10465441SEvalZero* 完善SPI Wi-Fi网卡RW009驱动并提供RSSI相关的命令; 663*10465441SEvalZero* 修正MSH中未定义DFS_USING_WORKDIR时更改当前目录的bug; 664*10465441SEvalZero* 修正MSH中未定义RT_LWIP_TCP时依然定义了netstat命令的bug; 665*10465441SEvalZero* 修正MSH中未定义RT_USING_HEAP时依然定义了free命令的bug; 666*10465441SEvalZero* 修正finsh中FINSH_USING_HISTORY相关的裁剪; 667*10465441SEvalZero* 加入gdb stub组件,当前支持ARM Cortex-A8和Cortex-M3/4(wzyy2); 668*10465441SEvalZero* 统一不同编译器下使用LIBC的宏为RT_USING_LIBC,原有的宏定义RT_USING_NEWLIB/RT_USING_ARM_LIBC需要从rtconfig.h中移除,并替换成RT_USING_LIBC; 669*10465441SEvalZero* 加入最新的lwIP分支:lwip-head,以提供IPv4/v6双栈的功能(hduffddybz); 670*10465441SEvalZero* YMode中打开串口设备时,添加open flag(armink); 671*10465441SEvalZero 672*10465441SEvalZero## bsp 673*10465441SEvalZero 674*10465441SEvalZero* 加入北京京微雅格的M7(华山)低功耗FPGA的ARM Cortex-M3移植(aozima); 675*10465441SEvalZero* 加入北京京微雅格的M7 EMAC以太网驱动(aozima); 676*10465441SEvalZero* AT91SAM9260分支中更改RT_USING_NEWLIB为RT_USING_LIBC; 677*10465441SEvalZero* BeagleBoneBlack分支中加入gdb stub支持(wzyy2); 678*10465441SEvalZero* LPC176x分支中加入C++支持; 679*10465441SEvalZero* LPC176x分支中修正SD卡驱动返回卡信息的bug; 680*10465441SEvalZero* 修正LPC408x分支中GCC编译时的问题; 681*10465441SEvalZero* LPC408x分支中加入C++支持; 682*10465441SEvalZero* 龙芯1B分支中加入UART3驱动; 683*10465441SEvalZero* 加入飞索半导体的MB9BF568 FM4分支移植(yangfasheng); 684*10465441SEvalZero* mini2440分支中更改RT_USING_NEWLIB为 RT_USING_LIBC; 685*10465441SEvalZero* stm32f0x分支中移除不同编译器下的LIBC定义,统一更改为RT_USING_LIBC; 686*10465441SEvalZero* stm32f0x分支中加入串口接收溢出中断处理(armink); 687*10465441SEvalZero* stm32f40x分支中加入gdb stub支持并添加UART6驱动(wzzy2); 688*10465441SEvalZero* zynq7000分支中更改RT_USING_NEWLIB为RT_USING_LIBC; 689*10465441SEvalZero* 加入ARM Cortex-M4芯片指令级的ffs实现; 690*10465441SEvalZero* 修正MB0BF618S分支中缺少timer初始化的bug(mike mao); 691*10465441SEvalZero 692*10465441SEvalZero## 工具 693*10465441SEvalZero 694*10465441SEvalZero* 移除Python 2.6中未支持的语法(xfguo); 695*10465441SEvalZero* 移除Windows平台中的startupinfo信息(对Python版本兼容性更好); 696*10465441SEvalZero* 修正CPPPATH被打乱的bug; 697*10465441SEvalZero 698*10465441SEvalZero# RT-Thread 2.0.0 Beta更改说明 699*10465441SEvalZero 700*10465441SEvalZero发布时间:2014/8/1 701*10465441SEvalZero 702*10465441SEvalZerov2.0.0这个版本系列是RT-Thread当前的开发分支,如果要上新项目,建议使用这个版本来进行,预计这个版本的正式版会在年底发布。欢迎对这个版本进行测试、并反馈问题,能够早日进入到稳定版。 703*10465441SEvalZero 704*10465441SEvalZerov2.0.0版本的开发相对活跃些,开源社区提供了强有力的支持:如Arda贡献的TM4C129x移植,Romeo贡献的frdm-k64f移植,xiaonong的LPC4300移植等,以及睿赛德服务公司捐赠的Zynq7000移植,MB9BF618S移植,以及SPI WiFi网卡的驱动代码等。 705*10465441SEvalZero 706*10465441SEvalZero更改记录 707*10465441SEvalZero 708*10465441SEvalZero## 内核 709*10465441SEvalZero 710*10465441SEvalZero* 移除rt_device_init_all()函数:在系统启动时不需要再调用这个函数来初始化驱动,而是由上层应用执行rt_device_open时自动进行设备初始化; 711*10465441SEvalZero* 修正设备对象引用计数在打开设备失败依然递增的问题; 712*10465441SEvalZero* 增加WEAK宏用于定义/声明弱符号; 713*10465441SEvalZero* 在执行静态内存块分配前,重置线程的errno; 714*10465441SEvalZero* 修正timer未打开调试选项时,无用的静态函数定义(导致编译警告); 715*10465441SEvalZero* 启动timer前,对timer进行强制移除; 716*10465441SEvalZero* 在执行soft timer超时函数时,打开调度器锁; 717*10465441SEvalZero* 新增块设备的自动刷新参数,RT_DEVICE_CTRL_BLK_AUTOREFRESH; 718*10465441SEvalZero 719*10465441SEvalZero## 工具 720*10465441SEvalZero 721*10465441SEvalZero* 修正scons命令编译时,选择keil mdk (armcc)编译器时,命令行太长编译失败的问题; 722*10465441SEvalZero 723*10465441SEvalZero## 移植 724*10465441SEvalZero 725*10465441SEvalZero* 移除rt_device_init_all()相关的调用; 726*10465441SEvalZero* 根据串口框架调整相关的驱动代码; 727*10465441SEvalZero* 新增frdm-k64f移植(FreeScale K64芯片); 728*10465441SEvalZero* 移除K60Fxxxx移植; 729*10465441SEvalZero* 新增LPC43xx移植(NXP LPC4357芯片); 730*10465441SEvalZero* 移除LPC176x中的组件初始化配置; 731*10465441SEvalZero* 修正龙芯1B移植(ls1bdev)中链接脚本关于组件初始化部分的配置; 732*10465441SEvalZero* 修正STM32F40x中UART3的配置; 733*10465441SEvalZero* 修正STM32F40x中GNU GCC连接脚本中ROM/RAM大小的配置; 734*10465441SEvalZero* 移除STM32F107中的组件初始化配置; 735*10465441SEvalZero* 增强STM32F107 EMAC驱动性能,同时加入自动查找PHY芯片地址功能; 736*10465441SEvalZero* 重写xplorer4330(NXP LPC4330芯片)移植(xiaonong完成); 737*10465441SEvalZero* 新增Zynq7000 ARM Dual Cortex-A9移植; 738*10465441SEvalZero* 新增MB9BF618S移植; 739*10465441SEvalZero* 新增tm4c129x移植,并加入相应的EMAC以太网驱动; 740*10465441SEvalZero 741*10465441SEvalZero## 组件 742*10465441SEvalZero 743*10465441SEvalZero* DFS: 新增根据设备对象获得其上装载文件系统路径的函数:dfs_filesystem_get_mounted_path(struct rt_device* device); 744*10465441SEvalZero* DFS: 修正readdir在GNU GCC下的编译警告; 745*10465441SEvalZero* DeviceDrivers:新增workqueue实现; 746*10465441SEvalZero* DeviceDrivers: 修正USB Device栈中的一些拼写错误; 747*10465441SEvalZero* DeviceDrivers: 重写serial框架,能够让串口设备驱动同时支持三种模式:poll、interrupt、DMA。模式选择需要在执行rt_device_open时,由open flags指定; 748*10465441SEvalZero* DeviceDrivers: 加入更多的SPI设备驱动,例如RW009的SPI WiFi网口驱动(2.4G 802.11 b/g/n,WEP/WPA/WPA2,SoftAP/Station),SPI NorFlash块设备驱动,ENC28J60以太网网卡驱动; 749*10465441SEvalZero* Finsh: list_device()命令中增加refcount的信息; 750*10465441SEvalZero* Finsh: 修正'0'零常量无法识别的错误; 751*10465441SEvalZero* Finsh: mv命令,实现把一个文件移动到一个目录中; 752*10465441SEvalZero* Finsh: ifconfig命令支持对一个网络接口的基本配置; 753*10465441SEvalZero* Finsh: 新增netstat命令,用于显示当前系统中TCP连接的状态; 754*10465441SEvalZero* Finsh: 修正当命令行太长导致的缓冲区移除的问题; 755*10465441SEvalZero* libc: 修正arm libc中未使用DFS时的编译警告; 756*10465441SEvalZero* libc: 修正newlib中使用DFS时的系统调用编译警告(GNU GCC下); 757*10465441SEvalZero* lwIP 1.4.1: 默认打开LWIP_SO_SNDTIMEO以支持连接发送超时; 758*10465441SEvalZero* lwIP 1.4.1: 修正MEMP_NUM_TCP_SEG定义错误的问题; 759*10465441SEvalZero* lwIP 1.4.1: 加入RT_LWIP_REASSEMBLY_FRAG选项定义以支持IP分组及合并; 760*10465441SEvalZero* lwIP 1.4.1: ethnet网络接口支持定义LWIP_NO_TX_THREAD/LWIP_NO_RX_THREAD,以关闭etx/erx线程; 761*10465441SEvalZero* lwIP 1.4.1: 用户可以重新定义RT_LWIP_ETH_MTU,以修改网络中的MTU值; 762*10465441SEvalZero* lwIP 1.4.1: 修正LWIP_NETIF_LINK_CALLBACK条件编译的问题; 763*10465441SEvalZero* lwIP 1.4.1: 完善移植相关的注释; 764*10465441SEvalZero* log trace: 增加log_session_lvl接口; 765*10465441SEvalZero* log trace: log trace中的session引用更改成常量形式; 766*10465441SEvalZero* ymodem: 增强数据接收的稳定性; 767*10465441SEvalZero 768*10465441SEvalZero# RT-Thread 2.0.0 Alpha更改说明 769*10465441SEvalZero 770*10465441SEvalZero发布时间:2014/4/8 771*10465441SEvalZero 772*10465441SEvalZeroRT-Thread 2.0.0分支的第一个技术预览版本,仅用于展示2.0.0发展分支的演化动向(按照roadmap,2.0.0这个分支会有一部分RT-Thread和Linux互补性的技术,为Linux增加更好的实时性,为RT-Thread增加更多的功能性,这份技术预览版正是朝着这个目标而努力),欢迎反馈建议和问题。 773*10465441SEvalZero 774*10465441SEvalZero## 组件 775*10465441SEvalZero 776*10465441SEvalZero* msh: bugfix 和功能性增强。新的 msh 在调用外部模块方面更加方便。 777*10465441SEvalZero* DFS: nfs 的 bugfix 和内置命令的增强。ELM FatFS加入对扇区不匹配情况下的信息输出,这样能够及时定位问题。 778*10465441SEvalZero* JS:新添了轻量级Javascript引擎,可以在RT-Thread中直接运行javascript脚本。 779*10465441SEvalZero* VMM:可以在qemu中运行的 Virtual Machine Module 组件。暂时只支持 realview-pb-a8 的 bsp。 780*10465441SEvalZero* CMSIS:版本更新至 3.20 781*10465441SEvalZero* drivers:USB 协议栈的重构。新的框架中编写驱动变得更加容易了。 782*10465441SEvalZero 783*10465441SEvalZero## BSP 784*10465441SEvalZero 785*10465441SEvalZero* beaglebone:串口驱动更新 786*10465441SEvalZero* realview-a8:添加了 VMM 组件 787*10465441SEvalZero 788*10465441SEvalZero## 工具 789*10465441SEvalZero 790*10465441SEvalZero* 固件加入scons --target=ua -s,用于准备用户应用环境; 791*10465441SEvalZero 792*10465441SEvalZero[发布后记] 793*10465441SEvalZero 794*10465441SEvalZeroRT-Thread 2.0.0. Alpha版本相比于RT-Thread 1.2.1,新的特性主要有两部分: 795*10465441SEvalZero- RT-Thread + Linux双系统,这部分以RealView-A8处理器(ARM Cortex-A8单核)为蓝本,给出一个简单的双系统并行运行的demo;在没有硬件的环境下,可以使用QEMU软件虚拟方式的执行。这个链接中包含一个编译好的Linux及RT-Thread二进制包,可以直接下载进行体验。 796*10465441SEvalZero 797*10465441SEvalZero目录中有 Linux 的内核镜像 zImage,ramdisk rootfs.cpio.gz。可以用 798*10465441SEvalZeroqemu-system-arm -M realview-pb-a8 -kernel zImage -initrd rootfs.cpio.gz -serial vc -serial vc 799*10465441SEvalZero来启动。启动之后 Linux 的控制台在第一个串口上(Atl + Ctrl + 3),可以直接无密码以 root 用户登录。登录之后加载内核模块: 800*10465441SEvalZeroinsmod rtvmm.ko 801*10465441SEvalZero来启动 RT-Thread。RT-Thread 启动之后控制台在第二个串口上(Atl + Ctrl + 4)。第一个串口Linux shell依然可以使用,第二个串口则是RT-Thread的shell。 802*10465441SEvalZero- JavaScript解析器,这个是由牛头哥移植的,可以在一个非常小资料的MCU上以JavaScript脚本方式进行编程、开发。根据这种方式,也提供了RN001JS的以太网硬件模块:以JavaScript脚本语言作为二次开发,提供在线web(即WebIDE)进行编程并运行JavaScript程序。JavaScript作为一门轻量级、解释型的语言,更容易上手,配合WebIDE、及提供的一些example可以使得开发变得非常的轻松,也包括一些传感器的JavaScript例子,让做网页的人也可以玩硬件了! 803*10465441SEvalZero 804*10465441SEvalZero# RT-Thread 1.2.1更改说明 805*10465441SEvalZero 806*10465441SEvalZero发布时间: 2014/4/8 807*10465441SEvalZero 808*10465441SEvalZero在原有的1.2.0版本的bug修正版本,也是1.2.0系列的第一个修正版本,原则上不添加任何的新功能,我们尽量会按照每个季度一个修订版本的方式推进。大家在使用的过程中有什么问题还请反馈给我们,这些问题很可能会在下个版本中修正! 809*10465441SEvalZero 810*10465441SEvalZero以下是更改记录: 811*10465441SEvalZero 812*10465441SEvalZero## 内核 813*10465441SEvalZero 814*10465441SEvalZero* 用户应用,增加用户应用命令行参数支持; 815*10465441SEvalZero* 在挂起一个任务时,把相应的定时器也关闭; 816*10465441SEvalZero 817*10465441SEvalZero## BSP 818*10465441SEvalZero 819*10465441SEvalZero* BeagleBone,加入更多串口驱动支持; 820*10465441SEvalZero* 移除BSP中rt_device_init_all函数调用,改成打开设备时自动进行初始化; 821*10465441SEvalZero* LPC176x,移除components初始化管理器; 822*10465441SEvalZero* LPC4088,修正LED驱动的问题; 823*10465441SEvalZero* STM32F107,移除components初始化管理器; 824*10465441SEvalZero 825*10465441SEvalZero## 组件 826*10465441SEvalZero 827*10465441SEvalZero* 文件系统,ELM FatFS加入对扇区不匹配情况下的信息输出,这样能够及时定位问题; 828*10465441SEvalZero* 文件系统,NFS网络文件系统修正相关的一些编译警告信息; 829*10465441SEvalZero* 文件系统,copy命令加入文件夹方式复制功能; 830*10465441SEvalZero* 文件系统,RAMFS,加入到components初始化管理器中; 831*10465441SEvalZero* 文件系统,ROMFS,用于转换文件的工具mkromfs.py,增加Linux主机的支持; 832*10465441SEvalZero* CMSIS更新到3.2.0版本; 833*10465441SEvalZero* 串口驱动框架加入serial->ops->control的调用; 834*10465441SEvalZero* 命令行系统,优化msh,支持用户应用的命令行参数; 835*10465441SEvalZero* 命令行系统,当使用msh时,默认使用msh >的命令行提示符; 836*10465441SEvalZero* TCP/IP协议栈,导出更多的lwIP接口给用户应用; 837*10465441SEvalZero* POSIX thread,修正了同时使用lwIP组件时的编译警告; 838*10465441SEvalZero* 第三方组件,加入TJPGD的移植,加入libpng的移植; 839*10465441SEvalZero 840*10465441SEvalZero## 工具 841*10465441SEvalZero 842*10465441SEvalZero* 固件加入scons --target=ua -s,用于准备用户应用环境; 843*10465441SEvalZero 844*10465441SEvalZero[发布后记] 845*10465441SEvalZero* RT-Thread携带了众多的BSP,不一定能够一一保证每个分支上把RT-Thread上相应的功能使用起来。所以针对这种情况,我们有一款评估用的硬件开发板:RealBoard 4088,在上面力求把一些相关例程都添加上,这样在一个基本的BSP基础上,可以对照着把其他的组件、功能添加进去; 846*10465441SEvalZero* RealBoard 4088使用的RT-Thread版本主要以RT-Thread 1.2.1版本为主。 847*10465441SEvalZero 848*10465441SEvalZero# RT-Thread 1.2.0正式版本更改说明 849*10465441SEvalZero 850*10465441SEvalZero发布时间: 2014/1/6 851*10465441SEvalZero 852*10465441SEvalZero实现roadmap中提到的大部分内容 853*10465441SEvalZero 854*10465441SEvalZero1,文档方面已完成《RT-Thread编程手册》,同时还有论坛上jiezhi童鞋的《一起来学RT-Thread系列连载教程》 855*10465441SEvalZero2,BSP分支方面新增cortext-A8(beaglebone),cortext-R4(rm48x50),UNITY-2(SEP6200),lpc408x的移植 856*10465441SEvalZero3,组件方面: 857*10465441SEvalZero- 加入msh(类似linux shell的风格),能够直接执行应用程序 858*10465441SEvalZero- 新增freemodbus 1.6.0的移植 859*10465441SEvalZero- 新增开源的嵌入式关系数据库SQLite 3.8.1的移植 860*10465441SEvalZero- 新增Ymodem协议 861*10465441SEvalZero- 默认使用lwIP 1.4.1 862*10465441SEvalZero 863*10465441SEvalZero下面是自RT-Thread 1.2.0 RC版本发布以来具体的变更履历: 864*10465441SEvalZero 865*10465441SEvalZero## 内核 866*10465441SEvalZero 867*10465441SEvalZero* timer.c - 使用跳跃表(skip list)实现系统定时器链表,并在bsp中的startup.c中重新加入定时器初始化函数rt_system_timer_init() 868*10465441SEvalZero* rtdebug.h - 新增宏定义RT_DEBUG_IN_THREAD_CONTEXT 869*10465441SEvalZero* idle.c - 在函数rt_thread_idle_excute()中一次清除所有的死线程 870*10465441SEvalZero* scheduler.c - 新增API rt_critical_level()返回调度器上锁次数 871*10465441SEvalZero 872*10465441SEvalZero## 移植 873*10465441SEvalZero 874*10465441SEvalZero* cortex-m0 - 修正 cortex-m0 GCC移植中hardfault的问题点 875*10465441SEvalZero* cortex-r4 - 在startup后释放IRQ堆栈空间 876*10465441SEvalZero* cortex-r4 - 按字节长度分配堆栈空间 877*10465441SEvalZero 878*10465441SEvalZero## BSP分支 879*10465441SEvalZero 880*10465441SEvalZero* 新增lpc408x移植 881*10465441SEvalZero* bsp/stm32f0x - 增加USART1,USART2驱动,支持finsh,支持组件初始化 882*10465441SEvalZero* bsp/simulator - 当RTGUI配置无效时打印错误信息 883*10465441SEvalZero* bsp/simulator - 默认情况下关闭RTGUI选项 884*10465441SEvalZero* bsp/simulator - 增加createdef.py文件来生成VS的def文件 885*10465441SEvalZero* bsp/simulator - 当使用VC++编译时去除_TIME_T_DEFINED的定义 886*10465441SEvalZero* bsp/xplorer4330 - 重命名文件Retarget.c为retarget.c,否则linux系统中编译会报错 887*10465441SEvalZero* bsp/xplorer4330 - 修正GCC编译链接时关于ENTRY的警告 888*10465441SEvalZero* bsp/rm48x50 - 新增GCC的移植 889*10465441SEvalZero* bsp/K60Fxxxx - 修正一个编译错误 890*10465441SEvalZero 891*10465441SEvalZero## 组件 892*10465441SEvalZero 893*10465441SEvalZero* dfs - 正确处理mkfs未实现的情况 894*10465441SEvalZero* dfs - 使用指针代替index变量 895*10465441SEvalZero* dfs - 在函数dfs_filesystem_lookup()将含义模糊的指针变量名称empty重命名为fs 896*10465441SEvalZero* dfs - 修正dfs_unmount问题点 897*10465441SEvalZero* dfs - 在设备打开错误时令挂载失败 898*10465441SEvalZero* dfs/elmfat - 令elmfatfs每次都检查扇区大小 899*10465441SEvalZero* net - 新增freemodbus 1.6.0的移植 900*10465441SEvalZero* finsh - 新增FINSH_USING_MSH_ONLY选项 901*10465441SEvalZero* finsh - 只有当shell设备为空时调用rt_console_get_device() 902*10465441SEvalZero* finsh - 修正FINSH_USING_SYMTAB未定义的错误 903*10465441SEvalZero* finsh - 重构control按键的处理 904*10465441SEvalZero* msh - 增加文件和路径名称自动补全的功能 905*10465441SEvalZero* msh - msh内增加执行module的功能 906*10465441SEvalZero* msh - msh内增加更多的命令 907*10465441SEvalZero* libc - 修正 _sys_read()/_sys_write()问题点 908*10465441SEvalZero* external - 增加开源的嵌入式关系数据库SQLite 3.8.1的移植 909*10465441SEvalZero* pthreads - 避免ESHUTDOWN重复定义 910*10465441SEvalZero* mtd_nand - 在MTD nand中增加更多的调试措施 911*10465441SEvalZero* mtd_nand - 修正操作MTD nand时起始块错误的问题 912*10465441SEvalZero* lwip-1.4.1 - 在lwIP内加入更多的RT-Thread选项设置 913*10465441SEvalZero* log_trace - 修正函数memmove()参数使用错误的问题 914*10465441SEvalZero* drivers/pipe - 增加一个control命令来获得pipe剩余的空间 915*10465441SEvalZero* drivers/serial - 如果读写长度为0,则立即返回 916*10465441SEvalZero 917*10465441SEvalZero## 例程 918*10465441SEvalZero 919*10465441SEvalZero* examples - 用rt_sem_control()中的RT_IPC_CMD_RESET命令rt_sem_trytake()来清除信号量 920*10465441SEvalZero* examples - 始终打印输出测试结果 921*10465441SEvalZero* examples - 在所有的测试结束后打印输出简报 922*10465441SEvalZero* examples - 在TC线程中清除变量_tc_stat的TC_STAT_RUNNING状态 923*10465441SEvalZero* examples - 重新实现loop功能,并新增finsh命令tc_loop 924*10465441SEvalZero* examples - 在tc_stop中增加延时,由原来的延时RT_TICK_PER_SECOND/2调整为10 * RT_TICK_PER_SECOND 925*10465441SEvalZero* examples - 在SConscript中判断TC如果被使能,在CPPPATH中增加TC路径 926*10465441SEvalZero* examples - 新增一个in-mem-log的例子 927*10465441SEvalZero* semaphore_priority.c - 在cleanup时释放信号量 928*10465441SEvalZero* heap_realloc.c - 检查调用realloc(ptr, 0)是否成功 929*10465441SEvalZero* thread_delete.c - tc线程的延时应该比tid2的延时长,保证其测试过程中正常运行 930*10465441SEvalZero* thread_delay.c - 放宽超时判断条件,因为当RT_TICK_PER_SECOND为1000时,容易产生1个tick的误差 931*10465441SEvalZero* semaphore_static.c - 放宽超时判断条件,因为当RT_TICK_PER_SECOND为1000时,容易产生1个tick的误差 932*10465441SEvalZero* semaphore_dynamic.c - 放宽超时判断条件,因为当RT_TICK_PER_SECOND为1000时,容易产生1个tick的误差 933*10465441SEvalZero 934*10465441SEvalZero其他: 935*10465441SEvalZero* 更新README.md 936*10465441SEvalZero 937*10465441SEvalZero# RT-Thread 1.2.0RC更改说明 938*10465441SEvalZero 939*10465441SEvalZero发布时间: 2013/10/10/ 10:19 940*10465441SEvalZero 941*10465441SEvalZero主要说明: 该版本新增ARM Cortex-A8的支持(BeagleBone),新增UNITY-2内核的支持(SEP6200),新增Ymodem协议。 942*10465441SEvalZero 943*10465441SEvalZero变更履历 944*10465441SEvalZero======== 945*10465441SEvalZero 946*10465441SEvalZero[内核] 947*10465441SEvalZero 948*10465441SEvalZero* 修正rtdef.h中的拼写错误(_MSC_VER_ -> _MSC_VER) 949*10465441SEvalZero* 修正scheduler.c中的调试打印输出错误 950*10465441SEvalZero* ipc - 在函数rt_event_recv()中增加对参数option有效性的检查 951*10465441SEvalZero* device - 增加统计设备引用次数的变量ref_count 952*10465441SEvalZero* memheap - 修正内存块分割问题点 953*10465441SEvalZero* memheap - 优化函数rt_memheap_realloc() 954*10465441SEvalZero* kservice - 函数声明使用rt_vsnprintf代替vsnprintf 955*10465441SEvalZero 956*10465441SEvalZero 957*10465441SEvalZero[组件] 958*10465441SEvalZero 959*10465441SEvalZero* dfs - 修正dfs_file.c中一处变量参数类型错误的问题 960*10465441SEvalZero* dfs - 增加mount table 961*10465441SEvalZero* dfs - 在building脚本中加入ramfs的支持 962*10465441SEvalZero* dfs - 修正ramfs中O_APPEND write的问题 963*10465441SEvalZero* dfs/elm - 在mkfs中加入device_open/close 964*10465441SEvalZero* dfs/jffs2 - 修正jffs2_opn/opendir中的f_flag初始化问题 965*10465441SEvalZero* dfs/jffs2 - 修正jffs2卸载问题 966*10465441SEvalZero* pthread - 修正一处编译警告 967*10465441SEvalZero* drivers/pipe - 增加rt_pipe_init/rt_pipe_detach 968*10465441SEvalZero* drivers/pipe - 增加非阻塞读写和强制写模式 969*10465441SEvalZero* drivers/pipe - 当恢复读的时候调用函数rx_indicate() 970*10465441SEvalZero* drivers/pipe - 增加一个设备类型(pipe类型) 971*10465441SEvalZero* drivers/portal - 实现portal设备类型 972*10465441SEvalZero* drivers/ringbuffer - 修改一些模糊不清的函数名称 973*10465441SEvalZero* drivers/ringbuffer - 新增put_force和putchar_force接口函数 974*10465441SEvalZero* finsh - 当set_device时增加设备检查 975*10465441SEvalZero* finsh - 在rx_ind中增加对shell设备的自动设置 976*10465441SEvalZero* finsh - 增加pipe和portal设备的描述 977*10465441SEvalZero* finsh - 在变量定义时使用别名 978*10465441SEvalZero* finsh - 当关闭设备时注销rx_indicate 979*10465441SEvalZero* finsh - 修正命令行太长的问题 980*10465441SEvalZero* finsh/msh - 只有当DFS_USING_WORKDIR使能时才声明cd/pwd 981*10465441SEvalZero* init - 为新的组件初始化机制更新连接脚本 982*10465441SEvalZero* init - 增加组件初始化调试代码 983*10465441SEvalZero* logtrace - 整理代码,去除编译警告 984*10465441SEvalZero* logtrace - 增加LOG_TRACE_VERBOSE 985*10465441SEvalZero* logtrace - 调整log values 986*10465441SEvalZero* logtrace - 只有当finsh使能的时候才声明cmd 987*10465441SEvalZero* libc/minilibc - 在sys/time.h中增加gettimeofday的声明 988*10465441SEvalZero* utilities - 新增ymodem 989*10465441SEvalZero 990*10465441SEvalZero工具: 991*10465441SEvalZero 992*10465441SEvalZero* building.py - 增加clang静态缝隙器的支持 993*10465441SEvalZero* building.py - 为Keil MDK增加buildlib功能 994*10465441SEvalZero* building.py - 在clang-analyze中执行'clang -Wall -fsyntas-only' 995*10465441SEvalZero* clang-analyze.py - 增加一个定制工具实现clang静态分析 996*10465441SEvalZero 997*10465441SEvalZero分支: 998*10465441SEvalZero 999*10465441SEvalZero* 新增BeagleBone的移植 1000*10465441SEvalZero* 新增SEP6200的移植 1001*10465441SEvalZero* 新增K60Fxxxx的移植 1002*10465441SEvalZero* 修正Linux中的编译错误(lm4f232, stm32f40x, xplorer4330) 1003*10465441SEvalZero* cortex-m3 - 加强hard fault的异常处理函数 1004*10465441SEvalZero* at91sam9260 - 更新串口驱动,使用组件中的通用串口驱动 1005*10465441SEvalZero* at91sam9260 - 更新工程目录结构 1006*10465441SEvalZero* at91sam9260 - 修正编译错误 1007*10465441SEvalZero* at91sam9260 - 内嵌GPLv2许可 1008*10465441SEvalZero* stm32f10x - 删除无用的文件 1009*10465441SEvalZero* stm32f10x - 更新工程目录结构 1010*10465441SEvalZero* stm32f10x - 更新工程文件 1011*10465441SEvalZero* stm32f10x - 为使用新的组件初始化更新连接脚本 1012*10465441SEvalZero* stm32f10x - 为使用新的组件初始化更新SD card驱动 1013*10465441SEvalZero* stm32f10x - 为使用新的组件初始化更新DM9000驱动 1014*10465441SEvalZero* stm32f10x - 更新串口驱动,使用组件中的通用串口驱动 1015*10465441SEvalZero* stm32f10x - 修正rtgui初始化问题 1016*10465441SEvalZero* simulator - 为使用新的组件初始化更新代码,以便支持mingw 1017*10465441SEvalZero* simulator - 支持Linux系统 1018*10465441SEvalZero* simulator - 修正Linux系统中的SDL初始化问题 1019*10465441SEvalZero* simulator - 在rt_components_init之后初始化SDL 1020*10465441SEvalZero* simulator - 将对SDL设置的内容移入drivers/SConstruct 1021*10465441SEvalZero* simulator - 在env中获得CORSS_TOOL和EXEC_PATH的值 1022*10465441SEvalZero* simulator - 支持clang-analyze 1023*10465441SEvalZero* simulator - 增加tap netif driver 1024*10465441SEvalZero 1025*10465441SEvalZero//---------------------------------------------------------------------------------------- 1026*10465441SEvalZero 1027*10465441SEvalZero//---------------------------------------------------------------------------------------- 1028*10465441SEvalZero 1029*10465441SEvalZero//---------------------------------------------------------------------------------------- 1030*10465441SEvalZero 1031*10465441SEvalZero 1032*10465441SEvalZero版本: RT-Thread 1.2.0 Beta 版本 1033*10465441SEvalZero 1034*10465441SEvalZero发布时间: 2013/6/30 1035*10465441SEvalZero 1036*10465441SEvalZero进过开发人员三个月的努力,RT-Thread 1.2.0 Beta 版本如期发布。 1037*10465441SEvalZero该版本默认采用lwIP 1.4.1协议栈,USB device stack也进一步完善。加入 log_trace 子系统,加入组件初始化升级版本,加入 ARM Cortex-R 的移植。 1038*10465441SEvalZero 1039*10465441SEvalZero主要变化: 1040*10465441SEvalZero 1041*10465441SEvalZero* 1,新增组件初始化功能 1042*10465441SEvalZero- 详情请看论坛帖子[新功能] 组件初始化 1043*10465441SEvalZero* 2,支持ARM Cortex-R系列处理器 1044*10465441SEvalZero- Grissiom 完成 ARM Cortex-R 的移植,目前BSP中已有TI RM48x50分支(仅支持TI CCS开发环境) 1045*10465441SEvalZero* 3,文件系统中新增 RAMFS 1046*10465441SEvalZero* 4,加入 log_trace 子系统 1047*10465441SEvalZero* 5,优化Cortex-M4线程上下文切换,使用了浮点运算的线程才保存及恢复FPU寄存器 1048*10465441SEvalZero- 详情请看论坛帖子[优化]cortex-m4f线程切换,优化FPU寄存器 1049*10465441SEvalZero* 6,新增API rt_memheap_realloc() 1050*10465441SEvalZero* 7,重新实现ringbuffer,采用镜像的方法区分“满”和“空”,同时支持任意大小的buffer 1051*10465441SEvalZero* 8,内核中加入RT_KERNEL_MALLOC/RT_KERNEL_FREE/RT_KERNEL_REALLOC宏。 1052*10465441SEvalZero如果用户未定义这些宏,将默认指向rt_malloc/rt_free/rt_realloc。 1053*10465441SEvalZero同时内核仅局限于使用这些宏来使用动态内存 1054*10465441SEvalZero* 9,在 building.py 中新增生成 cscope database 的选项 1055*10465441SEvalZero* 10,USB组件新增reset函数,支持热插拔 1056*10465441SEvalZero* 11,scons编译系统支持CCS开发环境 1057*10465441SEvalZero* 12,USB组件新增状态信息(USB_STATE_NOTATTACHED,USB_STATE_ATTACHED,USB_STATE_POWERED...) 1058*10465441SEvalZero 1059*10465441SEvalZero修复问题点: 1060*10465441SEvalZero 1061*10465441SEvalZero* 1,USB组件HOST可以挂起endpoints 1062*10465441SEvalZero* 2,simulator分支,修复 serial_write 问题 1063*10465441SEvalZero* 3,udisk可以被弹出 1064*10465441SEvalZero* 4,iar.py中修复绝对路径的问题 1065*10465441SEvalZero* 5,dfs_fs.h内增加dfs_mkfs()函数的申明 1066*10465441SEvalZero* 6,生成MDK工程文件的时候加入library文件 1067*10465441SEvalZero* 7,当PC不再接受数据的时候,重置VCOM相应的状态 1068*10465441SEvalZero* 8,USB组件:返回正确的LangID字符串长度给HOST 1069*10465441SEvalZero* 9,Cortex-M0,Cortex-M3,Cortex-M4上下文切换时,回收系统初始化时用到的栈空间 1070*10465441SEvalZero 1071*10465441SEvalZero//---------------------------------------------------------------------------------------- 1072*10465441SEvalZero 1073*10465441SEvalZero//---------------------------------------------------------------------------------------- 1074*10465441SEvalZero 1075*10465441SEvalZero//---------------------------------------------------------------------------------------- 1076*10465441SEvalZero 1077*10465441SEvalZero 1078*10465441SEvalZero 1079*10465441SEvalZero版本: RT-Thread 1.2.0 Alpha版本 1080*10465441SEvalZero 1081*10465441SEvalZero发布时间: 2013/4/10 1082*10465441SEvalZero 1083*10465441SEvalZero遵循2013年RT-Thread roadmap,RT-Thread 1.2.0 Alpha版本发布,Alpha意味着此版本为技术预览版,仅用于展示RT-Thread 1.2.0未来的发展方向,并不适合于开发正式产品。RT-Thread 1.2.0版本是1.1.x系列的下一个分支,这个分支主要体现的是RT-Thread 1.x系列的文档情况。当然也有一些功能、代码方面的增强。 1084*10465441SEvalZero 1085*10465441SEvalZero伴随着新版本的到来,RT-Thread有几个重大的转变: 1086*10465441SEvalZero1,代码托管从google code(SVN)迁移到github(GIT) 1087*10465441SEvalZero2,RT-Thread与RTGUI区分开来,并成为两个独立的开发分支 1088*10465441SEvalZero3,重视文档,将文档建设作为1.2.0版本的首要任务来抓 1089*10465441SEvalZero 1090*10465441SEvalZero内核主要变化: 1091*10465441SEvalZero1,加入__rt_ffs函数用于实现32位整数中获取第一个置1的位;同时调度器中位图相关算法直接使用__rt_ffs函数;CPU移植时,可定义RT_USING_CPU_FFS,使用芯片指令完成。 1092*10465441SEvalZero 1093*10465441SEvalZero2,新的中断注册机制 1094*10465441SEvalZeroweety加入interrupt description功能,用于为interrupt增加更多的信息,同时中断服务例程也可以携带用户自定义的参数类型。 1095*10465441SEvalZero* 这部分对ARM7、ARM9、MIPS等影响很大,需要对CPU移植做相应的一些修改。 1096*10465441SEvalZero* 这部分对ARM Cortex-M系列芯片没有影响。 1097*10465441SEvalZero 1098*10465441SEvalZero3,调整定时器插入位置,为相同超时定时的后面。 1099*10465441SEvalZero 1100*10465441SEvalZero组件主要变化: 1101*10465441SEvalZero1,添加lwIP 1.4.1。 1102*10465441SEvalZero2,在finsh shell中加入module shell功能。finsh shell本身是一个C语言表达式的shell命令行,而module shell更类似于一个传统的命令行,由命令,参数等方式构成。 1103*10465441SEvalZero 1104*10465441SEvalZero分支主要变化: 1105*10465441SEvalZero1,完善simulator分支,支持RTGUI,支持应用模块。 1106*10465441SEvalZero2,完善at91sam9260分支的移植及驱动更新。 1107*10465441SEvalZero 1108*10465441SEvalZero编译系统主要变化: 1109*10465441SEvalZero1,开启省略编译时长命令特性,如果需要查看编译时命令行,可以使用scons --verbose查看。 1110*10465441SEvalZero2,加入生成CodeBlocks工程特性。 1111*10465441SEvalZero3,修正当系统安装使用Keil MDK 4.6+版本的问题。 1112*10465441SEvalZero 1113*10465441SEvalZerogithub主要提交履历: 1114*10465441SEvalZero5646189b29: elm fatfs支持mkfs,并且无需提前执行dfs_mount; mount/umount/mkfs操作也不会引起reset 1115*10465441SEvalZero22786f8817: 允许用户自定义PID和VID 1116*10465441SEvalZero0001344105: 更明确的定时器运行机制,如果两个定时器在同一个时刻发生超时,那么先开始的定时器先处理 1117*10465441SEvalZero5d68ef8ec1: 修正使用64位GCC时编译finsh过程中发生错误的问题 1118*10465441SEvalZeroa4d661dcf1: 修正dfs_elm.c中一处内存泄露,并且在mount fatfs失败时执行 umount fatfs操作 1119*10465441SEvalZero43228aeb9c: 修正list_tcps问题:ipaddr_ntoa不是可重入的函数。 1120*10465441SEvalZero3de4b92a68: 修正AT91SAM9260分支中PHY link状态错误的问题。 1121*10465441SEvalZero1abaa0492d 1122