RT-Thread 学习笔记(一)---配置RT-Thread开发环境

时间:2022-01-24 19:33:46

前言

一个偶然机会接触到了一个陌生的名字---RT-Tread,想一探究竟,从它的手册中发现这个陌生的嵌入式操作系统有着许多优秀的表现,于是下决心学习研究下。下面记录了RT-Thread的学习过程,不妥之处请予指正。

软件环境:Win7,Keil MDK 4.72a, IAR EWARM 7.2, GCC 4.2

硬件环境:Armfly STM32F103ZE-EK REV 3.0开发板

参考文章:

【1】R​T​-​T​h​r​e​a​d​配​置​开​发​环​境​手​册

【2】RT-Thread 教程连载点击打开链接

【3】STM32 + RT Thread OS 学习笔记


1,RT-Thread开发环境配置

1.1 安装python 以及SCons构建工具

RT-Thread使用SCons作为默认的构建工具。SCons基于Python开发,因此我们需要先安装python,再安装SCons。

(1),安装python,其版本号为2.7点击打开链接,下载完毕后安装,如下图。但这不是必需的,您完全可以使用2.6或其他版本。python3.2版本不能运行scons

RT-Thread 学习笔记(一)---配置RT-Thread开发环境


一路点击下一步(next)即可。默认情况下,这个程序会被安装到 C:\Python27 目录下,我们要将这个目录加入到系统
PATH变量中。方法如下:

在计算机(windows 7)上右击,选择【属性】,然后在弹出对话框中点击【高级系统设置】,弹出系统属性对话框->高级->环境变量,如下图。注意第五步是“; C:\Python27 ”,其中的分号是英文输入状态下的符号。

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

然后,点击确定关闭对话框。


(2),安装SCons

Scons下载地址: http://sourceforge.net/projects/scons/files/scons/2.3.2/,软件版本是2.3.2这里选择微软window版本,下载完毕后点击安装,SCons 会被自动安装到python 安装目录中即C:\Python27\Scripts目录,如下图。

RT-Thread 学习笔记(一)---配置RT-Thread开发环境


参考上一节,将上述路径同样添加到系统PATH 变量中。用echo %path%命令可以看到系统变量添加的结果,如下图。

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

1.2,安装编译工具链

RT-Thread可以支持GCC,Keil MDK 或者 IAR的EWARM 编译工具的一种或全部。

(1),关于GCC,推荐一篇文章sourcery g++ lite建立交叉编译环 ,里面相关GCC的介绍,下载地址是 codesourcery,需要注册,这里安装的版本arm-2012.09-63-arm-none-eabi.exe,如下图,可以更改安装位置。

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

按照默认安装,结束后,gcc 的安装路径就会被自动加入到系统环境变量中去。

(2),KeilMDK 和 IAR EWARM安装,因为其为商业软件,这里不做介绍。


2,编译测试

2.1,源码目录结构

通过SVN下载到本地的SVN目录的源码结构如下图。

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

2.2,配置SCons脚本

进入到RT-Thread的板级工程目录bsp下面,可以看到很多开发板工程目录,这里现有的开发板是armlay(安富莱)的STM32F103ZE-EK REV3.0,因此只需将stm32f10x目录连同文件复制一份并重命名为stm32f103ze-ek(armfly),如左下图。然后进入该目录找到readme.txt和rtconfig.py,如右下图。

RT-Thread 学习笔记(一)---配置RT-Thread开发环境RT-Thread 学习笔记(一)---配置RT-Thread开发环境

上面文件中:

rtconfig.py 此文件必须修改。

rtconfig.h 此文件用于裁剪rt-thread(根据您的需要修改)

打开readme.txt,可以看到如下内容:

-- cn --
按需要生成工程文件:
1. 修改 rtconfig.py :
CROSS_TOOL='keil'           #使用的工具链
STM32_TYPE = 'STM32F10X_HD' #STM32对应的型号.
2. 修改 rtconfig.h 配置需要的功能.
2. 执行 scons --target=mdk  生成MDK工程文件.

note: 需要安装 python,scons.

-- en --

上面内容告诉我们需要指定的编译器和开发板上芯片类型。

RT-Thread 的通过SCons 支持三种编译器,编译器的选择在rtconfig.py 中指定,如果您按照上面的步骤安装了python和SCons,那么可以在 rtconfig.py 上右键点击Edit with IDLE 编辑器打开, 部分内容如下(红色粗体字部分是根据自己的实际环境和需求修改的结果):

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

 

说明:上面编译工具默认是IAR编译器链接,以windows平台为例,因此,路径都是windows路径风格,对于linux,只要修改路径为linux风格即可。 在路径的前面加上了小r,表示后面的内容不需要转义,因为windows路径风格是使用'\'作为分隔符,与转义字符冲突。


SCons命令的常用选项:

scons -c

这个命令会清除编译出来的文件

scons -j4

表示并行4个任务同时运行,适用于多核多线程。

scons --target=mdk4 -s

生成project.uvproj,不过您需要查看一下当前bsp目录下是否提供了template.uvproj文件,因为这个命令依赖template.uvproj或template.uv2。

scons --target=iar -s

生成project.ewp和project.eww,不过也同样依赖于当前bsp目录下是否提供了是否提供了template.ewp工程模板。

保存上面文件,打开cmd命令行窗口,然后先直接输入E:使用cd命令切换到 bsp\stm32f103ze-ek(armfly)目录下,如下图。

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

然后输入 scons 后回车,运行结果如下:

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

然后将上面rtconfig.py脚本CROSS_TOOLS修改如下:

CROSS_TOOLS='iar'

保存后,重新执行scons命令,结果如下:


RT-Thread 学习笔记(一)---配置RT-Thread开发环境

然后在上面的变量改回去,如下:

CROSS_TOOLS='keil'

修改后保存,重新执行scons命令

RT-Thread 学习笔记(一)---配置RT-Thread开发环境

由上面测试已经知道,iar和gcc不会出现这个错误的。但用keil编译结果有一处告警和一处链接错误。

注意:此时你可能会遇到一个错误,告警提示是链接时未找到ARM 库,link出错。

通过网上搜索说是scons 构建工程组件不能自动加入,自己没搞明白,只能暂且搁置,有待以后研究。


到此为止,我们为stm32f103ze-ek开发板构建了一个RT-Thread开发环境。