如今使用各種微處理器和微控制器面臨更大的挑戰(zhàn),致使設(shè)計團隊必須適應(yīng)不同的周邊設(shè)備、運算吞吐量、電源管理系統(tǒng)等。本文敘述運用跨平臺嵌入式GUI開發(fā)框架,如何將類似的使用者介面應(yīng)用於各種元件,並協(xié)助工程師在微控制器和微處理器之間進行移轉(zhuǎn)。
使用各種微控制器(MCU)和微處理器(MPU)的團隊如何節(jié)省資源並優(yōu)化作業(yè)流程? 意法半導體(STMicroelectronics;ST)合作夥伴計劃成員Crank Software提供了一個解決方案。這家總部位於加拿大的全球性公司以其跨平臺嵌入式GUI(Graphical User Interface;圖形使用者介面)開發(fā)框架Storyboard而聞名。
Storyboard使得開發(fā)人員能夠打造出精美且引人入勝的介面,開發(fā)者甚至可以利用STM32 MCU和MPU的示範影像,在幾分鐘內(nèi)開始測試環(huán)境,而這些示範影像也是展現(xiàn)該框架如何將類似的使用者介面應(yīng)用於各種元件,並協(xié)助工程師在MCU和MPU之間移轉(zhuǎn)的絕佳範例。
移轉(zhuǎn)的挑戰(zhàn)

圖一 : 工程師可以根據(jù)客戶需求客製化系統(tǒng),而不是將所有人強行納入特定系統(tǒng)。 |
|
使用多種元件有許多優(yōu)勢。工程師可以根據(jù)客戶需求客製化系統(tǒng),而不是將所有人強行納入特定系統(tǒng)。然而,使用各種微處理器和微控制器也帶來了更大的挑戰(zhàn),例如將專案移植到不同平臺上。因此,團隊必須適應(yīng)不同的周邊設(shè)備、運算吞吐量、電源管理系統(tǒng)等。Crank提供了一個解決方案。藉由其框架,使用者可以開發(fā)一個跨越多種設(shè)備的應(yīng)用程式。開發(fā)人員可以因此節(jié)省成本、縮短上市時間,並享有更大的靈活性。
Storyboard與STM32
使用不同硬體平臺常見的挑戰(zhàn)之一是需要重寫程式,以適應(yīng)不同的周邊設(shè)備、硬體 IP 和記憶體配置等。這是一項耗時的工作,這也是為什麼許多公司不輕易嘗試。此外,即使應(yīng)用程式能夠在多平臺上運行,開發(fā)者仍然需要對其進行優(yōu)化,這在資源受限的系統(tǒng)中尤為重要。Crank利用針對特定平臺的runtime engine和Storyboard,將優(yōu)化負擔轉(zhuǎn)移到運行引擎上。透過選擇適合的插件,開發(fā)人員可以微調(diào)其模組,避免浪費資源。
具體來說,Crank框架可以利用像ST的ChromART IP,或依據(jù)應(yīng)用程式的需求調(diào)整的記憶體占用大小。使用這個框架,從MCU遷移到MPU也變得更加簡單,因為該框架會適應(yīng)新的架構(gòu)。例如,STM32MP1系列中的某些版本配備3D加速器,可以打造出更豐富的介面效果;而一些具有成本效益的STM32MP1版本則沒搭載GPU,但透過使用Storyboard,工程師無需擔心這些差異,產(chǎn)品也能更快導入市場。同樣地,從MPU移轉(zhuǎn)至MCU也變得更輕鬆,因為引擎可以解決作業(yè)系統(tǒng)、RAM管理等層面的差異。

圖二 : Crank利用針對特定平臺的runtime engine和Storyboard,將優(yōu)化負擔轉(zhuǎn)移到運行引擎上。(source:Crank) |
|
Storyboard vs. Validator
在Storyboard的最新版本中,Crank增加了Validator,這是一個整合式自動化測試框架,讓開發(fā)者能夠?qū)⒄麄€或部分 GUI 與基準圖像進行比對。該框架因此確保了多次運行之間的一致性,或辨識在不同硬體上運行的差異。此外,它還能幫助開發(fā)者在硬體變更後,追蹤某些任務(wù)執(zhí)行時間的變化(性能測試)。
文件團隊隨後可以使用相同的螢?zāi)唤貓D,這不僅大幅節(jié)省時間,還能確保使用最新的截圖。由於開發(fā)者必須不斷更新和調(diào)整介面,這不僅簡化團隊之間的協(xié)作,還可以避免使用者在閱讀手冊或指南時不再因過時的UI而煩惱。
Validator 還提供錄製自動化 GUI 測試影片的功能,這讓記錄故障狀態(tài)變得更加容易。當測試序列成功時,影片可以作為功能測試的示範影片。因此,展示新功能或製作使用教學變得更加輕鬆。由於這個工具能產(chǎn)生在電腦模擬器中執(zhí)行的 MP4 錄影畫面,開發(fā)者無需對著螢?zāi)慌臄z而出現(xiàn)閃爍或失真現(xiàn)象,其提高了影片製作的品質(zhì),讓展示效果更加細緻。
Storyboard與產(chǎn)業(yè)應(yīng)用
Storyboard 彈性的另一個典型例子是其支援 Lua 腳本回呼(callback)功能。開發(fā)者在使用 MPU 時,通常會選擇 Lua,因為它運行速度快且功能強大。然而,Storyboard 也提供了切換至 C 語言函式回呼的選擇,以適應(yīng)記憶體資源較為有限的 MCU。這個功能展現(xiàn)了 Storyboard 如何透過固定資料模型來呈現(xiàn)螢?zāi)簧系脑兀皇且蕾嚦淌酱a生成系統(tǒng)。Crank 的設(shè)計理念突顯了這個框架的高度彈性,為開發(fā)全新應(yīng)用開啟了更多可能性。
Crank 分享了該團隊觀察到的現(xiàn)象:許多入門系統(tǒng)的開發(fā)者開始利用影片提升使用者體驗。透過螢?zāi)伙@示及翻頁式介面,他們可以展示某些功能的使用方式。以往,這在 MCU 上會有執(zhí)行困難,因為資源消耗過大,開發(fā)者若是從較高效能系統(tǒng)移植至更具成本效益的 MCU,往往會遇到挑戰(zhàn)。
同樣地,過去依賴微處理器來做為音訊介面的製造商,現(xiàn)在也傾向使用 STM32 MCU。如今,透過在 STM32 MCU 上使用 Storyboard,工程師可以大幅提升體驗,而無需依賴昂貴的微處理器,並進一步控制物料成本。
反過來說,以前僅依賴 STM32 MCU 的 IoT 產(chǎn)品,如今開始使用 STM32MP1,以獲得更多運算資源,搭配 Storyboard 來簡化轉(zhuǎn)換流程並縮短上市時間。尤其現(xiàn)在 STM32MP1 已經(jīng)可以運作即時作業(yè)系統(tǒng),進一步拉近了與 MCU 之間的差距。工程師能夠在享受 MPU 強大運算能力的同時,使用與 STM32 MCU 相同的工具和作業(yè)系統(tǒng)。在這種情況下,Storyboard 也能幫助團隊過渡到更具成本效益的系統(tǒng),以打開闢新的市場。
從概念驗證到產(chǎn)品推出的旅程
初期應(yīng)該做和不應(yīng)該做的事
當與 Crank 討論時,該公司向工程師們提出了一些建議。其中一項建議是從建置影像檔開始。團隊很容易在文件編寫或?qū)嵺`過程中遇到障礙,而評估板能解決這些問題,因為它提供了可重複使用的概念驗證範例。這些範例能夠加速專案啟動,讓設(shè)計師能夠早期測試他們的 GUI,以取獲得寶貴的反饋意見,加速開發(fā)進度。
Crank強調(diào),選擇一個共同的起始平臺進行所有專案能降低摩擦,通常在熟悉的環(huán)境中開始會更簡單且更有效率,之後再定義應(yīng)用程式的規(guī)格,遠比一開始就猜測程式所需的功能來得明智。
站在巨人的肩膀上
另一項重要的建議是要注意潛在的複雜性。有些公司可能不願意使用像 Storyboard 這樣的工具,選擇從頭開始開發(fā)。然而,ST 與 Crank 緊密合作,因為我們深知優(yōu)化操作可能會變得複雜。
透過合作,任何使用 STM32 產(chǎn)品的團隊都能在不需要耗費數(shù)月甚至數(shù)年的情況下,充分挖掘產(chǎn)品的潛力。這也讓團隊能將精力放在與客戶合作上,開發(fā)出真正具有差異性的功能。此外,使用 Storyboard 還能確保團隊無需重新編譯程式碼庫,就可以將 GUI 遷移到不同的平臺。