Bläddra i källkod

Update ChangeLog.md

Bernard Xiong 5 år sedan
förälder
incheckning
f8c32243e7
1 ändrade filer med 153 tillägg och 484 borttagningar
  1. 153 484
      ChangeLog.md

+ 153 - 484
ChangeLog.md

@@ -1,3 +1,155 @@
+# RT-Thread v4.0.2 Change Log
+
+Change log since v4.0.1
+
+## Kernel
+
+* Split the component automatic initialization to component automatic initialization and main funciton;
+* Add spin lock API in SMP mode;
+* Fix RT_IDLE_HOOK spelling issue;
+* Add thread waiting for message queue when queue is full;
+* Fix the issue of delete mq in `rt_mq_create` in some abnormal case;
+* Remove the C++ keywords in the`rt_console_set_device`function;
+* Remove the `suspend_thread_count` member from memory_pool structure;
+* Fix the issue when block = NULL in rt_mp_free;
+* Fix the issue of incorrect scheduling task sequence caused by rt_thread_yeild in system scheduling;
+* Fix the issue that the interrupt is opened too late and cause the signal handling delayed;
+* When disable SMP, `cpu.c` will not be added into project by default;
+* Fix the issue that `rt_thread_exit` turned on the interrupt prematurely in the SMP mode, so other cores might delete this task, causing the issue in subsequent function stacks;
+* Fix the issue of critical protection when `rt_thread_delete` change the status of thread;
+
+## Components
+
+* Fix the issue of mPool size in C++ / Queue;
+* Add the error status return in C++ / Thread task join/wait function;
+* Fix compilation warning in DFS/ELM FatFS;
+* Add support for Linux NFS Server in DFS/NFS;
+* Fix mkfs issue in DFS/UFFS;
+* Add ftruncate, flock, getuid, umask APIs;
+* Fix the display issue of fd with offset in list_fd command;
+* Add `dfs_mount_device` API to mount a file system on a device which is already in mount_table;
+* Rename the C++ keywords in DFS/rename function;
+* Connnect dfs/poll, select with RT_USING_POSIX in Kconfig;
+* Optimize the part of the code of finsh to make it more simple;
+* When RT_USING_DEVICE is not used, finsh can use the `rt_hw_console_getchar()` function which is simple to implement and not using the device framework;
+* Increase the line length of the finsh shell to more than 256 characters;
+* utest can support clang compiler and C++ compiler;
+* Fix possible cross-boundary issues in ulog;
+* Fix compilation warning in `ulog/ulog_console_backend_output`;
+* Add support for file sending and receiving feature in YModem;
+* CRC16 can be calculated without the lookup talbe to reduce code size in YModem component;
+* Fix the issue that stack may be wrongly released during pthread/destory;
+* Fix the possible memory leaks issue which caused by pthread_create abnormal case;
+* The timer-related APIs under different compiler of libc are moved to the `libc\compilers\common` folder;
+* Remove redundant definitions in `dlib/sys/unistd.h` (which will cause compilation warnings);
+* Add `sys/errno.h` and`sys/signal.h` header files under dlib;
+* Freemodbus is no longer in the kernel, and split it as a standalone softwre package;
+* AT socket updated to v1.3.0:
+  - Add multi-client and multi-device function support in AT Socket, and improve the dirty data handling when AT device hardware module reboot;
+  - Support netdev network card feature, which can manage and control AT device network connection through the network card interface;
+* Improve AT Server function support in AT components, add AT Server data sending and receiving interfaces `at_server_send ()` and `at_server_recv ()`;
+* Fix the issue of `closesocket()` in SAL component when socket closing failure after `shutdown()`;
+* Improve `sal_bind ()` network card binding related function in SAL component;
+* Add IPV6 related options configuration and function support to SAL and netdev;
+* Improve ping command error handling and log display in the netdev;
+* Add hostname configuration options and functions in lwIP component;
+* Fix the assertion issue of `sys_arch_mbox_fetch()` in lwIP which may occur when a socket is closed;
+* Add network card uninstallation function and support for dhcpd service stop function to the lwip component;
+* Fix lwIP component compilation failure caused by closing FinSH component;
+* Fix the issue that the socket may not be closed during the DHCPD task in the lwIP DHCP server;
+* Add `dhcpd_stop()` interface;
+* Change log in device driver framework:
+  * Refactor audio driver framework;
+  * Fix the issue that the receiving length is 0 in CAN and the issue of returning wrong values;
+  * Add hardware encryption and decryption driver framework;
+  * Fix the flag handling issue of `rt_i2c_master_send/rt_i2c_master_recv`;
+  * Add input capture and pulse encoding driver framework;
+  * Fix the issue that partition lock is deleted when `rt_mmcsd_blk_remove`;
+  * Fix the issue that the enumerated capacity of the large-capacity card in MMC/SD exceeded the data range;
+  * When the SDIO device is initialized, the function's manufacturer and product can also use the information in CIS;
+  * Improve the interrupt mode handling in the sensor framework, and fix the issue that the memory is not released when registering the sensor;
+  * More information are provided in command line of sensor framework;
+  * Add the checking for Rx buffer size in the serial port framework, and provide a notification when RX buffer full;
+  * Remove the old Nor SPI Flash driver in SPI framework, and replace with SFUD component;
+  * Fix some judgements issue in the return value of SFUD;
+  * Fix the definition warning of `SFUD_FLASH_DEVICE_TABLE` in SFUD;
+  * Add support for W25Q64DW devices in SFUD;
+  * Fix FiFo creation failure handling when creating a pipe;
+  * Fix the issue of releasing RBB in advance in `rt_rbb_destroy()` function;
+  * Rename the new keyword using of C++ in `rt_rbb_blk_alloc` function;
+  * Unify the `struct rt_delayed_work` in workqueue to `struct rt_work`;
+  * Add touch driver framework;
+  * Add USB Audio class;
+  * Fix RNDIS plug-in/out issue in USB device stack;
+  * Add the interface callback function in USB device stack;
+  * Improve wlan framework, including command line functions, handling of AP name, password length, support for netdev, better configurability, etc.
+
+## BSP and CPU porting
+
+* Add Clang compiler support in ARM-related CPU porting;
+* Fix SCB_AIRCR definition issue in ARM Cortex-M0;
+* Add ARM Cortex-M33 porting;
+* Add DMB/DSB related operations for cache operations in ARM Cortex-A porting;
+* Add FPU support in ARM Cortex-A porting;
+* Re-organize MIPS port. And XBurst related porting are moved to X1000 BSP;
+* The porting of loongson 1B and 1C CPU are combined into one GS232 porting;
+* Add support for RISC-V Hummingbird processor porting;
+* The context switch exit operation of risc-v is forced back to machine mode;
+* Fix the issue of switch interruption during TI C28x DSP porting; 
+* Add _ffs like implementation in the TI C28x DSP porting;
+* Unify the .data .bss section to 8bytes alignment in GCC tool chain;
+* The es32f0334 BSP is moved to `bsp/essemi/es32f0334`;
+* Add `bsp/essemi/es8p508x` BSP, including UART and GPIO drivers;
+* Add GD32VF103V-EVAL (RISC-V MCU) BSP, including UART driver;
+* Rerange NXP i.MXRT BSP and add related BSP documents;
+* Add i.MXRT1052 ATK Commander, Fire Pro BSP and i.MXRT1064 EVK BSP to the new i.MXRT BSP;
+* Add BSP for NXP LPC55S6X series, and increase support for NXP official development board LPC55S69-EVK;
+* Fix I2C operation (master_xfer) in LPC54114-lite BSP;
+* Add Audio driver in LPC54114-lite BSP;
+* Update Loongson 1B BSP and use automatic component initialization in default;
+* Add Kconfig configuration for Loongson 1B BSP;
+* Add QEMU/mipssim BSP for simulate RT-Thread/MIPS without MIPS hardware;
+* Refactor qemu-vexpress-a9's Audio driver and fix the issue of OS Tick accuracy;
+* Add LPUART driver to RV32M1 VEGA BSP;
+* Remove old STM32 BSP: stm32f4xx-HAL, stm32f10x, stm32f10x-HAL, stm32f429-apollo, stm32f429-disco, stm32h743-nucleo;
+* Fix the issue of `rt_hw_sci_init()` for opening the global interrupt in tms320f28379d BSP;
+* Add support of soft I2C and hardware encryption module to WinnerMicro W60x BSP(AES/DES/3DES/RC/SHA1/MD3/CRC);
+* Add oneshot WiFi configuration support in WinnerMicro W60x BSP;
+* Add more STM32 BSP based on new STM32 BSP framework:
+  * stm32f072-st-nucleo
+  * stm32f103-gizwits-gokitv21
+  * stm32f103-yf-ufun
+  * stm32f412-st-nucleo
+  * stm32f427-robomaster-a
+  * stm32f429-st-disco
+  * stm32f769-st-disco
+  * stm32g431-st-nucleo
+  * stm32h743-st-nucleo
+  * stm32h750-armfly-h7-tool
+  * stm32l4r5-st-nucleo
+  * stm32l452-st-nucleo
+* For the new STM32 BSP framework:
+  * Add DMAMUX support to stm32l4+;
+  * Update F7 HAL library SConscript;
+  * Open the SWD port configuration on cubemx in stm32f103-atk-warshipv3 BSP;
+  * Add support for SD card in stm32f427-robomaster-a BSP;
+  * Add USBFS driver to stm32f412-nucleo BSP;
+  * Remove use of device user data on uart driver;
+  * Add QSPI FLASH support in stm32h743-atk-apollo BSP;
+  * Optimized Ethernet driver;
+  * Add hardware encryption and decryption driver;
+  * Add MIPI LCD driver;
+  * Add pulse encoding driver;
+  * Optimize hardware timer driver;
+  * Add support for UART 7/8 in serial driver;
+  * Optimize WDT driver; 
+
+## Tools
+
+* Optimize scons script for eclipse in order to generate eclipse project better;
+* Improve rtconfig.h generator, PATH type configuration can be generated correctly;
+* Fix gcc path detection issue when using the default cross toolchain of the Linux distribution;
+
 # RT-Thread v4.0.1 Change Log
 
 ## Kernel
@@ -738,487 +890,4 @@ RT-Thread做为一个开源组织参与的CSDN开源夏令营结出了丰硕的
 由wzyy2参与的GDB stub实现,也完美的支持BeagleBoneBlack开发板和STM32F4平台;
 CSDN开源夏令营其他的成果,例如bluedroid移植也有了初步的成果,希望能够在后续的版本(可能会是2.1.0系列版本?)包含进来。CSDN开源夏令营是一次非常棒的活动,能够让学生提前进入实战,了解软件开发的初步知识。对开源社区来说,也是一次非常有益的社区互动活动。希望明年这个活动可以继续,关注RT-Thread、嵌入式开发的同学可以关注明年的动向。
 
-当前智能化设备是一个备受关注的领域,针对这一领域的特点,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++底层的一些基础支撑。
-
-这个版本是RT-Thread 2.0.0系列正式版本的候选版本,正式版本预计会在年底正式发布,距离正式版本还会加入更完善的一些支撑(例如各种传感器驱动)。也计划2014年11月22日,在上海浦东举行RT-Thread嵌入式系统沙龙活动,欢迎大家关注并参与进行RT-Thread方方面面的技术交流。
-
-以下是这个版本的更改记录:
-
-## 内核
-
-* 修正当采用高级别优化编译时,idle任务中查询是否有僵尸线程的潜在bug;
-
-* 修正memory pool中的竞争问题;
-
-* 在console中打开设备时,加入流标志进行打开;
-
-## 组件
-
-* 加入C++基础支撑组件。C++组件依赖于RT_USING_LIBC库,当使用GCC编译器时请注意查看其中的说明文档并更改ld script;
-* 修正DFS中NFS打开目录的bug;
-* 更改DFS ROMFS默认romfs_root为弱化符号;
-* 添加DFS中dfs_file_lseek接口中关于fs的检查;
-* 移除I2C core中无用的core lock锁;
-* 添加sensor framework(采用C++的方式支持各种sensor);
-* 修正serial框架中DMA发送的bug(heyuanjie87);
-* 移除SPI框架中不必要的device初始化代码;
-* 完善SPI Wi-Fi网卡RW009驱动并提供RSSI相关的命令;
-* 修正MSH中未定义DFS_USING_WORKDIR时更改当前目录的bug;
-* 修正MSH中未定义RT_LWIP_TCP时依然定义了netstat命令的bug;
-* 修正MSH中未定义RT_USING_HEAP时依然定义了free命令的bug;
-* 修正finsh中FINSH_USING_HISTORY相关的裁剪;
-* 加入gdb stub组件,当前支持ARM Cortex-A8和Cortex-M3/4(wzyy2);
-* 统一不同编译器下使用LIBC的宏为RT_USING_LIBC,原有的宏定义RT_USING_NEWLIB/RT_USING_ARM_LIBC需要从rtconfig.h中移除,并替换成RT_USING_LIBC;
-* 加入最新的lwIP分支:lwip-head,以提供IPv4/v6双栈的功能(hduffddybz);
-* YMode中打开串口设备时,添加open flag(armink);
-
-## bsp
-
-* 加入北京京微雅格的M7(华山)低功耗FPGA的ARM Cortex-M3移植(aozima);
-* 加入北京京微雅格的M7 EMAC以太网驱动(aozima);
-* AT91SAM9260分支中更改RT_USING_NEWLIB为RT_USING_LIBC;
-* BeagleBoneBlack分支中加入gdb stub支持(wzyy2);
-* LPC176x分支中加入C++支持;
-* LPC176x分支中修正SD卡驱动返回卡信息的bug;
-* 修正LPC408x分支中GCC编译时的问题;
-* LPC408x分支中加入C++支持;
-* 龙芯1B分支中加入UART3驱动;
-* 加入飞索半导体的MB9BF568 FM4分支移植(yangfasheng);
-* mini2440分支中更改RT_USING_NEWLIB为 RT_USING_LIBC;
-* stm32f0x分支中移除不同编译器下的LIBC定义,统一更改为RT_USING_LIBC;
-* stm32f0x分支中加入串口接收溢出中断处理(armink);
-* stm32f40x分支中加入gdb stub支持并添加UART6驱动(wzzy2);
-* zynq7000分支中更改RT_USING_NEWLIB为RT_USING_LIBC;
-* 加入ARM Cortex-M4芯片指令级的ffs实现;
-* 修正MB0BF618S分支中缺少timer初始化的bug(mike mao);
-
-## 工具
-
-* 移除Python 2.6中未支持的语法(xfguo);
-* 移除Windows平台中的startupinfo信息(对Python版本兼容性更好);
-* 修正CPPPATH被打乱的bug;
-
-# RT-Thread 2.0.0 Beta更改说明
-
-发布时间:2014/8/1
-
-v2.0.0这个版本系列是RT-Thread当前的开发分支,如果要上新项目,建议使用这个版本来进行,预计这个版本的正式版会在年底发布。欢迎对这个版本进行测试、并反馈问题,能够早日进入到稳定版。
-
-v2.0.0版本的开发相对活跃些,开源社区提供了强有力的支持:如Arda贡献的TM4C129x移植,Romeo贡献的frdm-k64f移植,xiaonong的LPC4300移植等,以及睿赛德服务公司捐赠的Zynq7000移植,MB9BF618S移植,以及SPI WiFi网卡的驱动代码等。
-
-更改记录
-
-## 内核
-
-* 移除rt_device_init_all()函数:在系统启动时不需要再调用这个函数来初始化驱动,而是由上层应用执行rt_device_open时自动进行设备初始化;
-* 修正设备对象引用计数在打开设备失败依然递增的问题;
-* 增加WEAK宏用于定义/声明弱符号;
-* 在执行静态内存块分配前,重置线程的errno;
-* 修正timer未打开调试选项时,无用的静态函数定义(导致编译警告);
-* 启动timer前,对timer进行强制移除;
-* 在执行soft timer超时函数时,打开调度器锁;
-* 新增块设备的自动刷新参数,RT_DEVICE_CTRL_BLK_AUTOREFRESH;
-
-## 工具
-
-* 修正scons命令编译时,选择keil mdk (armcc)编译器时,命令行太长编译失败的问题;
-
-## 移植
-
-* 移除rt_device_init_all()相关的调用;
-* 根据串口框架调整相关的驱动代码;
-* 新增frdm-k64f移植(FreeScale K64芯片);
-* 移除K60Fxxxx移植;
-* 新增LPC43xx移植(NXP LPC4357芯片);
-* 移除LPC176x中的组件初始化配置;
-* 修正龙芯1B移植(ls1bdev)中链接脚本关于组件初始化部分的配置;
-* 修正STM32F40x中UART3的配置;
-* 修正STM32F40x中GNU GCC连接脚本中ROM/RAM大小的配置;
-* 移除STM32F107中的组件初始化配置;
-* 增强STM32F107 EMAC驱动性能,同时加入自动查找PHY芯片地址功能;
-* 重写xplorer4330(NXP LPC4330芯片)移植(xiaonong完成);
-* 新增Zynq7000 ARM Dual Cortex-A9移植;
-* 新增MB9BF618S移植;
-* 新增tm4c129x移植,并加入相应的EMAC以太网驱动;
-
-## 组件
-
-* DFS: 新增根据设备对象获得其上装载文件系统路径的函数:dfs_filesystem_get_mounted_path(struct rt_device* device);
-* DFS: 修正readdir在GNU GCC下的编译警告;
-* DeviceDrivers:新增workqueue实现;
-* DeviceDrivers: 修正USB Device栈中的一些拼写错误;
-* DeviceDrivers: 重写serial框架,能够让串口设备驱动同时支持三种模式:poll、interrupt、DMA。模式选择需要在执行rt_device_open时,由open flags指定;
-* DeviceDrivers: 加入更多的SPI设备驱动,例如RW009的SPI WiFi网口驱动(2.4G 802.11 b/g/n,WEP/WPA/WPA2,SoftAP/Station),SPI NorFlash块设备驱动,ENC28J60以太网网卡驱动;
-* Finsh: list_device()命令中增加refcount的信息;
-* Finsh: 修正'0'零常量无法识别的错误;
-* Finsh: mv命令,实现把一个文件移动到一个目录中;
-* Finsh: ifconfig命令支持对一个网络接口的基本配置;
-* Finsh: 新增netstat命令,用于显示当前系统中TCP连接的状态;
-* Finsh: 修正当命令行太长导致的缓冲区移除的问题;
-* libc: 修正arm libc中未使用DFS时的编译警告;
-* libc: 修正newlib中使用DFS时的系统调用编译警告(GNU GCC下);
-* lwIP 1.4.1: 默认打开LWIP_SO_SNDTIMEO以支持连接发送超时;
-* lwIP 1.4.1: 修正MEMP_NUM_TCP_SEG定义错误的问题;
-* lwIP 1.4.1: 加入RT_LWIP_REASSEMBLY_FRAG选项定义以支持IP分组及合并;
-* lwIP 1.4.1: ethnet网络接口支持定义LWIP_NO_TX_THREAD/LWIP_NO_RX_THREAD,以关闭etx/erx线程;
-* lwIP 1.4.1: 用户可以重新定义RT_LWIP_ETH_MTU,以修改网络中的MTU值;
-* lwIP 1.4.1: 修正LWIP_NETIF_LINK_CALLBACK条件编译的问题;
-* lwIP 1.4.1: 完善移植相关的注释;
-* log trace: 增加log_session_lvl接口;
-* log trace: log trace中的session引用更改成常量形式;
-* ymodem: 增强数据接收的稳定性;
-
-# RT-Thread 2.0.0 Alpha更改说明
-
-发布时间:2014/4/8
-
-RT-Thread 2.0.0分支的第一个技术预览版本,仅用于展示2.0.0发展分支的演化动向(按照roadmap,2.0.0这个分支会有一部分RT-Thread和Linux互补性的技术,为Linux增加更好的实时性,为RT-Thread增加更多的功能性,这份技术预览版正是朝着这个目标而努力),欢迎反馈建议和问题。
-
-## 组件
-
-* msh: bugfix 和功能性增强。新的 msh 在调用外部模块方面更加方便。
-* DFS: nfs 的 bugfix 和内置命令的增强。ELM FatFS加入对扇区不匹配情况下的信息输出,这样能够及时定位问题。
-* JS:新添了轻量级Javascript引擎,可以在RT-Thread中直接运行javascript脚本。
-* VMM:可以在qemu中运行的 Virtual Machine Module 组件。暂时只支持 realview-pb-a8 的 bsp。
-* CMSIS:版本更新至 3.20
-* drivers:USB 协议栈的重构。新的框架中编写驱动变得更加容易了。
-
-## BSP
-
-* beaglebone:串口驱动更新
-* realview-a8:添加了 VMM 组件
-
-## 工具
-
-* 固件加入scons --target=ua -s,用于准备用户应用环境;
-
-[发布后记]
-
-RT-Thread 2.0.0. Alpha版本相比于RT-Thread 1.2.1,新的特性主要有两部分:
-- RT-Thread + Linux双系统,这部分以RealView-A8处理器(ARM Cortex-A8单核)为蓝本,给出一个简单的双系统并行运行的demo;在没有硬件的环境下,可以使用QEMU软件虚拟方式的执行。这个链接中包含一个编译好的Linux及RT-Thread二进制包,可以直接下载进行体验。
-
-目录中有 Linux 的内核镜像 zImage,ramdisk rootfs.cpio.gz。可以用
-qemu-system-arm -M realview-pb-a8 -kernel zImage -initrd rootfs.cpio.gz -serial vc -serial vc
-来启动。启动之后 Linux 的控制台在第一个串口上(Atl + Ctrl + 3),可以直接无密码以 root 用户登录。登录之后加载内核模块:
-insmod rtvmm.ko
-来启动 RT-Thread。RT-Thread 启动之后控制台在第二个串口上(Atl + Ctrl + 4)。第一个串口Linux shell依然可以使用,第二个串口则是RT-Thread的shell。
-- JavaScript解析器,这个是由牛头哥移植的,可以在一个非常小资料的MCU上以JavaScript脚本方式进行编程、开发。根据这种方式,也提供了RN001JS的以太网硬件模块:以JavaScript脚本语言作为二次开发,提供在线web(即WebIDE)进行编程并运行JavaScript程序。JavaScript作为一门轻量级、解释型的语言,更容易上手,配合WebIDE、及提供的一些example可以使得开发变得非常的轻松,也包括一些传感器的JavaScript例子,让做网页的人也可以玩硬件了!
-
-# RT-Thread 1.2.1更改说明
-
-发布时间: 2014/4/8
-
-在原有的1.2.0版本的bug修正版本,也是1.2.0系列的第一个修正版本,原则上不添加任何的新功能,我们尽量会按照每个季度一个修订版本的方式推进。大家在使用的过程中有什么问题还请反馈给我们,这些问题很可能会在下个版本中修正!
-
-以下是更改记录:
-
-## 内核
-
-* 用户应用,增加用户应用命令行参数支持;
-* 在挂起一个任务时,把相应的定时器也关闭;
-
-## BSP
-
-* BeagleBone,加入更多串口驱动支持;
-* 移除BSP中rt_device_init_all函数调用,改成打开设备时自动进行初始化;
-* LPC176x,移除components初始化管理器;
-* LPC4088,修正LED驱动的问题;
-* STM32F107,移除components初始化管理器;
-
-## 组件
-
-* 文件系统,ELM FatFS加入对扇区不匹配情况下的信息输出,这样能够及时定位问题;
-* 文件系统,NFS网络文件系统修正相关的一些编译警告信息;
-* 文件系统,copy命令加入文件夹方式复制功能;
-* 文件系统,RAMFS,加入到components初始化管理器中;
-* 文件系统,ROMFS,用于转换文件的工具mkromfs.py,增加Linux主机的支持;
-* CMSIS更新到3.2.0版本;
-* 串口驱动框架加入serial->ops->control的调用;
-* 命令行系统,优化msh,支持用户应用的命令行参数;
-* 命令行系统,当使用msh时,默认使用msh >的命令行提示符;
-* TCP/IP协议栈,导出更多的lwIP接口给用户应用;
-* POSIX thread,修正了同时使用lwIP组件时的编译警告;
-* 第三方组件,加入TJPGD的移植,加入libpng的移植;
-
-## 工具
-
-* 固件加入scons --target=ua -s,用于准备用户应用环境;
-
-[发布后记]
-* RT-Thread携带了众多的BSP,不一定能够一一保证每个分支上把RT-Thread上相应的功能使用起来。所以针对这种情况,我们有一款评估用的硬件开发板:RealBoard 4088,在上面力求把一些相关例程都添加上,这样在一个基本的BSP基础上,可以对照着把其他的组件、功能添加进去;
-* RealBoard 4088使用的RT-Thread版本主要以RT-Thread 1.2.1版本为主。
-
-# RT-Thread 1.2.0正式版本更改说明
-
-发布时间: 2014/1/6 
-
-实现roadmap中提到的大部分内容
-​
-1,文档方面已完成《RT-Thread编程手册》,同时还有论坛上jiezhi童鞋的《一起来学RT-Thread系列连载教程》
-2,BSP分支方面新增cortext-A8(beaglebone),cortext-R4(rm48x50),UNITY-2(SEP6200),lpc408x的移植
-3,组件方面:
-- 加入msh(类似linux shell的风格),能够直接执行应用程序
-- 新增freemodbus 1.6.0的移植
-- 新增开源的嵌入式关系数据库SQLite 3.8.1的移植
-- 新增Ymodem协议
-- 默认使用lwIP 1.4.1
-
-下面是自RT-Thread 1.2.0 RC版本发布以来具体的变更履历:
-
-## 内核
-
-* timer.c - 使用跳跃表(skip list)实现系统定时器链表,并在bsp中的startup.c中重新加入定时器初始化函数rt_system_timer_init()
-* rtdebug.h - 新增宏定义RT_DEBUG_IN_THREAD_CONTEXT
-* idle.c - 在函数rt_thread_idle_excute()中一次清除所有的死线程
-* scheduler.c - 新增API rt_critical_level()返回调度器上锁次数
-
-## 移植
-
-* cortex-m0 - 修正 cortex-m0 GCC移植中hardfault的问题点
-* cortex-r4 - 在startup后释放IRQ堆栈空间
-* cortex-r4 - 按字节长度分配堆栈空间
-
-## BSP分支
-
-* 新增lpc408x移植
-* bsp/stm32f0x - 增加USART1,USART2驱动,支持finsh,支持组件初始化
-* bsp/simulator - 当RTGUI配置无效时打印错误信息
-* bsp/simulator - 默认情况下关闭RTGUI选项
-* bsp/simulator - 增加createdef.py文件来生成VS的def文件
-* bsp/simulator - 当使用VC++编译时去除_TIME_T_DEFINED的定义
-* bsp/xplorer4330 - 重命名文件Retarget.c为retarget.c,否则linux系统中编译会报错
-* bsp/xplorer4330 - 修正GCC编译链接时关于ENTRY的警告
-* bsp/rm48x50 - 新增GCC的移植
-* bsp/K60Fxxxx - 修正一个编译错误
-
-## 组件
-
-* dfs - 正确处理mkfs未实现的情况
-* dfs - 使用指针代替index变量
-* dfs - 在函数dfs_filesystem_lookup()将含义模糊的指针变量名称empty重命名为fs
-* dfs - 修正dfs_unmount问题点
-* dfs - 在设备打开错误时令挂载失败
-* dfs/elmfat - 令elmfatfs每次都检查扇区大小
-* net - 新增freemodbus 1.6.0的移植
-* finsh - 新增FINSH_USING_MSH_ONLY选项
-* finsh - 只有当shell设备为空时调用rt_console_get_device()
-* finsh - 修正FINSH_USING_SYMTAB未定义的错误
-* finsh - 重构control按键的处理
-* msh - 增加文件和路径名称自动补全的功能
-* msh - msh内增加执行module的功能
-* msh - msh内增加更多的命令
-* libc - 修正 _sys_read()/_sys_write()问题点
-* external - 增加开源的嵌入式关系数据库SQLite 3.8.1的移植
-* pthreads - 避免ESHUTDOWN重复定义
-* mtd_nand - 在MTD nand中增加更多的调试措施
-* mtd_nand - 修正操作MTD nand时起始块错误的问题
-* lwip-1.4.1 - 在lwIP内加入更多的RT-Thread选项设置
-* log_trace - 修正函数memmove()参数使用错误的问题
-* drivers/pipe - 增加一个control命令来获得pipe剩余的空间
-* drivers/serial - 如果读写长度为0,则立即返回
-
-## 例程
-
-* examples - 用rt_sem_control()中的RT_IPC_CMD_RESET命令rt_sem_trytake()来清除信号量
-* examples - 始终打印输出测试结果
-* examples - 在所有的测试结束后打印输出简报
-* examples - 在TC线程中清除变量_tc_stat的TC_STAT_RUNNING状态
-* examples - 重新实现loop功能,并新增finsh命令tc_loop
-* examples - 在tc_stop中增加延时,由原来的延时RT_TICK_PER_SECOND/2调整为10 * RT_TICK_PER_SECOND
-* examples - 在SConscript中判断TC如果被使能,在CPPPATH中增加TC路径
-* examples - 新增一个in-mem-log的例子
-* semaphore_priority.c - 在cleanup时释放信号量
-* heap_realloc.c - 检查调用realloc(ptr, 0)是否成功
-* thread_delete.c - tc线程的延时应该比tid2的延时长,保证其测试过程中正常运行
-* thread_delay.c - 放宽超时判断条件,因为当RT_TICK_PER_SECOND为1000时,容易产生1个tick的误差
-* semaphore_static.c - 放宽超时判断条件,因为当RT_TICK_PER_SECOND为1000时,容易产生1个tick的误差
-* semaphore_dynamic.c - 放宽超时判断条件,因为当RT_TICK_PER_SECOND为1000时,容易产生1个tick的误差
-
-其他:
-* 更新README.md
-	
-# RT-Thread 1.2.0RC更改说明
-
-发布时间: 2013/10/10/ 10:19
-
-主要说明: 该版本新增ARM Cortex-A8的支持(BeagleBone),新增UNITY-2内核的支持(SEP6200),新增Ymodem协议。
-
-变更履历
-========
-
-[内核]
-
-* 修正rtdef.h中的拼写错误(_MSC_VER_ -> _MSC_VER)
-* 修正scheduler.c中的调试打印输出错误
-* ipc - 在函数rt_event_recv()中增加对参数option有效性的检查
-* device - 增加统计设备引用次数的变量ref_count
-* memheap - 修正内存块分割问题点
-* memheap - 优化函数rt_memheap_realloc()
-* kservice - 函数声明使用rt_vsnprintf代替vsnprintf
-
-
-[组件]
-
-* dfs - 修正dfs_file.c中一处变量参数类型错误的问题
-* dfs - 增加mount table
-* dfs - 在building脚本中加入ramfs的支持
-* dfs - 修正ramfs中O_APPEND write的问题
-* dfs/elm - 在mkfs中加入device_open/close
-* dfs/jffs2 - 修正jffs2_opn/opendir中的f_flag初始化问题
-* dfs/jffs2 - 修正jffs2卸载问题
-* pthread - 修正一处编译警告
-* drivers/pipe - 增加rt_pipe_init/rt_pipe_detach
-* drivers/pipe - 增加非阻塞读写和强制写模式
-* drivers/pipe - 当恢复读的时候调用函数rx_indicate()
-* drivers/pipe - 增加一个设备类型(pipe类型)
-* drivers/portal - 实现portal设备类型
-* drivers/ringbuffer - 修改一些模糊不清的函数名称
-* drivers/ringbuffer - 新增put_force和putchar_force接口函数
-* finsh - 当set_device时增加设备检查
-* finsh - 在rx_ind中增加对shell设备的自动设置
-* finsh - 增加pipe和portal设备的描述
-* finsh - 在变量定义时使用别名
-* finsh - 当关闭设备时注销rx_indicate
-* finsh - 修正命令行太长的问题
-* finsh/msh - 只有当DFS_USING_WORKDIR使能时才声明cd/pwd
-* init - 为新的组件初始化机制更新连接脚本
-* init - 增加组件初始化调试代码
-* logtrace - 整理代码,去除编译警告
-* logtrace - 增加LOG_TRACE_VERBOSE
-* logtrace - 调整log values
-* logtrace - 只有当finsh使能的时候才声明cmd
-* libc/minilibc - 在sys/time.h中增加gettimeofday的声明
-* utilities - 新增ymodem
-
-工具:
-
-* building.py - 增加clang静态缝隙器的支持
-* building.py - 为Keil MDK增加buildlib功能
-* building.py - 在clang-analyze中执行'clang -Wall -fsyntas-only'
-* clang-analyze.py - 增加一个定制工具实现clang静态分析
-
-分支:
-
-* 新增BeagleBone的移植
-* 新增SEP6200的移植
-* 新增K60Fxxxx的移植
-* 修正Linux中的编译错误(lm4f232, stm32f40x, xplorer4330)
-* cortex-m3 - 加强hard fault的异常处理函数
-* at91sam9260 - 更新串口驱动,使用组件中的通用串口驱动
-* at91sam9260 - 更新工程目录结构
-* at91sam9260 - 修正编译错误
-* at91sam9260 - 内嵌GPLv2许可
-* stm32f10x - 删除无用的文件
-* stm32f10x - 更新工程目录结构
-* stm32f10x - 更新工程文件
-* stm32f10x - 为使用新的组件初始化更新连接脚本
-* stm32f10x - 为使用新的组件初始化更新SD card驱动
-* stm32f10x - 为使用新的组件初始化更新DM9000驱动
-* stm32f10x - 更新串口驱动,使用组件中的通用串口驱动
-* stm32f10x - 修正rtgui初始化问题
-* simulator - 为使用新的组件初始化更新代码,以便支持mingw
-* simulator - 支持Linux系统
-* simulator - 修正Linux系统中的SDL初始化问题
-* simulator - 在rt_components_init之后初始化SDL
-* simulator - 将对SDL设置的内容移入drivers/SConstruct
-* simulator - 在env中获得CORSS_TOOL和EXEC_PATH的值
-* simulator - 支持clang-analyze
-* simulator - 增加tap netif driver
-
-//----------------------------------------------------------------------------------------
-
-//----------------------------------------------------------------------------------------
-
-//----------------------------------------------------------------------------------------
-
-
-版本: RT-Thread 1.2.0 Beta 版本
-
-发布时间: 2013/6/30
-​
-进过开发人员三个月的努力,RT-Thread 1.2.0 Beta 版本如期发布。
-该版本默认采用lwIP 1.4.1协议栈,USB device stack也进一步完善。加入 log_trace 子系统,加入组件初始化升级版本,加入 ARM Cortex-R 的移植。
-
-主要变化:
-
-* 1,新增组件初始化功能
-- 详情请看论坛帖子[新功能] 组件初始化
-* 2,支持ARM Cortex-R系列处理器
-- Grissiom 完成 ARM Cortex-R 的移植,目前BSP中已有TI RM48x50分支(仅支持TI CCS开发环境)
-* 3,文件系统中新增 RAMFS
-* 4,加入 log_trace 子系统
-* 5,优化Cortex-M4线程上下文切换,使用了浮点运算的线程才保存及恢复FPU寄存器
-- 详情请看论坛帖子[优化]cortex-m4f线程切换,优化FPU寄存器
-* 6,新增API rt_memheap_realloc()
-* 7,重新实现ringbuffer,采用镜像的方法区分“满”和“空”,同时支持任意大小的buffer
-* 8,内核中加入RT_KERNEL_MALLOC/RT_KERNEL_FREE/RT_KERNEL_REALLOC宏。
-如果用户未定义这些宏,将默认指向rt_malloc/rt_free/rt_realloc。
-同时内核仅局限于使用这些宏来使用动态内存
-* 9,在 building.py 中新增生成 cscope database 的选项
-* 10,USB组件新增reset函数,支持热插拔
-* 11,scons编译系统支持CCS开发环境
-* 12,USB组件新增状态信息(USB_STATE_NOTATTACHED,USB_STATE_ATTACHED,USB_STATE_POWERED...)
-
-修复问题点:
-
-* 1,USB组件HOST可以挂起endpoints
-* 2,simulator分支,修复 serial_write 问题
-* 3,udisk可以被弹出
-* 4,iar.py中修复绝对路径的问题
-* 5,dfs_fs.h内增加dfs_mkfs()函数的申明
-* 6,生成MDK工程文件的时候加入library文件
-* 7,当PC不再接受数据的时候,重置VCOM相应的状态
-* 8,USB组件:返回正确的LangID字符串长度给HOST
-* 9,Cortex-M0,Cortex-M3,Cortex-M4上下文切换时,回收系统初始化时用到的栈空间
-
-//----------------------------------------------------------------------------------------
-
-//----------------------------------------------------------------------------------------
-
-//----------------------------------------------------------------------------------------
-
-
-
-版本: RT-Thread 1.2.0 Alpha版本
-
-发布时间: 2013/4/10
-​
-遵循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系列的文档情况。当然也有一些功能、代码方面的增强。
-
-伴随着新版本的到来,RT-Thread有几个重大的转变:
-1,代码托管从google code(SVN)迁移到github(GIT)
-2,RT-Thread与RTGUI区分开来,并成为两个独立的开发分支
-3,重视文档,将文档建设作为1.2.0版本的首要任务来抓
-
-内核主要变化:
-1,加入__rt_ffs函数用于实现32位整数中获取第一个置1的位;同时调度器中位图相关算法直接使用__rt_ffs函数;CPU移植时,可定义RT_USING_CPU_FFS,使用芯片指令完成。
-
-2,新的中断注册机制
-weety加入interrupt description功能,用于为interrupt增加更多的信息,同时中断服务例程也可以携带用户自定义的参数类型。
-* 这部分对ARM7、ARM9、MIPS等影响很大,需要对CPU移植做相应的一些修改。
-* 这部分对ARM Cortex-M系列芯片没有影响。
-
-3,调整定时器插入位置,为相同超时定时的后面。
-
-组件主要变化:
-1,添加lwIP 1.4.1。
-2,在finsh shell中加入module shell功能。finsh shell本身是一个C语言表达式的shell命令行,而module shell更类似于一个传统的命令行,由命令,参数等方式构成。
-
-分支主要变化:
-1,完善simulator分支,支持RTGUI,支持应用模块。
-2,完善at91sam9260分支的移植及驱动更新。
-
-编译系统主要变化:
-1,开启省略编译时长命令特性,如果需要查看编译时命令行,可以使用scons --verbose查看。
-2,加入生成CodeBlocks工程特性。
-3,修正当系统安装使用Keil MDK 4.6+版本的问题。
-
-github主要提交履历:
-5646189b29: elm fatfs支持mkfs,并且无需提前执行dfs_mount; mount/umount/mkfs操作也不会引起reset
-22786f8817: 允许用户自定义PID和VID
-0001344105: 更明确的定时器运行机制,如果两个定时器在同一个时刻发生超时,那么先开始的定时器先处理
-5d68ef8ec1: 修正使用64位GCC时编译finsh过程中发生错误的问题
-a4d661dcf1: 修正dfs_elm.c中一处内存泄露,并且在mount fatfs失败时执行 umount fatfs操作
-43228aeb9c: 修正list_tcps问题:ipaddr_ntoa不是可重入的函数。
-3de4b92a68: 修正AT91SAM9260分支中PHY link状态错误的问题。
-1abaa0492d
+当前智能化设备是一个备受关注的领域,针对这一领域的特点,RT-Thread也相