使用各種微控制器(MCU)和微處理器(MPU)的團隊如何節省資源並最佳化作業流程?ST合作夥伴計畫成員Crank Software提供了一個解決方案。這家總部位於加拿大的全球性公司以其跨平台嵌入式GUI開發框架Storyboard而聞名。
Storyboard使開發人員能夠打造出精美且引人入勝的介面。開發者甚至可以利用STM32 MCU和MPU的示範影像,在幾分鐘內開始測試環境。這些示範影像也是展現該框架如何將類似的UI應用於各種元件,並協助工程師在MCU和MPU之間移轉的絕佳範例。
使用多種元件有許多優勢。工程師可以根據客戶需求客製化系統,而不是將所有人強行納入特定系統。然而,使用各種微處理器和微控制器也帶來了更大的挑戰,例如將專案移植到不同平台上。因此,團隊必須適應不同的周邊設備、運算吞吐量、電源管理系統等。Crank提供了一個解決方案。藉由其框架,使用者可以開發一個跨越多種設備的應用程式。開發人員可以因此節省成本、縮短上市時間,並享有更大的靈活性。
使用不同硬體平台常見的挑戰之一是需要重寫程式,以適應不同的周邊設備、硬體IP和記憶體配置等。這是一項耗時的工作,這也是為什麼許多公司不輕易嘗試。此外,即使應用程式能夠在多平台上運行,開發者仍然需要對其進行最佳化,這在資源受限的系統中尤為重要。Crank利用針對特定平台的runtime engine和Storyboard,將最佳化負擔轉移到運行引擎上。透過選擇適合的插件,開發人員可以微調其模組,避免浪費資源。
具體來說,Crank框架可以利用像ST的ChromART IP,或依據應用程式的需求調整的記憶體占用大小。使用這個框架,從MCU遷移到MPU也變得更加簡單,因為該框架會適應新的架構。例如,STM32MP1系列中的某些版本配備3D加速器,可以打造出更豐富的介面效果;而一些具有成本效益的STM32MP1版本則沒搭載GPU,但透過使用Storyboard,工程師無需擔心這些差異,產品也能更快導入市場。同樣地,從MPU移轉至MCU也變得更輕鬆,因為引擎可以解決作業系統、RAM管理等層面的差異。
在Storyboard的最新版本中,Crank增加了Validator,這是一個整合式自動化測試框架,讓開發者能夠將整個或部分GUI與基準圖像進行比對。該框架因此確保了多次運行之間的一致性,或辨識在不同硬體上運行的差異。此外,它還能幫助開發者在硬體變更後,追蹤某些任務執行時間的變化(性能測試)。文檔團隊隨後可以使用相同的螢幕截圖,這不僅大幅節省時間,還能確保使用最新的截圖。由於開發者必須不斷更新和調整介面,這不僅簡化團隊之間的協作,還可以避免使用者在閱讀手冊或指南時不再因過時的UI而煩惱。
Validator還提供錄製自動化GUI測試影片的功能,這讓記錄故障狀態變得更加容易。當測試序列成功時,影片可以作為功能測試的示範影片。因此,展示新功能或製作使用教學變得更加輕鬆。由於這個工具能產生在電腦模擬器中執行的MP4錄影畫面,開發者無須對著螢幕拍攝而出現閃爍或失真現象,其提高了影片製作的品質,讓展示效果更加細緻。
Storyboard彈性的另一個典型例子是其支援Lua腳本回呼(Callback)功能。開發者在使用MPU時,通常會選擇Lua,因為它運行速度快且功能強大。然而,Storyboard也提供了切換至C語言函式回呼的選擇,以適應記憶體資源較為有限的MCU。這個功能展現了Storyboard如何透過固定資料模型來呈現螢幕上的元素,而不是依賴程式碼生成系統。Crank的設計理念突顯了這個框架的高度彈性,為開發全新應用開啟了更多可能性。
Crank分享了該團隊觀察到的現象:許多入門系統的開發者開始利用影片提升使用者體驗。透過螢幕顯示及翻頁式介面,他們可以展示某些功能的使用方式。以往,這在MCU上會有執行困難,因為資源消耗過大,開發者若是從較高效能系統移植至更具成本效益的MCU,往往會遇到挑戰。同樣地,過去依賴微處理器來做為音訊介面的製造商,現在也傾向使用STM32 MCU。如今,透過在STM32 MCU上使用Storyboard,工程師可以大幅提升體驗,而無需依賴昂貴的微處理器,並進一步控制物料成本。
反而言之,以前僅依賴STM32 MCU的IoT產品,如今開始使用STM32MP1,以獲得更多運算資源,搭配Storyboard來簡化轉換流程並縮短上市時間。尤其現在STM32MP1已經可以運作即時作業系統,進一步拉近了與MCU之間的差距。工程師能夠在享受MPU強大運算能力的同時,使用與STM32 MCU相同的工具和作業系統。在這種情況下,Storyboard也能幫助團隊過渡到更具成本效益的系統,以打開闢新的市場。
當與Crank討論時,該公司向工程師們提出了一些建議。其中一項建議是從建置影像檔開始。團隊很容易在文件編寫或實踐過程中遇到障礙,而評估板能解決這些問題,因為它提供了可重複使用的概念驗證範例。這些範例能夠加速專案啟動,讓設計師能夠早期測試他們的GUI,以取獲得寶貴的反饋意見,加速開發進度。Crank也強調,選擇一個共同的起始平台進行所有專案能降低摩擦,通常在熟悉的環境中開始會更簡單且更有效率,之後再定義應用程式的規格,遠比一開始就猜測程式所需的功能來得明智。
另一項重要的建議是要注意潛在的複雜性。有些公司可能不願意使用像Storyboard這樣的工具,選擇從頭開始開發。然而,ST與Crank緊密合作,因為ST深知最佳化操作可能會變得複雜。透過合作,任何使用STM32產品的團隊都能在不需要耗費數月甚至數年的情況下,充分挖掘產品的潛力。這也讓團隊能將精力放在與客戶合作上,開發出真正具有差異性的功能。此外,使用Storyboard還能確保團隊無須重新編譯程式碼庫,就可以將GUI遷移到不同的平台。