意法半導體為 32 位微控制器發布了一款自由的 Linux 集成開發環境
32 位微控制器世界向 Linux 敞開大門。前一段時間,領先的 ARM Cortex-M 供應商意法半導體(ST)發布了 一款自由的 Linux 桌面版開發程序,該軟體面向其旗下的 STM32 微控制單元(MCU)。包含了 ST 的 STM32CubeMX 配置器和初始化工具,以及其 STM32 系統工作台(SW4STM32) ,這個基於 Eclipse 的 IDE 由工具 Ac6 創建。支撐 SW4STM32 的工具鏈,論壇,博客以及技術會由 openSTM32.org 開發社區提供。
「Linux 社區以吸引富有創意的自由思想者而聞名,他們善於交流心得、高效地克服挑戰。」 Laurent Desseignes,意法半導體微控制器產品部,微控制器生態系統市場經理這麼說道:「我們正著手做的是讓他們能極端簡單的借力 STM32 系列的特性和性能施展自己的才能,運用到富有想像力的新產品的創造中去。
Linux 是物聯網(IoT)網關和樞紐,及高端 IoT 終端的領先平台。但是,大部分 IoT 革命,以及可穿戴設備市場基於小型的低功耗微控制器,對 Cortex-M 晶元的運用越來越多。雖然其中的一小部分可以運行精簡的 uCLinux (見下文),卻沒能支持更全面的 Linux 發行版。取而代之的是實時操作系統(RTOS)們或者有時乾脆不用 OS 來控制。固件的開發工作一般會在基於 Windows 的集成開發環境(IDE)上完成。
通過 ST 的自由工具,Linux 開發者們可以更容易的開疆拓土。ST 工具中的一些技術在第二季度應該會登錄 Mac OS/X 平台,與 STM32 Nucleo 、開發套件、以及評估板同時面世。Nucleo 支持 32 針、64 針、和 144 針的版本,並且提供類似 Arduino 連接器這樣的插件。
STM32CubeMX 配置器和 IDE SW4STM32 使 Linux 開發者能夠配置微控制器並開發調試代碼。SW4STM32 支持在 Linux 下通過社區更改版的 OpenOCD 使用調試工具 ST-LINK/V2。
據 ST 稱,軟體兼容 STM32Cube 軟體包及標準外設庫中的微控制器固件。目標是囊括 ST 的全系列 MCU,從入門級的 Cortex-M0 內核到高性能的 M7 晶元,包括 M0+,M3 和 DSP 擴展的 M4 內核。
ST 並非首個為 Linux 準備 Cortex-M 晶元 IDE 的 32 位 MCU 供應商,但似乎是第一大自由的 Linux 平台。例如 NXP,MCU 的市場份額隨著近期收購了 Freescale (Kinetis 系列 MCU,等)而增加,提供了一款 IDE LPCXpresso IDE,支持 Linux 、Windows 和 Mac。然而,LPCXpresso 每份售價 $450。
在其 SmartFusion FPGA 系統級晶元(SoC)上集成了 Cortex-M3 晶元的 Microsemi,擁有一款 IDE Libero IDE,適用於 RHEL 和 Windows。然而,Libero 需要許可證才行,並且 RHEL 版缺乏如 FlashPro 和 SoftConsole 的插件。
為什麼要學習 MCU?
即便 Linux 開發者並沒有計劃在 Cortex-M 上使用 uClinux,但是 MCU 的知識總會派上用場。特別是牽扯到複雜的 IoT 工程,需要擴展 MCU 終端至雲端。
對於原型和業餘愛好者的項目,Arduino 板為其訪問 MCU 提供了非常便利的介面。然而原型之外,開發者常常就會用更快的 32 位 Cortex-M 晶元以及所帶來的附加功能來替代 Arduino 板和板上的那塊 8 位 MCU ATmega32u4。這些附加功能包括改進的存儲器定址,用於晶元和各種匯流排的獨立時鐘設置,以及晶元 Cortex-M7 自帶的入門級顯示晶元。
還有些可能需求 MCU 開發技術的地方包括可穿戴設備,低功耗、低成本和小尺寸給了 MCU 一席之地,還有機器人和無人機這些使用實時處理和電機控制的地方更為受用。在機器人上,你更是有可能看看 Cortex-A 與 Cortex-M 集成在同一個產品中的樣子。
對於 SoC 晶元還有這樣的一種溫和的局勢,即將 MCU 加入到 Linux 驅動的 Cortex-A 核心中,就如同 NXP i.MX6 SoloX。雖然大多數的嵌入式項目並不使用這種混合型 SoC 或者說將應用處理器和 MCU 結合在同一產品中,但開發者會漸漸地發現自己工作的生產線、設計所基於的晶元正漸漸的從低端的 MCU 模塊發展到 Linux 或安卓驅動的 Cortex-A。
uClinux 是 Linux 在 MCU 領域的籌碼
隨著物聯網的興起,我們見到越來越多的 SBC 和模塊計算機,它們在 32 位的 MCU 上運行著 uClinux。不同於其他的 Linux 發行版,uClinux 並不需要內存管理單元(MMU)。然而,uClinux 對市面上可見 MCU 有更高的內存需求。需求更高端的 Cortex-M4 和 Cortex-M4 微控制器內置內存控制器來支持外部 DRAM 晶元。
Amptek SBC 在 NXP LPC Cortex-M3 和 -M4 晶元上運行 uClinux,以提供常用的功能類似 WiFi、藍牙、USB 等眾多介面。Arrow 的 SF2+ 物聯網開發套件將 uClinux 運行於 SmartFusion2 模塊計算機的 Emcraft 系統上,該模塊計算機是 Microsemi 的 166MHz Cortex-M3/FPGA SmartFusion2 混合 SoC。
Emcraft 銷售基於 uClinux 的模塊計算機,有 ST 和 NXP 的,也有 Microsemi 的 MCU,是 32 位 MCU 上積極推進 uClinux 的重要角色。日益頻繁的 uClinux 開始了與 ARM 本身 Mbed OS的對抗,至少在高端的 MCU 工程中需要無線通信和更為複雜的操作規則。Mbed 和 modern 的支持者,開源的 RTOS 們,類似 FreeRTOS 認為 uClinux 需要對 RAM 的需求太高以至於難以壓低 IoT 終端的價格,然而 Emcraft 與其他 uCLinux 擁躉表示價格並沒有如此誇張,而且擴展 Linux 的無線和介面也是相當值得的,即使只是在像 uClinux 這樣的精簡版上。
當被問及對於這次 ST 發布的看法,Emcraft 的主任工程師 Vladimir Khusainov 表示:「ST決定將這款開發工具 移植至 Linux 對於 Emcraft 是個好消息,它使得 Linux 用戶能輕易的在嵌入式 STM MCU 上展開工作。我們希望那些有機會熟悉 STM 設備,使用 ST 配置器和嵌入式庫的用戶可能對在目標機上使用嵌入式 Linux (以 uClinux 的形式)感興趣。」
最近關於 Cortex-M4 上運行 uClinux 的概述,可以查看去年 Jim Huang 與 Jeff Liaws 在嵌入式 Linux 大會上使用的幻燈片。更多關於 Cortex-M 處理器可以查看這裡過的 AnandTech 總結。
作者:Arun Pyasi 譯者:martin2011qi 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive