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

  • Post author:
  • Post category:其他


前言


一个偶然机会接触到了一个陌生的名字—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


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

PATH变量中。方法如下:


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






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




(2),安装SCons


Scons下载地址:



http://sourceforge.net/projects/scons/files/scons/2.3.2/



,软件版本是2.3.2这里选择微软window版本,下载完毕后点击安装,SCons 会被自动安装到python 安装目录中即C:\Python27\Scripts目录,如下图。





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

1.2,安装编译工具链


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


(1),关于GCC,推荐一篇文章


sourcery g++ lite建立交叉编译环

,里面相关GCC的介绍,下载地址是



codesourcery


,需要注册,这里安装的版本arm-2012.09-63-arm-none-eabi.exe,如下图,可以更改安装位置。




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


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

2,编译测试


2.1,源码目录结构


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



2.2,配置SCons脚本


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





上面文件中:


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 编辑器打开, 部分内容如下(红色粗体字部分是根据自己的实际环境和需求修改的结果):





说明:上面编译工具默认是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)目录下,如下图。


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




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


CROSS_TOOLS=’


iar




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





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


CROSS_TOOLS=’


keil




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



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


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


通过网上搜索说是



scons 构建工程组件不能自动加入



,自己没搞明白,只能暂且搁置,有待以后研究。




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












版权声明:本文为aping_cs_dn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。