Eclipse 4Diac 移植到STM32H746(1)

  Eclipse 4Diac 網站上有介紹將4diac的Forte 移植到freeRTOS 的簡單介紹,

https://www.eclipse.org/4diac/en_help.php?helppage=html/installation/freeRTOSLwIP.html

但是網絡上並沒有如何將forte 移植到STM32F上的詳細說明。我成功地將4diac 移植到了nucleo STM32H743 板上。分享我的方法:

  開發平臺

  在ubuntu OS 下開發,畢竟make,cmake gcc這些工具在linux OS 上感覺好一點。

  用到的工具

        cmake-gui

      ST 公司的trueStudio 開發工具。它是基於eclipse 開發環境的,與eclipse 相容。

  ST公司的STM32 CubeMx 工具

  過程

  下載forte 的源碼,我使用的是forte-incubation_1.11.0

  在stm32 cubeMX下配置一個nucleo 74H743 的項目,上面包含一個freeRTOS和lwip 中間件,產生trueStudio的項目代碼

  在 cmake 上Where is the source code 指向forte-incubation_1.11.0的目錄。

         在forte-incubation_1.11.0的目錄中添加一個文件夾build,將CMake中的 Where to build the binaries 指向build。

    按Configure 鍵,選擇C++和C的交叉編譯工具,這時要使用trueStudio 的工具。我的truestudo目錄是在/opt/下的。

      /opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.3.0/ARMTools/bin/

   C++ 選擇了/opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.3.0/ARMTools/bin/arm-atollic-eabi-c++

   C 選擇了/opt/Atollic_TrueSTUDIO_for_STM32_x86_64_9.3.0/ARMTools/bin/arm-atollic-eabi-gcc

   主要的難點

    編譯過程中的主要難點是如何將forte 和stm32的項目結合在一起編譯。在4diac的論壇上有編譯成功的人提供了一個思路。就是將forte 編譯成爲一個靜態庫,然後結合到STM32F的項目中。我也決定採取這中方法。

    配置cmake 的forte部分

  1 FORTE ARCHITECTURE 選擇FreeRTOSLwip

2 勾選FORTE_BUILD_STATIC_LIBRARY,去掉原來的FORTE_BUILD_EXCUTABLE

3 重要的地方是下面的FORTE_FreeRTOSLwIP_INCLUDES 要將stm32項目中關於freeRTOS和LwIP的Include目錄包含進去。但是STM32項目的目錄結構好複製的樣子,搞了一個晚上都沒有搞定。第二天早上,我決定將STM32 的某些include 單獨拷貝到一個目錄中。供編譯forte時使用。

  4 還有幾點

     1 Inc 中的main.h 要去掉#include "stm32f4xx.h"

     2 按照Cmake的提示。
 

freeRTOS with LwIP arch needs the following flags to be defined (please do it in lwipopts.h):

#define LWIP_COMPAT_SOCKETS 1

#define LWIP_IGMP 1 //to use IP_ADD_MEMBERSHIP

#define LWIP_TIMEVAL_PRIVATE 0 

 在lwipopts.h 中添加了這三個#define

   5 在forte-incubation_1.11.0/build 的目錄下進入命令行程序:

 >make

終於成功了

libforte-static.a 就是我們想要的東東。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章