本文转载自 http://blog.csdn.net/flydream0/article/details/10078321 由于python与scons的版本不同可能引发各种奇葩的不兼容的问题,所以按照原文的版本补充下载链接。仅作交流学习之用,文章版权归原作者所有,同时也感谢原作者的指导,我成功的配置了RTT并编译通过
1 下载安装Python2.7
目前此版本已经比较老,原文给定链接已经失效,重新贴上链接
http://www.python.org/download/releases/2.7.5/
下载时注意32位和64位
2 下载并安装scons
现在已经出来了2.3版本,但是只是为了编译RTT,所以还是按照教程下载2.2,在百度快照中找到了老版本的链接
http://prdownloads.sourceforge.net/scons/scons-2.2.0-setup.exe
3 配置环境变量
在桌面上右击我的电脑,然后属性,选择高级,环境变量,在系统变量下找到path变量,然后添加两个路径进去:
C:\Python27;C:\Python27\Scripts,然后确定,关闭对话框.
最后打开cmd输入path再次仔细检查路径中是否已经包含这两个路径了.
4 下载和解压RTT源码
这里以下载RTT V1.1.1为例,下载地址:https://rt-thread.googlecode.com/files/RT-Thread_1.1.1.7z
解压.
5 修改编译配置文件
打开任意一个BSP,这里以STM32F10x的BSP为例,用MDK的编译工具来编译.
首先在STM32F10x目录用文本编辑工具如记事本或UE打开的rtconfig.py,修改如下:
ARCH='arm' CPU='cortex-m3' CROSS_TOOL='keil' if os.getenv('RTT_CC'): CROSS_TOOL = os.getenv('RTT_CC') #device options # STM32_TYPE = # 'STM32F10X_LD','STM32F10X_LD_VL', # 'STM32F10X_MD','STM32F10X_MD_VL', # 'STM32F10X_HD','STM32F10X_HD_VL', # 'STM32F10X_XL','STM32F10X_CL' STM32_TYPE = 'STM32F10X_HD' # lcd panel options # 'FMT0371','ILI932X', 'SSD1289' RT_USING_LCD_TYPE = 'SSD1289' # cross_tool provides the cross compiler # EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR if CROSS_TOOL == 'gcc': PLATFORM = 'gcc' EXEC_PATH = 'D:/SourceryGCC/bin' elif CROSS_TOOL == 'keil': PLATFORM = 'armcc' EXEC_PATH = r'D:/Keil' elif CROSS_TOOL == 'iar': PLATFORM = 'iar' IAR_PATH = 'C:/Program Files/IAR Systems/Embedded Workbench 6.0 Evaluation'
上面第3行和第28行为要修改的内容。
第3行:CROSS_TOOL=’keil’表示使用MDK来编译,
第28行:EXEC_PATH = r’D:/Keil’ 这里表示MDK的安装路径.
接下来还需要修改SConstruct文件.
在当前目录找到SConstruct文件,用记事本或UE打开,找到如下文字:
if os.getenv('RTT_ROOT'): RTT_ROOT = os.getenv('RTT_ROOT') else: RTT_ROOT = os.path.normpath(os.getcwd() + '/../..')
将上面4行全部删掉,然后修改为:
RTT_ROOT = r'E:\projects\other\RT-Thread_1.1.1'</li>
即你的RTT源码目录.
这里的路径网上其实用:
RTT_ROOT = ‘E:\projects\other\RT-Thread_1.1.1’
RTT_ROOT = ‘E:/projects/other/RT-Thread_1.1.1′
RTT_ROOT = r’E:\projects\other\RT-Thread_1.1.1′
RTT_ROOT = r’E:/projects/other/RT-Thread_1.1.1’
这四种方式都可以,四种我都试过.
这里的意思是要设置RTT_ROOT这个变量的值为RTT源码根目录.
这里环境就配置完了,下面就可以使用scons来编译了.
6 使用scons编译RTT
打开CMD,cd到当前BSP目录:
cd /d E:\projects\other\RT-Thread_1.1.1\bsp\stm32f10x
然后输入scons就可以编译了.
scons -j4
编译结果如下例所示:
-j4表示同时使用4个线程来编译,这样在编译比较大的工程时可以加快速度,当然RTT并不是很大的工程,可以不必要输入-j4.
如果要生成MDK工程,则使用“scons –target=mdk4 -s”(注意target前面是两个“-”号)命令生成MDK工程,生成成功以后,在工程目录中会生成“project.uvproj”,点击用MDK打开即可进行编译、下载、仿真等
0 条评论
沙发空缺中,还不快抢~