ubuntu16.04搭建RTT开发环境

本文主要讲述ubunt16.04系统搭建RTT开发stm32f107芯片:

RTT下载路径:https://www.rt-thread.org/page/download.html

RTT版本:v3.1.3

1. 下载安装交叉编译工具链

  下载gcc-arm-none-eabi交叉编译工具链,直接使用apt install gcc-arm-none-eabi进行安装 ,默认安装目录应该在 /usr/bin/arm-none-eabi-gcc-xxx, (xxx代表当前版本号)

2. 修改编译工具

  将RTT_EXEC_PATH 添加到环境变量:在/home/sean/.profile 文件末尾添加 export RTT_EXEC_PATH =/usr/bin/arm-none-eabi-gcc-4.9.3 ,保存然后重启系统;

  或者按如下操作:

    编辑stm32f10x-HAL里的文件rtconfig.py

    修改 CROSS_TOOL 为 gcc   

     修改编译器路径EXEC_PATH   EXEC_PATH = '/usr/bin/arm-none-eabi-gcc-4.9.3'

  

3. 下载RT-Thread编译工具(linux环境下构建工程一般有makeflie 和 scons 等几种机制,RT-Thread采用scons构建项目工程,编译直接使用scons命令即可,相当于make指令)

  该系统使用scons编译,使用 apt install scons 进行安装

4. 在 home/sean/work目录下新建rtthread目录,将下载的源码拷贝到 rtthread 目录;

5.为了方便在系统的任意地方进行rtthread的开发,需要设置部分环境变量:

  将 RTT_ROOT 加入到环境变量:在/home/sean/.profile 文件末尾添加 export RTT_ROOT=$HOME/work/rtthread/ ,保存然后重启系统;

  如不将RTT_ROOT加入到环境变量,则需要再bsp目录下的stm32文件夹下创建新的板级支持包,然后使用  scons --dist 命令,使用此命令会在 BSP 目录下生成 dist 目录,这便是开发项目的目录结构,包含了RT-Thread源码及BSP相关工程,不相关的BSP文件夹及libcpu都会被移除,并且可以随意拷贝此工程到任何目录下使用。(建议使用该方法)

6.拷贝源码库目录中bsp文件夹下的stm32f10x-HAL文件到 /home/sean/work 目录,进入 /home/sean/work/stm32f10x-HAL 然后运行scons --menuconfig,(或者在源代码库里面的BSP文件夹里面的 stm32f10x-HAL 运用此命令)此时可以正常显示配置界面

7. 使用scons命令编译工程。

 

======================================================================================

部分问题解决:

1. 增加package包后,更新包出现如下问题

sean@ubuntu:~/work/stm32f10x-HAL$ source ~/.env/env.sh 
sean@ubuntu:~/work/stm32f10x-HAL$ pkgs --update        
Traceback (most recent call last):
  File "/home/sean/.env/tools/scripts/env.py", line 32, in <module>
    from cmds import *
  File "/home/sean/.env/tools/scripts/cmds/cmd_package.py", line 41, in <module>
    import requests
  File "/usr/lib/python2.7/dist-packages/requests/__init__.py", line 53, in <module>
    from .packages.urllib3.contrib import pyopenssl
  File "/usr/lib/python2.7/dist-packages/urllib3/contrib/pyopenssl.py", line 54, in <module>
    import OpenSSL.SSL
  File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import rand, crypto, SSL
  File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 118, in <module>
    SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'

解决办法:

使用下面指令更新pyOpenSSL

sudo python -m easy_install --upgrade pyOpenSSL

 2. stm32系列参考BSP目录:

  目前RTT支持STM32芯片大部分是基于开发板类型,所以如果自己手里的板子不在支持的开发板列表中,需要自己按照BSP新建文档新建自己的BSP(这里所谓的BSP,其实就是针对你实际开发板的工程项目……);(实测在stm32f10x-HAL文件中使用scons --menuconfig命令选择芯片型号并不管用,menuconfig并不会智能的去配置stm32的库文件,导致编译的时候会报错,为了工程稳定,建议还是按照教程从0开始新建BSP!!!)

3. stm32HAL库升级时,CMSIS 文件最好不要覆盖,如果需要覆盖,需要修改对应的启动文件跳转指令:

比如stm32f429启动文件需要修改如下内容

bl  main 修改为 bl  entry

否则开发板启动不了。

 

posted @ 2019-10-22 19:43  迷途小菜鸟  阅读(1905)  评论(0编辑  收藏  举报