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

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

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

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

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

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

評(píng)論