當我第一次開始編寫嵌入式軟件時,我發現最有效和最容易使用的環境僅在 Microsoft Windows 上可用。事實上,微控制器供應商只提供 Windows 開發工具的情況并不少見。對使用 Linux 或 Mac 感興趣的嵌入式開發人員要么不走運,要么不得不模擬 Windows,要么花費大量時間將工具鏈混搭在一起以構建自己的環境。今天,大多數工具現在可以在多個平臺上使用,但每個平臺仍然存在優點和缺點。在今天的文章中,我們將研究每個主機操作系統,并檢查使用每個操作系統開發嵌入式軟件的優缺點。
Windows 上的嵌入式軟件開發
首先,對于微控制器應用程序開發人員來說,Windows 仍然是今天使用的最流行的主機操作系統。Windows 使用最多的原因有很多。首先,對于流行和主要的工具鏈和開發工具,提供了安裝可執行文件,這使得安裝只需雙擊即可。其次,許多企業仍然使用 Windows 作為其 IT 部門高度支持的默認首選業務機器。第三,Windows 上的開發工具往往比其他平臺上的集成度更高。最后,許多公司將首先發布 Windows 的新工具和更新,然后再發布其他平臺。這使在 Windows 上工作的開發人員能夠在其他平臺上的開發人員之前擁有最新最好的工具以及錯誤修復。
不過,在 Windows 上工作時,事情并不總是那么樂觀。例如,使用大量開源工具或編譯器的開發人員可能會發現在 Windows 上設置環境可能非常具有挑戰性,尤其是如果這些工具首先是為 Linux 編寫的。在這些情況下,在 Windows 上工作的嵌入式開發人員可能需要安裝 Cygwin 或其他工具,此外還需要跳過很多步驟才能設置他們的開發環境。還有一個問題是,通常 Windows 應用程序是如此集成,它們有時不為開發人員提供命令行選項或訪問專家級工具以允許開發人員真正自定義工具鏈。
Linux 上的嵌入式軟件開發
對于開發人員來說,Linux 提供了一個非常可配置的環境,允許開發人員微調他們的環境并完全控制其中發生的一切。在 Linux 中工作通常不會抽象出細節,這使開發人員能夠更好地了解他們的開發環境和工具鏈的幕后發生的事情。Linux 是免費的,并且經常為它編寫開源軟件,這使得構建和使用某些軟件組件有時變得更容易。
Linux 還為開發人員提供了一些有趣的挑戰。首先,開發人員必須能夠在終端中舒適地工作,考慮到在 GUI 工具和無縫集成的開發環境上付出了多少努力,這通常感覺像是一種倒退。接下來,Linux 的可配置性非常高,如果你不在 Linux 中工作,成功安裝最近更新的工具鏈有時可能需要數小時或更長時間。最后,Linux 上的嵌入式開發人員傾向于對環境設置做出假設,這使得復制環境和設置工具變得更加困難。
Mac 上的嵌入式軟件開發
Mac提供了最好的 Windows 和 Linux 環境。今天,許多供應商和工具供應商提供了一種在 Mac 上安裝環境的簡單方法。提供的用戶界面使開發變得簡單高效,通常非常接近基于 Windows 的版本。當一個工具鏈需要一個終端和 Linux 工具鏈時,開發人員只需進入 Mac 終端即可獲得運行 Linux 機器的好處。
開發人員來說只有一些缺點。首先,Mac 比 Windows 或 Linux 機器貴一點;其次,Mac 環境通常不為 Windows 上可用的工具提供完整的功能集。這些工具很接近,但如果你仔細觀察,Mac 界面往往會落后于 Windows 工具長達六個月,這可能是也可能不是問題,但要記住這一點。
結論
選擇開發嵌入式軟件的主機操作系統已成為一個爭論點,盡管這些差異很快變得模糊,但使用一種操作系統仍然有一些優勢。在接下來的幾年里,這些細微的差異無疑會繼續縮小,以至于無論嵌入式開發人員使用哪種主機操作系統都不會產生任何影響,剩下的唯一區別是設置和維護工具鏈的工作量。