痞子衡嵌入式:恩智浦MCUX SDK在GitHub上線了



  大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家講的是恩智浦MCUX SDK 在GitHub上線一事

  其實在差不多一個月前(2021年1月6日),恩智浦MCUX SDK就在GitHub悄悄上線了,官方並沒有做太多宣傳,但這事對於一個恩智浦微控制器(MCU)開發者來說意味着很多,痞子衡今天就試着給大家解讀一下。

  在如今MCU功能設計越來越復雜的前提下,嵌入式開發者如果還是用十幾年前開發8/16 bit MCU那一套經驗(看官方參考手冊來裸寫MCU外設寄存器當基礎驅動)來開發現在的MCU顯然是不可想象的,且不論開發者能力是否足以寫出合適的底層驅動,單說那項目開發效率也是讓人無法接受的,因此有一個完善的官方SDK驅動包越來越重要。

  SDK包通常會包含基礎的MCU外設驅動,一些示例代碼,甚至還可以集成常用的小組件(按鍵、存儲器、傳感器驅動等)、第三方軟件庫中間件(文件系統、GUI、編解碼、加解密等)、RTOS支持等。SDK包可以幫助開發者節約大量的時間,讓開發者將主要精力集中在核心的應用功能設計上。

  說起恩智浦MCUX SDK,這得追溯到2009/2010年,那時候原恩智浦剛開始推出第一款Cortex-M0內核的LPC1100,老飛思卡爾(2015年被恩智浦收購)剛推出第一款Cortex-M4內核的Kinetis K60,一開始這兩家都沒有規范的SDK包,只是給了Simple Code包,就是非常簡單的外設驅動庫,可以讓開發者快速把芯片玩起來。2012年的時候,老飛思卡爾開始為Kinetis系列開發完善的SDK包(v1.x時期),這就是現在的恩智浦MCUXpresso SDK包的前身,這個SDK開發至今(目前最新版本是v2.9)已8年有余了,功能可以說是相當豐富了。

Note: MCUX SDK並沒有支持全部LPC型號,飛思卡爾和恩智浦合並之前,恩智浦推出的那些LPC老型號不在MCUX SDK支持計划里,這些老型號LPC也有一個相對完整的SDK,這個SDK項目叫LPCOpen。

  SDK v1.x的時候,主要支持Kinetis系列,那時候SDK包本身不算大,功能組件也沒有如今這么豐富,因此包的下載方式比較粗暴,官網提供了唯一的下載入口,一個包可以直接將整個SDK倉庫全部拿下來(所有Kinetis型號全部在內)。但是到了SDK v2.x后期,隨着MCU型號越來越多,以及有LPC、DSC、JN、QN、i.MX等新系列的加入,SDK倉庫越來越大,再用一個包去把全部MCU型號的驅動都拿下來不太現實,一是包大了下載時間太長;二是開發LPC的用戶拿到一個包含非LPC系列的驅動包也沒意義,因此現在的MCUX SDK官方下載頁面(SDK builder)可以選擇具體MCU型號以及第三方中間件,相當於是可定制化的SDK包下載。

  看起來SDK Builder這種包下載方式已經很好了,為何現在又多了GitHub方式?難道僅僅是給大家多一種包下載方式?顯然沒那么簡單!如果你細看GitHub上的SDK組成,你會發現它相比SDK Builder方式少了RTOS以及第三方中間件的支持,Toolchain方面也僅支持MCUXpresso IDE和GCC,看起來GitHub上的SDK包更聚焦在恩智浦MCU外設驅動本身以及自家的工具鏈上。

  前面介紹了這么多恩智浦MCUX SDK放GitHub之前的背景,那么恩智浦SDK開發團隊此舉到底是什么用意呢?痞子衡看來主要有兩點:

用意一:用戶能更及時地拿到hotfix/嘗鮮版本

  軟件功能都是在不斷增加的,並且任何一個軟件都可能包含潛在的bug,因此軟件需要不斷地迭代去完善自身,但恩智浦MCUX SDK是一個非常規范的軟件產品,有非常多的工程師參與開發測試,它的任何一個版本發布都需要經過嚴格的流程,這需要時間,因此如果僅從SDK Builder這種官方方式去拿正式發布包,會存在一定的時間延遲(少則三個月)。現在有了GitHub倉庫,SDK開發團隊可以將一些重要的hotfix/feature提前放在GitHub上,一些開發能力強的用戶可以從GitHub上及時拿到新版本,這比用戶單獨聯系FAE去獲取內部包(版本可能會混亂)在流程上要規范得多,更重要的是GitHub上拿包在版本記錄上也很明確。

用意二:與用戶面對面溝通,擁抱社區開源力量

  軟件開源是現在這個時代的潮流,恩智浦MCUX SDK本身一直是開源的,軟件許可證也是BSD-3為主,可以說是相當寬松。然而在SDK放到GitHub上之前,SDK開發團隊一直沒有一個與用戶和社區直接溝通交流的機會,用戶對於SDK的建議反饋都需要那些直接與客戶打交道的團隊(比如AE)來轉述,這雖然可以讓SDK開發團隊專注於軟件開發本身,不用直面用戶(客戶支持不是件輕松的活,繁雜且耗時),但畢竟信息在轉述的過程中可能會有損失,現在用戶可以在GitHub上直接提issue來給建議,SDK開發團隊能夠直接拿第一手信息去做判斷。

  此外,社區開源力量是不可忽視的,SDK上線不到一個月,我們已經可以看到兩位非NXP工程師在提交PR了,有了社區力量的加持,SDK必將會更加完善,所有恩智浦MCUX SDK用戶的寶貴經驗都可以得到傳承。所以你還等什么?趕緊加入到這個激動人心的大項目吧!

歡迎訂閱

文章會同時發布到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平台上。

微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM