rt_tick_from_millisecond()
compilation warning issue;ENOTSUP
in libc_errno.h.rt_int8_t/.../rt_uint32_t
and other basic data types can be defined by BSP itself. (It is recommended to put them into the rtconfig_project.h file, so that this file can be automatically included in rtconfig.h when menuconfig generates it.)RT_Device_Class_Sensor
type devices;rt_hw_spin_lock/rt_hw_spin_unlock
is redefined as the disable/enable interrupt.rt_strnlen()
function in kservice.c.itctrol()
function not support to control socketfd issues in SAL;More board support is added to the new STM32 BSP:
Add the ARC support for Synopsys Design Ware ARC EM Starter Kit (Synopsys provides maintenance and support);
The SCI driver is added to the TMS320F28379D BSP (xuzuoyi).
Add W60X Wi-Fi SoC chip BSP from Winner Microelectronics Co.,Ltd. (Winner Micro and RealThread provide maintenance and support);
Fix the UART2 IO configuration issue in X1000 UART driver (Zhou Yanjie);
Add SConscript file for each CPU porting.
Cleanup the libcpu/arm/cortex-a code;
The _rt_hw_context_switch_interrupt/_rt_hw_context_switch is separated in TI DSP TMS320F28379D BSP (xuzuoyi);
scons –target=makefile -s
. Then developer can use make to build RT-Thread under Linux or Windows.scons –target=eclipse -s
, which will put the necessary information in .cproject
and .project
files in current BSP folder. The developer can use Eclipse to build RT-Thread.fd_is_open()
issue: when the sub-path is the same in different mounted filesystem.getcwd()
function of DFS (the critical lock/unlock is different in SMP environment);list_thread/list_*
implementation of finsh cmd to avoid multi-core competition case;aio_result
issue, which is returned by aio_read_work
in AIO; (fullhan)_sys_istty
function in armlibc to correctly handle STDIN/STDOUT/STDERR; (gbcwbz)_write_r
function in newlib to correctly handle stdout.at_recvfrom()
function in at_socket;sal_socket_ops/sal_proto_ops
and sal_proto_ops is implemented with gethostbyname/getaddrinfo ops etc.ulog_strcpy
, which should be not exceed ULOG_LINE_BUF_SIZE
;can_rx/can_tx
issue, which is not cleared to NULL when CAN device is closed in drivers/can; (xeonxu)RT_SERIAL_USING_DMA
option in drivers/serial;blk_size
issue in rt_rbb_blk_alloc()
;_get_descriptor
function;cosnt char *
in rt_hw_interrupt_install
function; (liruncong)$
warning issue in Kconfig files of each BSP;e31207077
)str(Dir('#'))
;scons --pyconfig-silent
command to add some Kconfig configurations and to generate .config
and rtconfig.h
files;scons --dist
command to adapt to the new BSP framework;system32
path to environment variables to avoid the cmd
command cannot be found;PYTHONHOME
variable to environment variables to avoid PYTHON environment issue;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.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)RT_USING_IDLE_HOOK
configuration in Kconfig becomes a separate configuration item, not limited to RT_USING_HOOK
; (geniusgogo)select()
issue for UDP communication in AT component. Add the receiving data handling to complete the clearing of received event;bsp/imxrt
directory; A touch framework is added to bsp/imxrt
, and later will be moved into components/drivers
directory;scons --pyconfig
mode, which has a TK UI configurator; (weety)-std=c99
is not added into C-compiler flags), but please note: PThreads component failed in 2.5 and new version of newlib.libc/libdl
.rtdbg.h
file.RT_USED
is used to keep symbols and avoid to add more argument or section in link phrase.int finsh_set_prompt (const char * prompt);
routine for setting a custom prompt for msh;libc/libdl
component;scons --dist
function to make distribution for a BSP.scons --target=vsc -s
to generate friendly configuration files for VSCode;Improve the comments of rtdbg.h file. In RT-Thread, just use following code to add debug log feature:
#define DBG_ENABLE
#define DBG_SECTION_NAME "[ MOD]"
#define DBG_LEVEL DBG_INFO
#define DBG_COLOR
#include <rtdbg.h>
When close the DBG_ENABLE definition, the debug log will be closed. Otherwise, the dbg_log(level, fmt, ...)
can be used to print debug information.
DBG_SECTION_NAME - The prefix information for each log line; DBG_LEVEL - The debug log level; DBG_COLOR - Whether use color log in console.
_REENT_SMALL
macro when enable newlib nanao;rt_device_create/destroy
APIclock_time
from pthreads and add a new clock id: CLOCK_CPUTIME_ID
RT_USING_CPLUSPLUS
in GNU GCC configurationscons --memuconfig
to enable it;This 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.
The change log since last stable version:
版本: RT-Threadv2.0.1及v2.1.0 alpha
RT-Thread v2.0.1是2.0这个系列的bug修正版,而v2.1.0 alpha则是当前开发主干的一个技术预览版本,它给出了v2.1.0这个版本系列的技术预览情况,不建议用于实际产品中,因为它可能存在大量的一些bug。
而v2.1.0 alpha这个技术预览版则沿着最初设定的roadmap技术路线进行,这其中主要包括:
lwip更深度的集成:把它集成到RT-Thread的文件系统接口中,这样Linux/Unix下的一些socket网络应用能够更顺利的移植到RT-Thread上,也为以后可以应用到更多地方的select接口铺路。
这部分是和RT-Thread发布本身无关,但也是这个版本系列设定的目标之一:开启一个云端集成开发环境的时代!云端会是什么样的,请用现代化的浏览器打开CloudIDE
经历了大约1年的时间,RT-Thread v2.0.0的最终版本终于发布出来了。自这个版本开发以来,引入了多项功能、修改、增强等。感谢参与的诸位开发人员! 以下是自v2.0.0 RC版本以来的详细更改记录。后续我还会给出v2.0.0版本自v1.2.x版本的主要不同、看点,以及给出下一个版本的roadmap规划。
发布时间:2014/11/4
随着RT-Thread功能越来越多,如何发布版本也成为一件头疼的事情,因为需要仔细对比最近三个月来的修改记录。这次的发布距离上一次beta版本依然是三个月的时间,但按照发布计划已然推迟了一个月进行发布。
在这三个月中,开源社区上也发生了很多有趣的事情:
阿嘉的使用RT-Thread的四轴飞行器毕业设计惊艳亮相,采用了1个STM32F4 + 8个STM32F1进行飞行控制,总计9个MCU的另类实现方式;沿循四轴飞行器的路线,与国内匿名团队合作,采用RW009 Wi-Fi控制的迷你四轴飞行器也在稳步推进过程中。
RT-Thread做为一个开源组织参与的CSDN开源夏令营结出了丰硕的果实: 由hduffddybz参与的IPv6协议栈移植(最新版本的lwIP-head版本移植)在这次发布中已经包括进来,从而能够在使用RT-Thread的小型设备上实现TCP/IP v4/v6双栈的支持; 由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中打开设备时,加入流标志进行打开;
发布时间:2014/8/1
v2.0.0这个版本系列是RT-Thread当前的开发分支,如果要上新项目,建议使用这个版本来进行,预计这个版本的正式版会在年底发布。欢迎对这个版本进行测试、并反馈问题,能够早日进入到稳定版。
v2.0.0版本的开发相对活跃些,开源社区提供了强有力的支持:如Arda贡献的TM4C129x移植,Romeo贡献的frdm-k64f移植,xiaonong的LPC4300移植等,以及睿赛德服务公司捐赠的Zynq7000移植,MB9BF618S移植,以及SPI WiFi网卡的驱动代码等。
更改记录
发布时间:2014/4/8
RT-Thread 2.0.0分支的第一个技术预览版本,仅用于展示2.0.0发展分支的演化动向(按照roadmap,2.0.0这个分支会有一部分RT-Thread和Linux互补性的技术,为Linux增加更好的实时性,为RT-Thread增加更多的功能性,这份技术预览版正是朝着这个目标而努力),欢迎反馈建议和问题。
[发布后记]
RT-Thread 2.0.0. Alpha版本相比于RT-Thread 1.2.1,新的特性主要有两部分:
目录中有 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。
发布时间: 2014/4/8
在原有的1.2.0版本的bug修正版本,也是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,组件方面:
下面是自RT-Thread 1.2.0 RC版本发布以来具体的变更履历:
其他:
发布时间: 2013/10/10/ 10:19
主要说明: 该版本新增ARM Cortex-A8的支持(BeagleBone),新增UNITY-2内核的支持(SEP6200),新增Ymodem协议。
[内核]
[组件]
工具:
分支:
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
版本: 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 的移植。
主要变化:
修复问题点:
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------
版本: 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增加更多的信息,同时中断服务例程也可以携带用户自定义的参数类型。
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