意法半導體為 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
相關文章
- 意法半導體STM32微控制器特性
- ESP32的Linux開發環境搭建Linux開發環境
- PyCharm 4.0.2 釋出,Python 整合開發環境PyCharmPython開發環境
- Linux搭建Scrapy爬蟲整合開發環境Linux爬蟲開發環境
- PyCharm 4.0.3 正式釋出,Python 整合開發環境PyCharmPython開發環境
- NetBeans IDE 8.0.2 釋出,整合開發環境BeanIDE開發環境
- PyCharm 4.5 EAP 釋出,Python 整合開發環境PyCharmPython開發環境
- 整合開發環境(IDE)的用途?開發環境IDE
- ESP32-MicroPython 開發環境Python開發環境
- 最全!嵌入式STM32微控制器開發環境配置教學Win/Mac!!!開發環境Mac
- phpwamp開發環境搭建詳解,phpwamp綠色整合環境開發環境一鍵搭建PHP開發環境
- PhpStorm 2018.3.5 釋出,PHP 整合開發環境PHPORM開發環境
- 五款python整合開發環境,你更喜歡哪一款?Python開發環境
- linux下整合RadRails+RDT+Aptana開發環境薦LinuxAIAPT開發環境
- 10個好用的Python整合開發環境!Python開發環境
- eclipse整合weblogic開發環境的搭建EclipseWeb開發環境
- 常用整合開發環境(IDE)的CUDA配置開發環境IDE
- Linux搭建開發環境Linux開發環境
- Linux 環境 + 本地開發Linux
- windbg分析執行在64位環境下的32位程式的dump
- Python 整合開發環境 PyCharm 2017.3.3 正式版釋出Python開發環境PyCharm
- Python整合開發環境安裝pycharmPython開發環境PyCharm
- IDE整合開發環境下載地址IDE開發環境
- Spark:Chrome應用的整合開發環境(IDE)SparkChrome開發環境IDE
- Linux 開發環境 -- C/C++開發環境編譯安裝Linux開發環境C++編譯
- 開始使用 Budgie 吧,一款 Linux 桌面環境Linux
- linux開發環境搭建(ubuntu)Linux開發環境Ubuntu
- 開發環境配置 - Linux(Ubuntu)開發環境LinuxUbuntu
- linux - java開發環境搭建LinuxJava開發環境
- gd32筆記[1]-搭建PlatformIO開發環境筆記Platform開發環境
- FFmpeg開發筆記(十)Linux環境給FFmpeg整合vorbis和amr筆記LinuxORB
- Jack架設WIN32彙編程式的開發環境Win32開發環境
- Python 整合開發環境(IDE): VS CodePython開發環境IDE
- PHP整合開發環境裡面的www問題PHP開發環境
- SAP與Borland合作 ,整合JAVA開發環境 (轉)Java開發環境
- Python基礎篇(整合開發環境 PyCharm )Python開發環境PyCharm
- 【推薦】10個好用的Python整合開發環境!Python開發環境
- 10 個免費的 C/C++ 整合開發環境C++開發環境