Update ChangeLog.md

This commit is contained in:
Bernard Xiong 2020-01-31 13:31:09 +08:00 committed by GitHub
parent c95987e757
commit f8c32243e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 153 additions and 484 deletions

View File

@ -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 BSPAES/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发送的bugheyuanjie87
* 移除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/4wzyy2
* 统一不同编译器下使用LIBC的宏为RT_USING_LIBC原有的宏定义RT_USING_NEWLIB/RT_USING_ARM_LIBC需要从rtconfig.h中移除并替换成RT_USING_LIBC
* 加入最新的lwIP分支lwip-head以提供IPv4/v6双栈的功能hduffddybz
* YMode中打开串口设备时添加open flagarmink
## 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初始化的bugmike 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芯片地址功能
* 重写xplorer4330NXP 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/nWEP/WPA/WPA2SoftAP/StationSPI 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发展分支的演化动向(按照roadmap2.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
* driversUSB 协议栈的重构。新的框架中编写驱动变得更加容易了。
## 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 的内核镜像 zImageramdisk 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系列连载教程》
2BSP分支方面新增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 - 增加USART1USART2驱动支持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 的选项
* 10USB组件新增reset函数支持热插拔
* 11scons编译系统支持CCS开发环境
* 12USB组件新增状态信息USB_STATE_NOTATTACHEDUSB_STATE_ATTACHEDUSB_STATE_POWERED...
修复问题点:
* 1USB组件HOST可以挂起endpoints
* 2simulator分支修复 serial_write 问题
* 3udisk可以被弹出
* 4iar.py中修复绝对路径的问题
* 5dfs_fs.h内增加dfs_mkfs()函数的申明
* 6生成MDK工程文件的时候加入library文件
* 7当PC不再接受数据的时候重置VCOM相应的状态
* 8USB组件返回正确的LangID字符串长度给HOST
* 9Cortex-M0Cortex-M3Cortex-M4上下文切换时回收系统初始化时用到的栈空间
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
版本: RT-Thread 1.2.0 Alpha版本
发布时间: 2013/4/10
遵循2013年RT-Thread roadmapRT-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)
2RT-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也相