在當(dāng)今快節(jié)奏的嵌入式系統(tǒng)領(lǐng)域,靈活性和適應(yīng)性是關(guān)鍵。因此,我們激動地向大家揭曉SEGGER的最新創(chuàng)新成果:嵌入式應(yīng)用程序(Embedded Apps),類似于手機上的應(yīng)用(只是更不容易發(fā)現(xiàn)且體積小得多),可在嵌入式系統(tǒng)上運行。
應(yīng)用程序是小型、動態(tài)的軟件片段,可通過靜態(tài)或動態(tài)方式與設(shè)備固件鏈接。通常情況下,它們采用動態(tài)鏈接方式,這意味著您可以隨時下載并將其添加到現(xiàn)有固件中。
SEGGER應(yīng)用程序由固件中一個小型且高度優(yōu)化的代碼片段(即執(zhí)行器)來執(zhí)行,該執(zhí)行器本質(zhì)上實現(xiàn)了虛擬CPU的指令集。這一功能擴展了設(shè)備的功能性,使其更具通用性,能更好地適應(yīng)新需求和更新。本質(zhì)上,應(yīng)用程序可將您的嵌入式設(shè)備轉(zhuǎn)變?yōu)橐粋€嵌入式平臺!
SEGGER應(yīng)用程序的一大突出特點是其采用沙箱機制。也就是說,它們在受保護(hù)的環(huán)境中運行,底層操作系統(tǒng)可對其行為進(jìn)行監(jiān)控。如果某個應(yīng)用程序試圖執(zhí)行不允許的操作,執(zhí)行器會暫停該應(yīng)用程序的運行,并返回至固件(調(diào)用方),由固件決定如何處理這種情況。這樣不會造成任何損害。這確保了即使應(yīng)用程序內(nèi)部出現(xiàn)問題,系統(tǒng)的其他部分仍能保持穩(wěn)定和安全。
基本概念
概念可能有點難以想象,但我們會盡力解釋,只需在固件中添加執(zhí)行器、帶有API函數(shù)的沙箱,您的設(shè)備就可以運行應(yīng)用程序了。要為應(yīng)用程序添加功能,可增加相應(yīng)的API函數(shù)。例如,若要添加對文件系統(tǒng)的讀取權(quán)限,通常需要添加三個函數(shù),如OpenFile(打開文件)、ReadFile(讀取文件)、CloseFile(關(guān)閉文件)。若要允許寫入權(quán)限,則需添加WriteFile(寫入文件)函數(shù)。應(yīng)用程序的加載方式以及在何種上下文/線程中執(zhí)行,由固件設(shè)計人員決定。
多個應(yīng)用程序可以同時運行,無論是在同一內(nèi)核還是不同內(nèi)核上,均在實時操作系統(tǒng)(RTOS)的控制下。任何RTOS都適用,因為執(zhí)行器由在RTOS下運行的固件調(diào)用(前提是您的固件使用RTOS)。
每個應(yīng)用程序都可擁有自己的內(nèi)存空間。如果某個應(yīng)用程序出現(xiàn)問題(如崩潰),不會影響系統(tǒng)穩(wěn)定性,這類似于手機或電腦上的應(yīng)用程序崩潰不會影響系統(tǒng)本身。這使得應(yīng)用程序甚至可以在安全關(guān)鍵型環(huán)境中運行;它甚至能讓關(guān)鍵系統(tǒng)的認(rèn)證過程更簡便,因為外圍功能(如顯示器控制)可轉(zhuǎn)移到應(yīng)用程序中,而該應(yīng)用程序則無需納入認(rèn)證流程。
內(nèi)存需求
擔(dān)心對你的系統(tǒng)來說太大?這些應(yīng)用程序不僅能增強靈活性,而且內(nèi)存消耗極小。作為嵌入式固件一部分的執(zhí)行器,通常僅需600至1000字節(jié)。我們有針對ARM優(yōu)化的版本,以及可移植的C版本,該C版本幾乎可在任何設(shè)備上運行,包括用于仿真的個人電腦。固件所提供的API函數(shù),通常僅增加1至3KB的內(nèi)存占用,具體主要取決于您希望向應(yīng)用程序開放的原生函數(shù)。
這意味著嵌入式應(yīng)用程序(emApps)即使在較小的系統(tǒng)(64KB閃存)上也能順利運行。該框架可輕松集成到現(xiàn)有固件中。
代碼密度
運行這些應(yīng)用程序的虛擬CPU的代碼密度極高,往往高于主機CPU,尤其是在RISC-V環(huán)境中。這甚至有助于節(jié)省寶貴的程序空間,特別是當(dāng)應(yīng)用程序被靜態(tài)構(gòu)建到程序中時!
我們?yōu)檫@款虛擬CPU配備了專屬的C編譯器。通過使用“TO C”轉(zhuǎn)換器,還可使用其他語言,如Basic、Pascal、Python。
內(nèi)存保護(hù)——沙箱機制
應(yīng)用程序只能使用固件(嵌入式系統(tǒng)運行的程序)分配的內(nèi)存空間。在應(yīng)用程序處于活動狀態(tài)期間,固件會提供相應(yīng)的內(nèi)存。任何訪問分配內(nèi)存空間之外區(qū)域的嘗試都會被攔截,執(zhí)行器會返回并讓調(diào)用方(固件)決定如何處理這種情況。
性能
應(yīng)用程序由固件中一個小型且高度優(yōu)化的代碼片段(即執(zhí)行器)執(zhí)行。該執(zhí)行器本質(zhì)上實現(xiàn)了虛擬CPU的指令集,我們已為此對其進(jìn)行了優(yōu)化:該指令集非常緊湊,因此虛擬CPU執(zhí)行的指令數(shù)量通常遠(yuǎn)少于主機CPU實現(xiàn)相同功能所需的指令數(shù)量,并且它能在任何CPU上高效執(zhí)行。再加上可將計算密集型任務(wù)卸載到主機CPU的能力,其性能通常非常接近主機CPU。
研發(fā)背景
我們已將這一創(chuàng)新方法集成到J-Link和Flasher產(chǎn)品線中,因為我們看到了其中的需求。
應(yīng)用程序的編程可由我們或第三方完成,無需重新編譯固件,也不會犧牲性能。任何所需的加密代碼都可成為這些應(yīng)用程序的一部分(我們提供相關(guān)庫,便于使用)。這樣,固件本身就能保持精簡且“無加密代碼”。其他應(yīng)用程序可對FPGA進(jìn)行編程,或?qū)σ丫幊痰哪繕?biāo)系統(tǒng)進(jìn)行產(chǎn)品生產(chǎn)后測試。
未來展望
我們將繼續(xù)把這一技術(shù)集成到其他產(chǎn)品中。對于J-Link,未來將能夠添加對新CPU的支持。任何人都能做到這一點,即使是SEGGER外部人員也可以。
憑借強大的API以及兩個內(nèi)部設(shè)計的單周期軟核(“Speedy”)——其運行速度可達(dá)200MHz、單周期,不僅可以添加使用JTAG、SWD或cJTAG的其他內(nèi)核,還能添加復(fù)雜的雙引腳和單引腳接口。
在Flasher Hub中,一個例子是客戶網(wǎng)頁服務(wù)器,它允許自定義網(wǎng)頁用戶界面、添加新功能,或簡單地將用戶界面的語言更改為任何所需語言。
一旦應(yīng)用程序可用,新的想法便會層出不窮。即使是在強大主機上運行的軟件,也能從嵌入式應(yīng)用程序(emApps)中獲益。
它們在沙箱中運行且具有明確定義的API,這一特點使其相較于常規(guī)插件更具優(yōu)勢。
我們預(yù)見,未來不同行業(yè)的眾多嵌入式應(yīng)用都將能利用這一技術(shù)。借助應(yīng)用程序,您可以以安全且可控的方式擴展功能,類似于智能手機上的應(yīng)用程序。這種方法不僅增強了靈活性,還為第三方開發(fā)者提供了為生態(tài)系統(tǒng)貢獻(xiàn)力量的機會。
我們熱切期待嵌入式應(yīng)用程序(emApps)將如何塑造嵌入式系統(tǒng)的未來,也迫不及待地想讓您體驗它們帶來的益處!
請持續(xù)關(guān)注更多更新,準(zhǔn)備好探索SEGGER嵌入式應(yīng)用程序(emApps)帶來的全新世界吧!如果您有興趣在商業(yè)產(chǎn)品中使用嵌入式應(yīng)用程序(emApps)并希望了解更多信息,請聯(lián)系我們:[email protected]
SEGGER(嵌入式專家)祝您一切順利!
June 10th, 2025
作者:Rolf Segger
麥克泰技術(shù)代理SEGGER全線產(chǎn)品,具有30年的軟件開發(fā)與調(diào)試工具使用方面的知識和經(jīng)驗,關(guān)于SEGGER產(chǎn)品的更多信息,歡迎咨詢[email protected]。
麥克泰技術(shù)走過了30年發(fā)展歷程(1995-2025),秉承“讓嵌入式軟件開發(fā)更容易”的理念,致力于推廣嵌入式軟件開發(fā)工具、測試軟件和嵌入式操作系統(tǒng)。麥克泰技術(shù)通過舉辦嵌入式軟件和操作系統(tǒng)研討會、開設(shè)培訓(xùn)課程、出版圖書,撰寫博客文章,倡導(dǎo)和宣傳開放和開源的嵌入式軟件、操作系統(tǒng)以及開發(fā)技術(shù),包括VRTX(90年代)、μC/OS(2000年),Montavista Linux(2010年)和FreeRTOS(2010年)以及IAR/BDI/J-Link等知名的產(chǎn)品和技術(shù)。
麥克泰技術(shù)具有豐富嵌入式軟件項目開發(fā)、行業(yè)應(yīng)用與服務(wù)經(jīng)驗。今天,我們依托歐美嵌入式軟件商業(yè)團(tuán)隊支持,提供嵌入式軟件商業(yè)授權(quán)和服務(wù)。包括(不限于)SEGGER嵌入式軟件開發(fā)和編程工具(J-Link/Flasher),OS分析工具Tracealyzer,WITTENSTEIN公司的SafeRTOS(FreeRTOS)、Flexible Safety RTOS(μC/OS-II MPU)以及新一代PX5 RTOS。麥克泰技術(shù)專注預(yù)認(rèn)證功能安全操作系統(tǒng)在汽車、軌交、醫(yī)療和工業(yè)領(lǐng)域的應(yīng)用以及RISC-V處理器嵌入式開發(fā)生態(tài)建設(shè)。
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19670瀏覽量
317522 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3337瀏覽量
59031 -
SEGGER
+關(guān)注
關(guān)注
0文章
53瀏覽量
14490
原文標(biāo)題:加速生態(tài)系統(tǒng)發(fā)展:嵌入式應(yīng)用程序(Embedded Apps)重磅推出
文章出處:【微信號:麥克泰技術(shù),微信公眾號:麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
Linux嵌入式和單片機嵌入式的區(qū)別?
運行在嵌入式系統(tǒng)上的emApps

有方科技重磅亮相德國嵌入式展
飛凌嵌入式攜手全志,T536全國產(chǎn)核心板重磅發(fā)布

使用Ozone調(diào)試基于nRF9160 Zephyr應(yīng)用程序

使用SEGGER工具實現(xiàn)嵌入式應(yīng)用開發(fā)
什么是嵌入式?一文讀懂嵌入式主板
嵌入式系統(tǒng)的啟動流程
嵌入式主板是什么意思?嵌入式主板全面解析
七大嵌入式GUI盤點
嵌入式linux開發(fā)的基本步驟有哪些?
C28x嵌入式應(yīng)用程序二進(jìn)制接口

MSP430嵌入式應(yīng)用程序二進(jìn)制接口

C6000嵌入式應(yīng)用程序二進(jìn)制接口

評論