1. 程式人生 > >Micropython學習(二)STM32移植

Micropython學習(二)STM32移植

在實驗室找了塊微雪的STM32F407ZET6(Micropython支援的系列)的核心板,移植下Micropython的原始碼,也遇到些問題,最後解決了,在這寫下過程記錄一些經驗教訓。

首先本人環境為WIN10+Ubuntu18.04(非虛擬機器,當然也可以用虛擬機器,根據情況選擇)

所需工具

第一步 下載原始碼

如果沒有安裝git的話,先安裝git,然後下載原始碼,不建議從github上直接下載(我試過後續編譯會出現錯誤,直接下的裡面的submoudle可能找不到)

sudo apt-get install git
git clone https://github.com/micropython/micropython

下載完之後可以在電腦上看到一個micropython的目錄,裡面內容如下。

第二步 編譯

首先編譯之前需要安裝gcc和gcc-arm-none-eabi交叉編譯器。

sudo apt-get install gcc
sudo apt-get install gcc-arm-none-eabi

如果沒有找到可以更新下,或者更換國內源。

sudo apt-get update

安裝完之後開搞!

快捷鍵Ctrl+Alt+t 開啟終端,輸入ls檢視目錄。

然後進入micropython目錄

cd micropython

可以在poirts/stm32/boards下看到micropython支援的處理器,挺多的,未來會更多。

進入boards這個目錄,我們需要的F4系列的,即STM32F4DISC。

cd ports/stm32/boards

複製STM32F4DISC並重命名為HIBOARD

cp -r STM32F4DISC HIBOARD

然後回到原始碼目錄micropython下,輸入:

git init
git submodule update --init

這一步是將原始碼中的一些子模組submoudle下載下來(可以看原始碼目錄下的README檔案就清楚了)。

最後在stm32目錄下編譯執行,生成我們所需要的韌體DFU或者HEX形式的。

make BOARD=HIBOARD

最後順利生成韌體。

 進行到這你已經成功大半了,接下來下載微控制器驗證。

第三步 燒錄

需用前面下載的工具下載,將開發板的boot0 boot1 狀態為 1 0設定為從system memery啟動,設定好後重啟開發板,執行剛下載的上位機軟體,dfu軟體會識別到開發板,choose編譯生成的DFU檔案,upgrade即可(其實就是bootloder燒寫)。

 之後就是最後見證奇蹟的時刻了,但是我的板子沒有任何反應,沒有出現磁碟PYBFLASH,心塞啊!

試著找解決辦法,網上找了很多(換電腦等),結果我將啟動方式設定為FLASH啟動,磁碟出現了,這麼一想也對,平常的微控制器的程式也是放在FLASH裡的前幾頁的,板子執行肯定是從FLASH裡找(實踐出真知啊)。

 到這基本完成了,最後來玩一下micropython在微控制器上跑吧。使用putty串列埠連線。注意win10會自動安裝驅動,但是win7就需要自己更新驅動,驅動檔案就在PYBFLASH,pybcdc.inf。

putty串列埠連線如下:

 接下來就是體驗micropython控制微控制器的樂趣了,不同於python指令碼。

結語

也可以根據自己的需要編譯原始碼,需要修改一些檔案,水平有限就沒有相關編譯。接下來會在pyboard上進行實驗和學習,希望有興趣的小夥伴和我一起學習討論。