在Win10的應用商店中,提供了Linux的子係統,這是實際上是一個虛擬機軟件,與virtualbox和vmplayer功能類似。下麵就介紹在Linux子係統中安裝工具鏈和編譯micropython的方法。
先確認一下Windows10係統的版本,如果是LTSB版(Long Time Service Branch 企業長期服務版),就需要更換到企業版。
如果還沒有安裝過Linux子係統功能,首先需要在控製麵板的“程序和功能”中允許適用於Linux的Windows子係統功能,並重新啟動計算機。

然後就可以在應用商店中,通過搜索Linux或者ubuntu,找到ubuntu應用。注意現在應用商店裏ubuntu有兩個版本,分別是16.04和18.04。
這兩個版本都是長期服務器版,但是我們需要選擇第一個,也就是16.04版本,因為目前gcc-arm編譯器還沒有支持18.04,使用18.04版本就需要自己手工安裝編譯器,比較麻煩。

安裝好ubuntu 16.04後,運行就會出現下麵的控製台樣式窗口,它默認是隻有控製台(shell)界麵,沒有圖形化界麵。我們可以通過 lsb_release -a 命令查看係統版本。

這個新安裝的ubuntu可以看成是一個全新的係統,大部分軟件都需要自己安裝。我們先安裝arm-gcc編譯器,同時可以更新一下軟件倉庫的內容。
然後安裝git軟件:
sudo apt install git還需要安裝gcc編譯器和make軟件:
sudo apt install gcc make到這一步,需要的軟件基本安裝完成,下麵是用 git 同步下載 micropython 源碼。雖然可以使用zip方式下載,但是這樣不方便和源碼同步更新。我們先在用戶目錄中創建一個projects目錄,將micropython下載到projects目錄中:
cd
mkdir projects
cd projects
git clone https://github.com/micropython/micropython
因為文件比較多,github在國內訪問速度也不快,下載速度與網絡有很大關係。如果下載出錯,需要重複這個步驟。
成功下載後,進入micropython目錄,先下載使用到的其它庫文件:
cd micropythongit submodule update --initmicropython引用的外部庫也比較多,下載需要一定時間。如果提示超時或者下載失敗,需要重複前麵過程。
下載源碼後,就可以開始編譯了,首先是編譯mpy-cross,它是一個micropython的輔助工具,在編譯過程中會用到。
在micropython源碼的根目錄中,輸入下麵命令:
make -C mpy-cross這個程序不大,編譯速度也比較快。編譯後就可以編譯STM32的程序了,下麵命令是編譯官方的pybv10開發板固件:
make -C ports/stm32
如果是編譯其它開發板,就需要在命令行中指定板子的名稱,注意BOARD必須大寫,等號兩邊不能有空格:
make -C ports/stm32 BOARD=STM32F7DISC
如果其它開發板,更換板子的名稱就可以。如果是自己定義的板子,還需要將開發板的定義文件添加到ports/stm32/board目錄下。
以後如果micropython代碼更新了,我們就可以通過git同步更新,然後再次編譯。
git pull編譯前最好先清除以前的編譯內容,這樣可以避免因為更新造成的編譯錯誤
make -C ports/stm32 cleanmake -C ports/stm32
上麵編譯出的固件是默認方式,不帶有雙精度浮點,也不支持線程功能。如果希望添加線程功能,需要打開板子的配置文件mpconfigboard.h,然後在文件中添加下麵兩行:
#define MICROPY_PY_THREAD (1)#define MICROPY_PY_THREAD_GIL (1)然後先清除以前的臨時文件,再重新編譯。
如果需要雙精度浮點功能,在編譯時命令行中,添加 MICROPY_FLOAT_IMPL=double。
編譯速度與計算機的配置有較大關係,配置越高,CPU性能越好,速度越快。此外如果計算機使用了普通硬盤,第一次編譯也會較慢,需要較多的時間加載程序,使用SSD硬盤時,第一次編譯速度明顯快很多。在一個Windows10平板上(cpu的N3450,),編譯1.9.4版本的固件,使用了約260秒,而相同情況下使用虛擬機編譯約160秒,看起來Linux子係統的性能還有很大改進的空間。
編譯後,產生的固件在 ports/stm32/build-xxxxx 目錄下(xxxxx是板子的名稱),編譯會同時產生elf、dfu、hex三種格式的文件。dfu適合通過USB方式升級,elf和hex可以使用jlink、stlink通過SWD下載(會丟失用戶磁盤內容)。
編譯好固件怎樣複製到windows主機呢?在Linux子係統中,默認已經將windows的各分區掛載好了,我們可以在 /mnt 目錄下看到。將固件複製到進去就可以了。如果不習慣用命令行方式操作,可以安裝一個midinight commander軟件,它類似早期的norton commander,可以方便的管理文件。
sudo apt install mc

使用Linux子係統,好處在於安裝和使用簡單,安裝後可以直接運行,沒有複雜的配置,文件體積比使用虛擬機要小,占用係統資源也較少。Linux係統作為windows的一個程序,比傳統用虛擬機方式更加容易使用。缺點是不能選擇用戶數據存放的目錄,所有文件都會保存到係統盤,需要在係統盤留出足夠的空間,此外性能比傳統虛擬機低。
以上圖文內容均轉載自訂閱號:電子工程世界(微信搜索 eeworldbbs 關注)
歡迎微博@EEWORLD
如果您也寫過此類原創幹貨歡迎將您的原創發至:bbs_service@eeworld.com.cn,一經入選,我們將幫你登上頭條!
聚焦行業關注熱點, 了解科技最新前沿
敬請關注EEWorld電子頭條
手機訪問:http://m.eeworld.com.cn/mp/wap
電腦訪問:http://m.eeworld.com.cn/mp
與更多行業內網友進行交流請登陸EEWorld論壇。
相關資訊
最新熱門應用
比特牛交易所官網app蘋果版
其它軟件26.64MB
下載
火bi交易所
其它軟件175MB
下載
比特兒交易平台app安卓手機
其它軟件292.97MB
下載
歐意交易所官網安卓版
其它軟件397.1MB
下載
歐意app官網
其它軟件397.1MB
下載
bitcoke交易所
其它軟件287.27 MB
下載
比特兒交易所app安卓版
其它軟件292.97MB
下載
幣咖交易所官網
其它軟件86.26MB
下載
bafeex交易所app
其它軟件28.5MB
下載
必勝交易所
其它軟件52.2 MB
下載