天天看點

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

本文承接《Micropython研究記錄:一、Linux下STM32編譯環境的搭建——步驟總述》,連結:https://blog.csdn.net/weixin_41875247/article/details/88191587

1.開啟并進入已經裝好的Ubuntu16.04系統:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

2.打開終端:在桌面空白處右鍵->Open Terminal:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

3.安裝vim:

檢視vim版本,看是否安裝有vim:

輸入指令:vim --version

回車;

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

可以看到vim并沒有安裝,我們需要線上安裝vim:

輸入:sudo apt-get install vim

回車;

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

這裡輸入我們的使用者密碼,輸入密碼是沒有顯示的,閉着眼睛輸完,按回車:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

這裡我密碼輸錯了一次,輸了兩次,到上述畫面,問你是否繼續,輸入Y,回車:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

然後就開始自動下載下傳,很快便會完成安裝:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

這時,我們再次輸入:vim --version

看一看,現在出現版本資訊了,說明安裝好了:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

4.安裝git并在git官網克隆micropython源碼:

安裝git:

輸入:sudo apt-get install git

回車,之後同樣輸入Y,回車,很快會完成安裝:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

在git官網克隆micropython源碼:

輸入:git clone https://github.com/micropython/micropython.git

回車:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

可以看到系統開始在官網下載下傳克隆源碼,直到完成;

5.安裝gcc-arm-none-eabi:

點選這個圖示,打開可視化的檔案管理器:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

将下載下傳好的gcc-arm-none-eabi-7-2017-q4 拖進去:(若這裡無法拖動,則需重新安裝VMware Tools,如何安裝自行百度,很簡單,大部分都是可以直接拖進去的)

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境
Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

對它進行右鍵,點選“Extract Here”,解壓到目前目錄:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

等待進度條十幾秒。。。:

之後獲得解壓出來的源碼檔案夾,我們右鍵他,選擇重命名,删掉後面一坨,保留名字為gcc-arm-none-eabi:(為了後面添加路徑的時候友善)

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

添加gcc-arm-none-eabi的PATH路徑:

在終端輸入:vim ~/.bashrc

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

這便打開了bashrc檔案,按鍵盤的方向鍵下箭頭,将光标移動到最後:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

目前這種狀态是無法編輯該檔案的,光标移到此處,點選鍵盤 i 鍵,視窗下方出現“-- INSERT --”,這時進入編輯模式:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

現在在把光标往後移一格,再回車到第二行,輸入:export PATH="/home/testroot/gcc-arm-none-eabi/bin:$PATH"

如圖:

其中# added for gcc-arm-none-eabi這一行是注釋,可加可不加,需要注意的是路徑中testroot這一項,需根據你的使用者名來修改!

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

到現在,點選鍵盤ESC鍵,再輸入“:wq”,然後回車儲存退出:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

之後關閉終端視窗,再重新打開,輸入arm,再輕按兩下Table鍵,出現如下情況,說明路徑添加成功:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

6.編譯環境:

cd到克隆好的micropython目錄下,然後執行:make -C mpy-cross

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

回車後,出現如下畫面,表示成功:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

7.終于要開始編譯固件了,但是按上述步驟後,編譯固件會遇到問題,問題我會記錄展示出來,并列出解決辦法:

繼續cd到micropython目錄下的stm32檔案夾(我是用STM32F7的MCU下手的):

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

執行:make BOARD=STM32F7DISC

執行該句,意在編譯STM32F7DISC開發闆的固件,若成功,在stm32目錄下會出現build-STM32F7DISC檔案夾,且檔案夾下有很多檔案,其中包含firmware.dfu和firmware.hex固件檔案,然而并不如我意,雖然出現了buil-STM32F7DISC檔案夾,但是顯然裡面的 東西不對,隻有這麼些:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

終端顯示資訊如下:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

可以看到,第一個紅框内容是顯示沒有stm32lib庫的錯誤,然後系統自動開始下載下傳克隆。

完成後,開始繼續編譯,出現第二個紅框的錯誤,被強行停止編譯,編譯并未成功!

。。。。

經過無數折騰,終于在git官網文章裡找到這麼一段話:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

需要更新git,于是我在終端輸入執行:git submodule update --init

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

開始更新。。。。,等待。。。有點漫長,因為git的下載下傳速度實在太慢了。。。。。

。。。

在等待期間,我們先把之前失敗的build-STM32F7DISC檔案夾删了,以便一會兒重新編譯:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

繼續等。。。。。

。。終于好了:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

再次輸入并執行編譯指令:make BOARD=STM32F7DISC

于是終端出現了很長很長很長很長的編譯過程顯示:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

一張圖截不完,反正就是很長,直到下圖,表示編譯成功完成了:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

然後去看看檔案夾裡有沒有固件檔案了:

Micropython研究記錄:一、Linux下STM32編譯環境的搭建——在Ubuntu16.04系統中搭建編譯環境

哈哈!!!終于成功了!

到此,說明編譯環境成功搭建完成!

接下來就是研究如何修改闆子的定義檔案,修改引腳映射,移植到自己的闆子了。

繼續閱讀