在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
下載