作者:陸向陽
最近創客(Maker)圈極轟動的消息是Arm宣佈Mebd OS將停止發展,預計2年後的2026年7月完全凍結,後續將轉向Zephyr專案。這乍聽是個受挫消息,但自筆者的角度看這是合理且對各方均有利的新發展。
Arm約在2009年推出Mbed OS,筆者認為很大的原因是在Arm從ARM7/9/10/11等經典(Classic)系列轉向全新的Cortex-A/R/M後,期望Cortex-M系列MCU方面有更快的加速滲透性(註1),因而提出Mbed OS。
接著來說Zephyr專案,這是個嵌入式即時作業系統(RTOS)的發展專案,約在2015、2016年提出,而Intel、TSMC先後於2013、2014年表態擁抱IoT,很明顯Zephyr的提出與IoT有關。
Zephyr的好處是開放原碼、廣泛支援各種MCU/MPU架構,支援Arm(Cortex-A/R/M)與x86(32/64-bit)是必然,其他也包含ARC、Xtensa、RISC-V、SPARC、MIPS、Nios II等,而且該專案背後獲得多家MCU/MPU商支持,如ADI、Intel、Nordic、NXP、Qualcomm等。
Arduino基金會
說完Arm Mbed OS、Zephyr專案後,接著來說第三個要角Arduino基金會,Arduino約在2005年起步,初期是用簡單的8-bit MCU來開發,發展數年後開始嘗試跨入32-bit,於2012年推出Arduino Due開發板,使用Arm Cortex-M架構的MCU。
不過Arduino的優點是程式開發撰寫的界面親和,在系統還處於8-bit初階時,Arduino硬體系統還難以放入一個作業系統,但到了32-bit後就有寬裕的硬體資源來放作業系統,且有作業系統是更有利於應用程式開發的,而Arduino方面一直沒有提出自己的作業系統。
到了2020年,Arduino開始從單純嗜好領域走向產業實務應用,提出Arduino Pro,並確立一點,那就是基金會持續致力於讓一般人就可以親和開發,把心力放在更簡單好用的開發軟體(Arduino IDE)、更簡單好用的雲端支援系統(Arduino Cloud)、手機支援系統(Arduino IoT Remote App)等,而不是限定支援的硬體架構,既可以支援Arm,也可以支援ESP32(Xtensa架構)等,這點與樹莓派(Raspberry Pi, RPi)可說是全然相反,樹莓派日益獨尊自有晶片路線,除了晶片外大體什麼都開放。
Arduino確定跨入高階、跨入產業實務應用後受到了Arm的青睞,於2023年9月投資了Arduino,雖然Arduino沒有限定高階MCU採哪種硬體架構,但明顯以Arm為大宗,所以Arm仍然會是投資的主要受益方。
也由於Arduino高階化發展後一直缺乏屬意的嵌入式作業系統,自有發展緩不濟急,且很難確保能號召到夠多社群力量來支持發展,同時這也不會是Arduino自身的強項,Arduino崛起的根本與核心價值都在於「如何親和開發?如何讓沒有電子工程背景的一般人就能開發?」。
Arduino擁抱Zephyr專案與接受Arm投資
因此2023年Arduino宣佈擁抱Zephyr專案,盡可能讓原有已經熟悉Arduino開發的程式師能平順使用Zephyr作業系統,後續也用於Arduino樂趣與實務開發上,補足Arduino自身的不足。
至此其實有一點可以想:Arduino擁抱Zephyr專案跟接受Arm投資都在2023年,即便是擁抱Zephyr時間也不長,或許仍可使用Arm力主的Mbed OS(註2),沒有必要去擁抱Zephyr。
不過今日答案是:Arduino依然是擁抱Zephyr,Arm自身則是放棄持續發展Mbed OS,估計內部的權衡取捨無法對外公佈,筆者只能猜測,一是Arm本身的業務是MCU/MPU電路授權,當初推動Mbed OS是為了加速推動Cortex-M,因為當時尚難確定可用Cortex-M取代Arm Classic,而今確定Cortex-M為大宗後,這項兼差工作其實已可放下(註3)。
另一是評估過兩項專案的能量強弱,Zyphyr專案的技術生態若比Mbed OS強健,Mbed OS在後續追趕維護上將日益吃力,最終選擇擁抱,無論Arduino的支持態度為何Arm方面都可能停止Mbed OS,選擇加入擁抱Zyphyr可能是華麗轉身下台階。
當然,Zephyr的主要支持成員有MCU/MPU商,是Arm主業的主顧,主顧傾向推展Zephyr專案,Arm也就無必要堅持Mbed OS專案,堅持反而讓主顧反感,認為Arm在加深技術主導性,同時Arm難以從Mbed OS上獲利,堅持發展Mbed OS並無更多好處。
簡言之Arduino缺作業系統也無意自己發展,作業系統對Arm而言是兼業不是主業且已達成階段性任務,最終均屬意用Zephyr。
小結
最後,其實Mbed OS的停止是包含Mbed官網(平台)的停止,後續無法再使用Mbed的線上開發工具(註4),現有已經在上面建立的開發專案必須匯出,轉移到其他地方接續(如GitHub、GitLab),唯一持續發展的是Mbed TLS專案,該專案已經是TrustedFirmware.org的一部分。
不過Mbed官方也並非要所有人轉向Zephyr,也建議可以改用社群版(Community Edition, CE)的Mbed,或轉向CMSIS RTX、FreeRTOS、Yocto、Raspberry Pi等,估計轉向後Zeyphry會更為良善強健發展,Arduino、Arm與各界反而是受益者。
註1:Mbed OS大體只支援Cortex-M,然官網尚可見Cortex-A9,但未見Cortex-R。
註2:Arduino基金會邁入32位元即有使用Mbed OS及其他嵌入式作業系統。
註3:此一正式宣佈前Mbed相關專案的停止已有若干徵兆,例如線上編譯器已停止使用等。
註4:Arm投資Arduino後,本機端軟體開發工具Mbed Studio、雲端軟體開發工具Keil Studio Cloud也可能轉向Arduino IDE、Arduino Cloud Editor。
- Sony強力加持!樹莓派發表專屬AI攝影機 - 2024/10/28
- 【Qualcomm Inside】12TOPS Edge AI單板RUBIK Pi規格剖析 - 2024/10/20
- TinyML潛力股!MicroFlow挑戰TensorFlow Lite for Microcontrollers - 2024/10/15