MicroPython 移植到 linkit7697

大約兩年多前,在網路上注意到 micropython 這個東西。想說這真是個好東西,可以在 MCU 上面執行 python 語法的直譯器。這樣一來,只要移植 micropython 的 MCU 就會變得非常得好開發上手。

現下最流行 MCU 開發流派是 Arduino 。就我看來,它是一個 Framework 使用了 C++ 為開發語言,然後把一些麻煩的底層工作巧妙地蓋住了,並提供給開發者一個更為簡易的 API。這樣的 Framework 讓一些只有簡單需求的開發者,從各家 MCU 廠提供的複雜 SDK 開發環境給解放了出來。像是以往開發者只是要亮個 LED 燈卻要花費龐大的時間在 download SDK... 設定執行環境... 阿! Keil C 好像要錢?! 有沒有#@%^版本...原來亮個LED燈不用錢?? 暫存器是什麼?...等等的掙扎。變成只要有Arduino,接上線馬上就可以用 C++ 把LED燈亮起來了,潮爽的~~

但是,MicroPython 的出現又是個完全不一樣的玩法了。只要有 MicroPython 的 MCU,不用 SDK,不用Compile,不用 IDE。簡單的 serial port 連線後,馬上就可以開始用 Python 語法開發了。

更不用說,程式碼一打馬上就執行得到結果。省去了 編譯 --> 燒錄 這樣一個麻煩的動作。完完全全的即時動態開發。用過之後,就很難回去了~~~~(Compiler bye~~bye~~)。再加上 MicroPython 通常會支援檔案系統,所以程式碼可以用 .py 的文字檔形式直接存在 MCU 的 Flash 記憶體裡面。整個使用體驗上非~常~的方便。

這樣的完全脫離了編譯式開發環境,並且完全動態的特性, 甚至讓 MicroPython 被考慮使用在太空人造衛星上。可以參考下面的連結,MicroPython 作者的一場演講表示 "Yes!"



不過 MicroPython 的問世其實不算久,而目前有支援的 MCU 以 STM32 和 ESP32 系列為主,然後有 nordic 51 與 52 系列...等等。主要以 ARM Cortex M4 為基礎延伸出去(ESP32不是ARM的)。

就國內來說,也是有幾家大廠有在生產 ARM Cortex M4 系統的 MCU,就個人有聽過的是 MTK、新唐。前一陣子因為某些關係接觸到 MTK 的 7697 系列,個人對 MicroPython 非常的喜愛,更看都沒人在國內進行 porting 的動作,所以花了一些時間和朋友合作把 MicroPython Porting 到 linkit7697 HDK 這個開發板上了。目前有一個還可以動的版本了~~~。

我把porting出來的 bin 檔給 release 到我的 github 帳號上:

https://github.com/onionys/micropython-mt7697-experiment-bin

有興趣的可以download 下來燒到市面上常常看到的 linkit7697 HDK 開發板上玩玩看。

而原始碼,整理過後就會release出來。

但是我知道有時候燒 firmware 其實也不是一件簡單的事,所以目前我也正在努力的修改下面這個 open source 的 專為 micropython 設計的編輯器,讓開發者可以更簡單地燒錄firmware與寫code 上傳code。

https://codewith.mu

已經快完成了~~~,應該最近就會 Release出來讓大家玩看看了。

這個 blog 之後應該會開始集中討論 MicroPython 上了。

不過在 porting micropython 的過程中也算是摸了 MCU 的開發(至少mtk 的 7697),所以之後也考慮寫一些 MCU 的開發筆記(當然以 MTK 的系統為主...目前我最熟的就是這個)。

不過先說一下,這些開發MCU的筆記會以 gcc + linux (或 mac os x) 的作業系統為主。

會說明這點是,感覺使用 gcc 和 linux 、mac os x 開發 MCU 似乎不是個主流的玩法...

留言

熱門文章