micropython 移植與學習的心路歷程

知道 micropython 這東西大約是 2016 年的時候了。那個時候印象針對 ESP8266 的官方移植才剛開始,國內能玩到 micropython 的模組直接從國外買大概是最快的方式了吧。不過那個時候腦子一熱,就從官網給的電路圖開始出發。

先是跑去下載 KiCAD 摸一摸,然後照著官網給的 pyboard v1 的線路圖開始 layout、出 gerber 檔、下單洗板、買料、手焊。過程中充滿了手動與自學的樂趣,找資料、思考、收尋電子論壇...。

然後灌 Linux 安裝開發環境,還好 micropython 官方使用 arm gcc ,不然還要花錢買 keil C。學 Makefile、重溫 C 語言。Build 成功那一瞬間是有得到感動的。

最後使用 dfu 模式把 build 出來的 micropython 燒到自一手包辦的板子上,看到提示符號並 print 出 "Hello World" 時真是無言的感動。

但是之後工作開始忙了之後就停了一陣子,然後看著市場上的 ESP 系列的活躍,忽然也想說再來摸一摸,但是可以更精進一些到達可以了解原始碼的地步。原本想說就從 STM32F 系列繼續玩下去了,官方完整的支援下非常適合順便學習 STM32 的架構。但也是這時,友人介紹了一塊MTK 產的 ARM cortex M4 MCU,想說也有提供 gcc 的開發環境和 STM32F4 是很相似的,而且當下 micropython 還沒有移植到上面,如果可以成功移植上去的話對於 MCU 的學習的幫助應該會蠻大的。

於是又開始了一輪收尋資料與學習的過程,而這次則是對整個 MCU 的開發有著較為深入的了解-- FAT file system、C 的 OO 手法、FreeRTOS、BLE、LwIP...。真的是感覺到,有著一個完整的目標框架對於學習而言是很重要的。

當然最後也順利的把 micropython 移植到 MT7697 上了,下面是 Build 出來的 bin 檔。

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

開發過程之中,也稍稍進行了一些思考-- 為何 MT7697 在國外的論壇很少看到討論? 為何 STM32 的學習討論這麼多? 為何 ESP 系列在不是 ARM Core 的情況下可以引領一波流行? 可以執行直譯器語言的 MCU 和 SoC with Linux 系統的差別又在哪? 有誰會需要這樣的東西? 可以用在生產力環境之上嗎? 這些問題都是沒有標準解答的問題。思考者這類問題並進行自問自答的流程也是很有趣: 提出假設 --> 蒐集資料進行答辯 --> 修正假設 --> 蒐集資料進行答辯...。

這次 MT7697 的移植已經到了一個初步的階段,正在修正 bug 和撰寫 API 文件之間來回。告一段落之後,應該就會回到 STM32F 系列繼續在官方的版本上疊床架屋,而這次的目標想要開始試著設計一些產品投入在實驗性質的環境之上了。

留言

熱門文章