作者:陸向陽
近年來創客、自造者風氣的興起,加上物聯網概念的提倡,許多晶片大廠為了接觸廣大的業餘興趣開發者(非職業、專業型開發),無不在軟體層面下功夫,期望提供更直覺、簡單的控制軟體開發法給Maker,而這個接觸捷徑通常是相容Arduino IDE開發工具、語法、函式庫。
開發板的控制程式變得容易開發了,也很容易上傳、修改等。但是,較控制程式更底層的程式,即開發板上的韌體,目前為止各業者各自為政,就不太容易更新修改了,這篇文章就針對此吐吐苦水吧!為了不讓晶片商有太大的壓力,就以匿名方式談談。
例如A開發板,必須在PC端安裝韌體更新的專用工具程式,方能更新,且更新的過程必須在限定的時間內將開發板與PC斷開,而後接上,更新程序才能連貫,否則將出現超過時間的程序中止訊息。
又如B開發板,更新韌體是由開發板扮演Web Server端,PC端以Client身份登入後,在網頁上選定上載的韌體映像檔(Image),而後進入更新韌體程序。
或者,有的更新韌體是透過在地儲存(Local Storage)來實現,例如將USB隨身碟接上開發板,並事先將映像檔放於隨身碟的根目錄,而後持續按著板上的指定按鈕,開發板系統便自動從隨身碟抓取檔案,並執行更新。
有趣的是,開發板業者有時提供多種韌體更新方式,但有時又不允許某種韌體更新方式,例如可以用USB隨身碟更新,但開發板上明明可以連接microSD記憶卡,卻因為驅動程式的缺乏,而不允許使用microSD記憶卡來進行韌體更新。另外,有的開發板初期採行一種更新法,後期又採行另一種更新法,一時間也容易讓人無所適從。
還有,筆者曾買回一片C開發板,裡頭附贈的說明書直接寫明,不允許終端使用者自行更新韌體,需要更新請來電或E-Mail知會,再由他們決議是否提供更新韌體,相當有趣。
除了遠端PC工具程式更新、遠端Web介面上載更新、在地儲存初始更新外,現在也逐漸強調無線傳輸更新、Internet上直接連線更新,通常稱為FOTA(Firmware Over The Air),因為傳遞的路徑是空氣。有趣的是,D開發板有新舊款之別,舊款僅512KB韌體儲存空間,不能支援FOTA,而新款的1MB空間才行。
當然,也是有很便利的韌體更新法,例如E開發板接上PC後,直接辨識成一個磁碟機槽,只要在槽內的根目錄換替映像檔,用PC常用的拖拉放方式更替,就完成韌體更新了。
筆者簡單分享一些韌體更新經驗,雖然久久一次,但有時也挺摸索、挺心驚膽跳的,畢竟更新韌體失敗是挺讓人挫折的,各位Maker是否也有各種韌體更新的甘苦談,也懇請分享,說不定漸漸會形成一種一致性、標準性的Maker韌體更新程序與共識唷!
- Sony強力加持!樹莓派發表專屬AI攝影機 - 2024/10/28
- 【Qualcomm Inside】12TOPS Edge AI單板RUBIK Pi規格剖析 - 2024/10/20
- TinyML潛力股!MicroFlow挑戰TensorFlow Lite for Microcontrollers - 2024/10/15