MicroPython做嵌入式開發(fā)的優(yōu)缺點
[導讀]關(guān)注星標公眾號,不錯過精彩內(nèi)容編排|?strongerHuang微信公眾號|?嵌入式專欄Python的火熱程度相信大家都看到了,自然,MCU和嵌入式也緊跟“潮流”,隨之而來的就是MicroPython。關(guān)于MicroPythonMicroPython是Python3編程語言的精簡...
關(guān)注 星標公眾號,不錯過精彩內(nèi)容編排 |?strongerHuang微信公眾號 |?嵌入式專欄
Python的火熱程度相信大家都看到了,自然,MCU和嵌入式也緊跟“潮流”,隨之而來的就是MicroPython。
關(guān)于MicroPythonMicroPython 是Python 3編程語言的精簡高效實現(xiàn),其中包括 Python 標準庫的一小部分,并針對在微控制器和受限環(huán)境中運行進行了優(yōu)化。
MicroPython 同樣具有很多高級功能,例如交互式提示、任意精度整數(shù)、閉包、列表理解、生成器、異常處理等。然而,它足夠緊湊,可以在僅 256k Flash和 16k RAM 的MCU上運行。
MicroPython 旨在盡可能與普通 Python 兼容,讓你可以輕松地將代碼從桌面轉(zhuǎn)到微控制器或嵌入式系統(tǒng)。
1.完全免費的開源軟件MicroPython 是用 C99 編寫的,整個 MicroPython 核心在非常寬松的MIT 許可下可供一般使用 。大多數(shù)庫和擴展模塊(其中一些來自第三方)也可在 MIT 或類似許可下使用。
您可以自由地將 MicroPython 用于個人用途、教育和商業(yè)產(chǎn)品。
MicroPython 是在 GitHub 上公開開發(fā)的,源代碼可在GitHub 頁面和下載頁面上找到。歡迎大家為該項目做出貢獻。
2.特點MicroPython 采用了許多先進的編碼技術(shù)和許多技巧來保持緊湊的尺寸,同時仍然擁有全套功能。
更多介紹可以參看:http://www.micropython.org/
MicroPython做嵌入式開發(fā)的優(yōu)缺點C/ C 編程語言長期以來一直主導著嵌入式系統(tǒng)行業(yè),Python也不甘示弱進軍微控制器,只是它是換了一種形式,即我們看到MicroPython。?讓我們來看看使用 MicroPython 的一些優(yōu)缺點:Python 編程語言具有淺薄的學習曲線,這使得開發(fā)人員可以非常輕松地開始使用它。Python 為開發(fā)人員提供了一種高級編程語言,可用于構(gòu)建簡單的腳本,或者可用于開發(fā)復雜的面向?qū)ο蟮捏w系結(jié)構(gòu),這些體系結(jié)構(gòu)使用現(xiàn)代軟件項目的所有最佳實踐。與 C 相比,Python 還提供了內(nèi)置機制,用于創(chuàng)建線程,處理錯誤并輕松集成到測試工具中。
變革之風正在我們身上,MicroPython 可能是您用來構(gòu)建下一個產(chǎn)品的編程語言。在本課程中,我們將研究如何使用 MicroPython 開發(fā)產(chǎn)品。與會者將遠離本課程,詳細了解他們需要做什么才能在下一個產(chǎn)品中使用 MicroPython。?
這些語言特征的有趣之處在于它們使開發(fā)團隊的每個成員都可以成為程序員,MicroPython 提供了一系列庫,可以控制低級微控制器功能,從而消除復雜性。例如,硬件工程師可以設(shè)計電路板,幾乎不知道微控制器(或 C)的工作原理,開發(fā)可以通過控制 GPIO 測試電路板的高級腳本,甚至可以與 I2C 器件通信。在 C 中開發(fā) I2C 驅(qū)動程序可能相當復雜,但使用 MicroPython 只需要簡單的代碼行來創(chuàng)建 I2C 對象并將數(shù)據(jù)發(fā)送到從屬設(shè)備。
處理 I2C 的所有基礎(chǔ)工作都由 MicroPython 庫處理,這大大簡化了開發(fā)。??在考慮使用 MicroPython 進行產(chǎn)品開發(fā)時,開發(fā)人員需要考慮幾個關(guān)鍵因素。首先,開發(fā)人員需要考慮如何保護他們的應用程序代碼。MicroPython 允許開發(fā)人員加載基于代碼文本的 Python 腳本或?qū)⑦@些腳本編譯為字節(jié)碼并將它們放入 a.mpy 模塊中。這些解決方案的問題在于,任何能夠訪問 MicroPython 文件系統(tǒng)的人都可以輕松獲得應用程序代碼,這很容易實現(xiàn)。字節(jié)碼確實使它更難一點,但將字節(jié)代碼轉(zhuǎn)換回可讀代碼并不困難。開發(fā)人員需要考慮他們需要系統(tǒng)的安全性,并可能采取額外措施來保護知識產(chǎn)權(quán)。?接下來,開發(fā)人員需要考慮如果出現(xiàn)問題他們將如何恢復他們的系統(tǒng)。根據(jù)所選的微控制器,它們的應用程序代碼可以在 MCU 內(nèi)部,也可以在外部存儲設(shè)備(如 SD 卡)上。我發(fā)現(xiàn)文件系統(tǒng)在電源循環(huán)或欠壓條件下不是很強大。如果文件系統(tǒng)損壞,MicroPython 將通過將默認映像復制回文件系統(tǒng)來恢復它。開發(fā)人員需要確保將其默認代碼集成到其內(nèi)核版本中,以便在出現(xiàn)問題時,至少將其恢復為出廠默認設(shè)置,然后可以從設(shè)備上可能存在的其他內(nèi)存位置恢復任何更新。?使用 MicroPython 構(gòu)建嵌入式產(chǎn)品無法滿足每個開發(fā)團隊的需求,如 C / C ,但它為開發(fā)人員提供了一個有趣的快速原型設(shè)計或開發(fā)商業(yè)產(chǎn)品的解決方案。當然還存在一些挑戰(zhàn),例如保護基于 MicroPython 的系統(tǒng)并確保確定性行為。這些挑戰(zhàn)可以通過適當?shù)膽迷O(shè)計預先克服。MicroPython 的易用性和 Python 的普及使得使用 MicroPython 構(gòu)建嵌入式系統(tǒng)成為未來的趨勢。
免責聲明:本文素材來源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我聯(lián)系刪除。
------------?END?------------
后臺回復『RTOS』『單片機』閱讀更多相關(guān)文章。
歡迎關(guān)注我的公眾號,回復“加群”按規(guī)則加入技術(shù)交流群,回復“1024”查看更多內(nèi)容。
歡迎關(guān)注我的視頻號:
點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。
Python的火熱程度相信大家都看到了,自然,MCU和嵌入式也緊跟“潮流”,隨之而來的就是MicroPython。
關(guān)于MicroPythonMicroPython 是Python 3編程語言的精簡高效實現(xiàn),其中包括 Python 標準庫的一小部分,并針對在微控制器和受限環(huán)境中運行進行了優(yōu)化。
MicroPython 同樣具有很多高級功能,例如交互式提示、任意精度整數(shù)、閉包、列表理解、生成器、異常處理等。然而,它足夠緊湊,可以在僅 256k Flash和 16k RAM 的MCU上運行。
MicroPython 旨在盡可能與普通 Python 兼容,讓你可以輕松地將代碼從桌面轉(zhuǎn)到微控制器或嵌入式系統(tǒng)。
1.完全免費的開源軟件MicroPython 是用 C99 編寫的,整個 MicroPython 核心在非常寬松的MIT 許可下可供一般使用 。大多數(shù)庫和擴展模塊(其中一些來自第三方)也可在 MIT 或類似許可下使用。
您可以自由地將 MicroPython 用于個人用途、教育和商業(yè)產(chǎn)品。
MicroPython 是在 GitHub 上公開開發(fā)的,源代碼可在GitHub 頁面和下載頁面上找到。歡迎大家為該項目做出貢獻。
2.特點MicroPython 采用了許多先進的編碼技術(shù)和許多技巧來保持緊湊的尺寸,同時仍然擁有全套功能。
- 由于許多編譯時配置選項,高度可配置
- 支持多種架構(gòu)(x86、x86-64、ARM、ARM Thumb、Xtensa)
- 包含 590 多個測試和 18,500 多個單獨測試用例的廣泛測試套件
- 核心代碼覆蓋率為 98.4%,核心加擴展模塊為 96.3%
- 從啟動到加載第一個腳本的快速啟動時間(在以 168MHz 運行的 PYBv1.1 上,150 微秒到達 boot.py)
- 一個簡單、快速和健壯的標記清除垃圾收集器,用于堆內(nèi)存
- 如果堆耗盡,則會引發(fā) MemoryError 異常
- 如果達到堆棧限制,則會引發(fā) RuntimeError 異常
- 支持以最小延遲在硬中斷上運行 Python 代碼
- 錯誤有回溯并報告源代碼的行號
- 解析器/編譯器中的常量折疊
- 指針標記以適應機器字中的小整數(shù)、字符串和對象
- 從小整數(shù)到大整數(shù)的透明轉(zhuǎn)換
- 支持 64 位 NaN 裝箱對象模型
- 支持 30 位填充浮點數(shù),不需要堆內(nèi)存
- 交叉編譯器和凍結(jié)字節(jié)碼,具有不占用任何 RAM 的預編譯腳本(除了它們創(chuàng)建的任何動態(tài)對象)
- 通過“_thread”模塊進行多線程,帶有可選的全局解釋器鎖(仍在進行中,僅在選定的端口上可用)
- 直接針對機器代碼而不是字節(jié)碼虛擬機的本機發(fā)射器
- 內(nèi)聯(lián)匯編器(目前僅限 Thumb 和 Xtensa 指令集)
更多介紹可以參看:http://www.micropython.org/
MicroPython做嵌入式開發(fā)的優(yōu)缺點C/ C 編程語言長期以來一直主導著嵌入式系統(tǒng)行業(yè),Python也不甘示弱進軍微控制器,只是它是換了一種形式,即我們看到MicroPython。?讓我們來看看使用 MicroPython 的一些優(yōu)缺點:Python 編程語言具有淺薄的學習曲線,這使得開發(fā)人員可以非常輕松地開始使用它。Python 為開發(fā)人員提供了一種高級編程語言,可用于構(gòu)建簡單的腳本,或者可用于開發(fā)復雜的面向?qū)ο蟮捏w系結(jié)構(gòu),這些體系結(jié)構(gòu)使用現(xiàn)代軟件項目的所有最佳實踐。與 C 相比,Python 還提供了內(nèi)置機制,用于創(chuàng)建線程,處理錯誤并輕松集成到測試工具中。
變革之風正在我們身上,MicroPython 可能是您用來構(gòu)建下一個產(chǎn)品的編程語言。在本課程中,我們將研究如何使用 MicroPython 開發(fā)產(chǎn)品。與會者將遠離本課程,詳細了解他們需要做什么才能在下一個產(chǎn)品中使用 MicroPython。?
這些語言特征的有趣之處在于它們使開發(fā)團隊的每個成員都可以成為程序員,MicroPython 提供了一系列庫,可以控制低級微控制器功能,從而消除復雜性。例如,硬件工程師可以設(shè)計電路板,幾乎不知道微控制器(或 C)的工作原理,開發(fā)可以通過控制 GPIO 測試電路板的高級腳本,甚至可以與 I2C 器件通信。在 C 中開發(fā) I2C 驅(qū)動程序可能相當復雜,但使用 MicroPython 只需要簡單的代碼行來創(chuàng)建 I2C 對象并將數(shù)據(jù)發(fā)送到從屬設(shè)備。
處理 I2C 的所有基礎(chǔ)工作都由 MicroPython 庫處理,這大大簡化了開發(fā)。??在考慮使用 MicroPython 進行產(chǎn)品開發(fā)時,開發(fā)人員需要考慮幾個關(guān)鍵因素。首先,開發(fā)人員需要考慮如何保護他們的應用程序代碼。MicroPython 允許開發(fā)人員加載基于代碼文本的 Python 腳本或?qū)⑦@些腳本編譯為字節(jié)碼并將它們放入 a.mpy 模塊中。這些解決方案的問題在于,任何能夠訪問 MicroPython 文件系統(tǒng)的人都可以輕松獲得應用程序代碼,這很容易實現(xiàn)。字節(jié)碼確實使它更難一點,但將字節(jié)代碼轉(zhuǎn)換回可讀代碼并不困難。開發(fā)人員需要考慮他們需要系統(tǒng)的安全性,并可能采取額外措施來保護知識產(chǎn)權(quán)。?接下來,開發(fā)人員需要考慮如果出現(xiàn)問題他們將如何恢復他們的系統(tǒng)。根據(jù)所選的微控制器,它們的應用程序代碼可以在 MCU 內(nèi)部,也可以在外部存儲設(shè)備(如 SD 卡)上。我發(fā)現(xiàn)文件系統(tǒng)在電源循環(huán)或欠壓條件下不是很強大。如果文件系統(tǒng)損壞,MicroPython 將通過將默認映像復制回文件系統(tǒng)來恢復它。開發(fā)人員需要確保將其默認代碼集成到其內(nèi)核版本中,以便在出現(xiàn)問題時,至少將其恢復為出廠默認設(shè)置,然后可以從設(shè)備上可能存在的其他內(nèi)存位置恢復任何更新。?使用 MicroPython 構(gòu)建嵌入式產(chǎn)品無法滿足每個開發(fā)團隊的需求,如 C / C ,但它為開發(fā)人員提供了一個有趣的快速原型設(shè)計或開發(fā)商業(yè)產(chǎn)品的解決方案。當然還存在一些挑戰(zhàn),例如保護基于 MicroPython 的系統(tǒng)并確保確定性行為。這些挑戰(zhàn)可以通過適當?shù)膽迷O(shè)計預先克服。MicroPython 的易用性和 Python 的普及使得使用 MicroPython 構(gòu)建嵌入式系統(tǒng)成為未來的趨勢。
免責聲明:本文素材來源網(wǎng)絡(luò),版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我聯(lián)系刪除。
------------?END?------------
后臺回復『RTOS』『單片機』閱讀更多相關(guān)文章。
歡迎關(guān)注我的公眾號,回復“加群”按規(guī)則加入技術(shù)交流群,回復“1024”查看更多內(nèi)容。
歡迎關(guān)注我的視頻號:
點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。





