下载
下载
- RT-Thread 0.3.1正式版本
这个版本支持的硬件平台数量与0.3.0正式版本的一致:
* ARM Cortex-M3系列:STM32,LM3S以及LPC1766,STM32中新添加STM32F100系列芯片支持。
* ARM7TDMI系列:LPC2148,LPC2478,AT91SAM7X256,AT91SAM7S
* ARM920T系列:S3C2440(mini2440)
* IA32:QEMU及真实的x86机器
修正的问题包括:
* 修正OS Tick溢出的问题。
* 修正定时器有时会被延期操作的问题。
* 修正heap分配器尾部数据浪费的问题。
* 修正rt_realloc时内存可能被浪费使用的问题。
* 调整各内核对象结构使得内存布局更合理。
* 修正ELM FatFs接口中rename的问题。
* 修正LwIP中IGMP的问题。
* 完善当发送mail失败时LwIP的处理。
* 增强、完善RT-Thread/GUI的功能。
RT-Thread在Google SVN服务器上的开发分支亦做了相应调整:
原来的branches/rtt_0_3_1分支更改为branches/rtt_0_3_2。
代码:
文档:
RT-Thread实时操作系统编程指南与0.3.0正式版的相同,以后会逐渐由API说明文档替代,朝着正规化的方向发展。
STM32分支
请注意STM32分支的工程文件组织方式和0.3.0版本中的不一样,原来的几个目录是不相独立的工程,而0.3.1中为了避免混淆,把它们变成了独立的工程(注:因为0.3.1与0.3.0是完全兼容的,所以不一定要更新BSP目录)。
project_107是针对STM32F107芯片的工程,project_valueline是针对STM32F100芯片 STM32 Discovery开发版的工程,其余的芯片默认是STM32F103ZE。如果要修改成自己所需要的芯片,请遵循一下步骤:
* 在board.h文件中修改STM32_SRAM_SIZE宏定义,它的单位是KB,所以针对于STM32F103VB类型的芯片,只需要把它定义成20即可。
* 在使用Keil MDK打开board.h文件时,也能够使用Keil MDK带的界面配置方式进行配置。
* 在工程选项的C编译器预定义上,修改成和芯片匹配的类型,例如STM32F10X_HD、STM32F10X_MD等。
另外,STM32分支支持IAR编译器,在使用IAR ARM时,如果你使用了finsh,请注意,最好在链接配置文件中加入
keep { section FSymTab };
keep { section VSymTab };
它的作用是为了保留finsh中使用到的符号表,因为这些符号表仅在命令行被调用,所以他们可能在最后生成目标文件时被优化掉。
具体请看stm32f10x_flash.icf文件。
LM3S分支
LM3S分支默认采用LM3S8962芯片,针对的是TI这次发的48¥ 8962开发板。
LPC176x分支
工程默认包括finsh shell,文件系统,网络协议栈的支持。
(*) 希望使用新特性的开发人员请关注后续0.4.0版本的发布情况,0.4.0版本添加了很多的新特性,例如:16位的瑞萨M16分支,大端模式的AVR32分支,以及MIPS分支等。
- 开发工具下载
RT-Thread是一款开源的实时操作系统,其开发工具也尽量使用开源的软件,以下是使用到的一些开发工具:
Yagarto 在Windows下的ARM GCC工具链(注:对ARM Cortex-M3支持不太好):yagarto-bu-2.20_gcc-4.4.2-c-c++_nl-1.18.0_gdb-7.0.1_20091223.exe
Python 2.5.2: python-2.5.2.msi
- RT-Thread 0.4.0系列测试版本
自RT-Thread 0.3.0正式版发布以来,经过开发人员密集的整8个月开发,大众用户的积极反馈、测试,终于完成了RT-Thread 0.4.x系列的第一个测试版本。这个测试版本,依然更多的面向测试目的,不建议直接应用到实际的产品中。RT-Thread 0.4.0的非正式版本依然沿用GPL v2许可证进行发布。
RT-Thread 0.4.0版本初始提出的几个功能亦基本达到,提供了相对完善的POSIX thread接口,动态库载入接口libdl以及应用模块支持。这些新功能的加入使得RT-Thread能够初步的兼容于POSIX标准。
自RT-Thread 0.3.0版本以来的更改:
内核:
- 添加应用模块支持;支持两者应用方式:.mo 符号预解析应用;.so 符号未解析应用。.so应用需要在加载时动态解析符号。能够执行本地文件系统的应用模块,也能够执行网络文件系统上的应用模块。
- 修正在rt_realloc参数中传入一个NULL指针时,分配失败的问题。修正slab管理器中对0xffffffff尺寸内存分配的问题;
- 修正OS节拍数溢出的问题。(charlie weng提供相应的patch)
- 块设备中读写偏移、大小等都更改成按块为单位;
- 更改rt_device中成员private名为user_data;
- 线程TCB中添加cleanup域,它将在线程运行结束时回调。
组件:
- 添加newlib移植,当前仅能够支持GNU GCC编译环境;
- 添加POSIX thread兼容接口(支持barrier,cond,mutex,rwlock,spin,tls等),采用IEEE Std 1003.1, 2004 Edition为参考进行实现;
- 添加libdl兼容接口,能够使用dlopen,dlsym,dlclose等接口动态加载库;
- 文件系统完善
- 对设备虚拟文件系统代码部分进行调整,精简;
- 修正device file system中struct stat的问题(能够兼容于newlib、minilibc、Keil MDK)
- 修正dfs_filesystem_lookup函数中空项操作的问题;
- 增加fstat接口;文件系统实现中增加mkfs,statfs接口以获得文件系统相关的信息。
- 添加romfs文件系统,可以采用mkromfs.py脚本生成相应的ROM文件系统;
- 添加devfs文件系统,增加/dev/console设备,它是一个虚拟设备,用于标准输入、输出、错误等;
- 添加NFS v3客户端文件系统,可以配合FreeNFS/Linux NFS使用,以访问主机上的目录和文件;
- elm fat文件系统
- 添加非512扇区的宏定义;
- 添加卸载的功能。
- 修正重命名的问题;
- RT-Thread/GUI
- 增加bmp图像格式支持;
- 原来的hardware dc更改为client dc;重写新的hardware dc,新的hardware dc绘图速度会更快。
- 加入了非等宽字体支持。
- 加入TTF字体支持,但内存空间占用估计比较大,对于unicode的问题还存在些问题。
- 修正filelist_view控件析构的问题。
- 对DC操作进行调整完善 (由richard lion完成)
分支:
- STM3210
- 完善SDIO驱动,并提供超过4G卡的支持;
- mini2440
- 能够使用0.4.0分支上所有的特性,能够开启newlib支持,能够开启POSIX thread支持,能够开启libdl支持。
- 增加LPC的ARM Cortex-M0/3系列移植分支;
- 增加新唐的ARM Cortex-M0 NU1xx分支;
- 增加龙芯I SoC3210分支(MIPS 32位体系结构)
<其他分支,例如avr32,瑞萨m16,SEP4020等分支,由于分支维护人来不及准备,此次发布未包括在内,可以自行从RT-Thread的google svn中获取>
移植的组件:
- wyoujtg完成国内知名的开源项目FTK移植。FTK是一套极为绚丽,完整的GUI系统。
RT-Thread 0.4.0 Beta1下载:rt-thread-0.4.0 beta1
