RT-Thread 1.2.0 正式版本发布
RT-Thread 1.2.0正式版本发布,实现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.0
《RT-Thread编程手册》http://www.rt-thread.org/download/manual/rtthread_manual.zh.pdf
《一起来学RT-Thread系列连载教程》http://www.rt-thread.org/phpBB3/topic2596.html 居然沙发,支持下,国产系统中的娇子 板凳 {:lol:} 下载看看,希望RT-Thread发展的更好 厉害,真的很不错 问一下msh与finsh什么关系?互补还是替代? 有空也来学习下 能像ucos一样支持8位机吗? 热烈欢迎非常高兴 顶起,挺不错的。。。 {:victory:}{:victory:}{:victory:} 下载 果断搜藏 定 Ymodem协议很好。 太好了! 支持{:victory:}{:victory:}{:victory:}{:victory:} 发来贺电 普天同庆! 发来贺电,嘻嘻…… DevLabs 发表于 2014-1-7 07:35
问一下msh与finsh什么关系?互补还是替代?
是互补,msh是类似于linux shell风格 wangyj173 发表于 2014-1-7 07:57
能像ucos一样支持8位机吗?
支持16位,32位MCU,但不支持8位MCU 不错!{:smile:} 哎,下载不了。 手上的项目越做越复杂了,也准备上RT-Thread,产品无液晶显示只有串口配置界面,是不是启动时输出RT-Thread的Logo即可使用? dreampet 发表于 2014-1-7 13:23
手上的项目越做越复杂了,也准备上RT-Thread,产品无液晶显示只有串口配置界面,是不是启动时输出RT-Thread ...
应该是产品外壳上打上RT-Thread logo
具体请到RT-Thread官方网站上咨询吧 不错不错啊 ,支持下 - 新增开源的嵌入式关系数据库SQLite 3.8.1的移植
这个给力! 感谢大家的支持,RT-Thread 1.2.0正式版发布了,不过这个仅仅是1.2.x系列的开始,下面的文字中也提及到了RT-Thread版本的许可证问题:
RT-Thread 1.2.0版本刚刚发布,这个版本是2013年主线程,回顾2013年,1.2.0版本其实还有很多地方做得不足,例如发布包中带的roadmap-1.2.0:
- LPC18xx & LPC43xx
* USB host and device driver;
这部分开始计划在LPC43xx中实施,但是我们缺少相应的资源,一直在拖,拖到年底的时候LPC4088的板子出来,才下定决心,一定在LPC4088上把USB相关驱动给实现了。这方面,QiuYi同学要多多努力!
- device IPC
* implement the work queue.
* implement the rwlock.
* The APIs are like *BSD, but implement in RT-Thread
这部分完全没有动静,应该不是十分困难的事情,原计划由我来完成,到后面好像是完全搞忘了,有的时候真的需要回过头来看看原来的计划是什么,或者说有的时候定制一年的计划确实也不是什么好事情。
- finsh shell
* implement a UNIX style shell, and this shell can execute application module.
这部分就是1.2.0中的msh,全称是module shell。它是一个比较传统的命令行程序,但是finsh shell中原有的历史记录,自动补全等功能都继承过来了(外加文件或目录名的自动补齐)。不过aozima说不好用,没原来的直接导出函数,自动处理函数参数方便。因为参数部分,例如这么个命令:int cmd(int argc, char** argv),其中的argc、argv参数都需要函数一个个自己去处理。
但是module shell的设计初衷之一就去执行应用模块,那么(int argc, char** argv)的参数形式就是必然的了。并且按照这样的方式,对于*产品*方式无疑是最安全的,当然还有另外一个,ROM/RAM体积占用都比原来的finsh shell小了很多。 如果是纯粹的调试,还是finsh shell的好。
- lwIP TCP/IP stack
* enable IPv6 feature.
一直没有时间去验证,lwIP正式支持IPv6的版本(1.5.0?) 也没有发布。
- device file system
* implement select API for device object in RT-Thread.
木有实现!
- gdb server or stub
木有实现!
其中,select和gdb stub都是交由prife同学来实现,但大家都知道,业余来进行这些都是无法保证的,这也从另外一个侧面反映出开源的现状,Just for fun. prife同学也不要抱有很大的心理压力,That's OK!。
欣喜的地方还是很多,例如:
armink同学提供的freemodbus移植,当然主站部分依然需要多多加强,aozima同学评估下来,这个代码能用吗?
geniusgogo同学提供的sqlite的移植;
grissiom同学提供了多项有力支持,第一个Cortex-R系列移植,Cortex-A移植中的增强,YModem、Log Trace等实用小巧的组件。
armink、geniusgogo同学都是近一年来才有所接触吧,明显的感觉到geniusgogo有成为大牛的潜质,牛头不是盖得!
文档,文档部分依然是一个老大难的问题。前段时间和傻孩子谈起,终于明白一个事实,不要催不要催,特别不要催稿!!水到渠成时,书自然成。另外jiezhi同学,借个肩膀用用啦。
许可证
随着RT-Thread 1.2.0的发布,不知道大家是否注意到github.com上RT-Thread中许可证的更改:
RT-Thread RTOS is free software; you can redistribute it and/or modify it under terms of the GNU General Public License version 2 as published by the Free Software Foundation. RT-Thread RTOS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with RT-Thread; see file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
As a special exception, including RT-Thread RTOS header files in a file, instantiating RT-Thread RTOS generics or templates, or linking other files with RT-Thread RTOS objects to produce an executable application, does not by itself cause the resulting executable application to be covered by the GNU General Public License. This exception does not however invalidate any other reasons why the executable file might be covered by the GNU Public License.
简而言之,自RT-Thread 1.2.0开始,许可协议进一步宽松了,原来需要的纸质商用许可协议也不需要了(但同时我们承诺,如果企业客户依然需要这份纸质协议,可以向我们索要,邮费自理)。另外使用RT-Thread其实就意味着认可了RT-Thread,把RT-Thread的生态环境做好,对您自身而言也是百利而无一弊,所以强烈推荐向我们反馈您的信息:您们正在产品中使用RT-Thread(后续会在官方网站上给出自助申请表格出来,填写完毕提交即可)。
前面提到了LPC4088的开发板,这个也是2013年下半年才定下来的,也是与NXP合作的硬件平台。相信有些论坛上活跃的用户已经拿到了这块板子,很漂亮精致的一块板子,而且还是6层的核心板哦。之所以选择了这个芯片,其中与NXP合作是一个重要的因素,另外一个是NXP的MCU系列芯片与RT-Thread本身的特性都蛮相吻合,从LPC17xx系列到现在的LPC40xx系列,以及LPC43xx双核系列,这些芯片都为RT-Thread提供了一个良好的运行环境。
从MCU的发展来看,越来越多的资源,越来越复杂的功能是必然的趋势(还记得PC领域的摩尔定律吗?),MCU需要好的软件来配合,好的软件也需要良好的硬件来承载。RT-Thread需要与时俱进。。。
RT-Thread 1.2.0中已经包括了基本的LPC4088移植,但是更多的例子(从最基本的点灯,内核,到一个个复杂的组件,以及我们设想的组件化结构,模块化结构)都一一在这款RealBoard 4088中体现出来,开源社区更需要的是自由的精神,希望我们的一些理念能够在RealBoard 4088上得到绽放!
从这个角度出发,RealBoard 4088是一款社区型的开发板,相应的例程、文档制作也完全社区方式来进行,都托管在github.com上(以及后续国内的git代码托管)。另外,如2013年开发者会议上提的,希望有一个自动化的测试平台:当RT-Thread有更新时,能够自动下载代码,编译,升级更新,然后运行设定好的一些测试代码,最后把测试结果再提交到网站上来,我们希望能够在RealBoard 4088上得到实现。即,RealBoard 4088会做为一个RT-Thread 1.2.x系列版本的验证平台来使用。
关于RealBoard 4088的价格,既然是硬件板子那么必然会有价格的问题。我们首批做了50套,前期已经在论坛上预定出去部分。后面正式上架时,因为它是一款面向社区化的Board,正式的价格也比较亲民,基本上是淘宝上类似板子的最低价格了。
Bernard Xiong
2014.01.07 顶支持下
顶支持下 {:biggrin:} 必须支持国产 功能好多,干脆搞出来一个branch for mobile os RT-Thread 官网提供RT-Thread 1.2.0下载 RT-Thread 1.2.0(RT-Thread 官网) 下载。谢。
支持. 手里活忙完就开始弄. {:lol:} 最近准备学习,发现我这儿官网被墙了。 wangchin1988 发表于 2014-1-8 09:55
最近准备学习,发现我这儿官网被墙了。
服务器爆了,正在维修。 支持。。。 众人拾柴火焰高,真是越来越NB了 小菜我想知道rt和ucos的区别在哪 要是能用到手机上就好了。 必须支持!祝福祝愿越做越强越大! 能否加入UCGUI,EMWIN支持很多人对那两个比较熟悉,而且做了很多现成产品 也支持下,不知UCOS和这个哪个更适合些。 我擦,将来有时间再好好研究这个东西。 支持,那是必须的,学习中! 支持一下,发展越来越好了 258963519 发表于 2014-1-24 19:50
支持一下,发展越来越好了
+1 支持一下 必须支持! ding!!!!!!!! mark 与RT-Thread 2.0.0 Alpha同时发布的还有1.2.x系列的bug修正版本:RT-Thread 1.2.1 下载链接地址。
主要修复的问题是:
* LPC176x、STM32F107中使用了组件初始化而导致系统多次初始化或没有初始化的问题;从入门的角度考虑,组件初始化并不适合于这种BSP发布的方式,所以这次发布中把组件初始化管理器给移除了。
* 内核中,对于suspend thread时,也把这个thread timer给停止了;
关注~~{:smile:} {:sweat:}{:sweat:} 加入sqllite很给力,支持 非常好,感谢。5年前使用的是RT的系统,写的论文,历历在目! RTT,刚刚开始摸索中。 最近在看RTT,功能很强大啊,就是代码风格还不习惯,可能是受ucos影响太大了。 支持,国产精品 真的好好的学习一下,谢谢! RT-Thread 有时间学习一下
页:
[1]