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

否則開發板啟動不了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM