在当今快节奏的嵌入式系统领域,灵活性和适应性是关键。因此,我们激动地向大家揭晓SEGGER的最新创新成果:嵌入式应用程序(Embedded Apps),类似于手机上的应用(只是更不容易发现且体积小得多),可在嵌入式系统上运行。
应用程序是小型、动态的软件片段,可通过静态或动态方式与设备固件链接。通常情况下,它们采用动态链接方式,这意味着您可以随时下载并将其添加到现有固件中。
SEGGER应用程序由固件中一个小型且高度优化的代码片段(即执行器)来执行,该执行器本质上实现了虚拟CPU的指令集。这一功能扩展了设备的功能性,使其更具通用性,能更好地适应新需求和更新。本质上,应用程序可将您的嵌入式设备转变为一个嵌入式平台!
SEGGER应用程序的一大突出特点是其采用沙箱机制。也就是说,它们在受保护的环境中运行,底层操作系统可对其行为进行监控。如果某个应用程序试图执行不允许的操作,执行器会暂停该应用程序的运行,并返回至固件(调用方),由固件决定如何处理这种情况。这样不会造成任何损害。这确保了即使应用程序内部出现问题,系统的其他部分仍能保持稳定和安全。
基本概念
概念可能有点难以想象,但我们会尽力解释,只需在固件中添加执行器、带有API函数的沙箱,您的设备就可以运行应用程序了。要为应用程序添加功能,可增加相应的API函数。例如,若要添加对文件系统的读取权限,通常需要添加三个函数,如OpenFile(打开文件)、ReadFile(读取文件)、CloseFile(关闭文件)。若要允许写入权限,则需添加WriteFile(写入文件)函数。应用程序的加载方式以及在何种上下文/线程中执行,由固件设计人员决定。
多个应用程序可以同时运行,无论是在同一内核还是不同内核上,均在实时操作系统(RTOS)的控制下。任何RTOS都适用,因为执行器由在RTOS下运行的固件调用(前提是您的固件使用RTOS)。
每个应用程序都可拥有自己的内存空间。如果某个应用程序出现问题(如崩溃),不会影响系统稳定性,这类似于手机或电脑上的应用程序崩溃不会影响系统本身。这使得应用程序甚至可以在安全关键型环境中运行;它甚至能让关键系统的认证过程更简便,因为外围功能(如显示器控制)可转移到应用程序中,而该应用程序则无需纳入认证流程。
内存需求
担心对你的系统来说太大?这些应用程序不仅能增强灵活性,而且内存消耗极小。作为嵌入式固件一部分的执行器,通常仅需600至1000字节。我们有针对ARM优化的版本,以及可移植的C版本,该C版本几乎可在任何设备上运行,包括用于仿真的个人电脑。固件所提供的API函数,通常仅增加1至3KB的内存占用,具体主要取决于您希望向应用程序开放的原生函数。
这意味着嵌入式应用程序(emApps)即使在较小的系统(64KB闪存)上也能顺利运行。该框架可轻松集成到现有固件中。
代码密度
运行这些应用程序的虚拟CPU的代码密度极高,往往高于主机CPU,尤其是在RISC-V环境中。这甚至有助于节省宝贵的程序空间,特别是当应用程序被静态构建到程序中时!
我们为这款虚拟CPU配备了专属的C编译器。通过使用“TO C”转换器,还可使用其他语言,如Basic、Pascal、Python。
内存保护——沙箱机制
应用程序只能使用固件(嵌入式系统运行的程序)分配的内存空间。在应用程序处于活动状态期间,固件会提供相应的内存。任何访问分配内存空间之外区域的尝试都会被拦截,执行器会返回并让调用方(固件)决定如何处理这种情况。
性能
应用程序由固件中一个小型且高度优化的代码片段(即执行器)执行。该执行器本质上实现了虚拟CPU的指令集,我们已为此对其进行了优化:该指令集非常紧凑,因此虚拟CPU执行的指令数量通常远少于主机CPU实现相同功能所需的指令数量,并且它能在任何CPU上高效执行。再加上可将计算密集型任务卸载到主机CPU的能力,其性能通常非常接近主机CPU。
研发背景
我们已将这一创新方法集成到J-Link和Flasher产品线中,因为我们看到了其中的需求。
应用程序的编程可由我们或第三方完成,无需重新编译固件,也不会牺牲性能。任何所需的加密代码都可成为这些应用程序的一部分(我们提供相关库,便于使用)。这样,固件本身就能保持精简且“无加密代码”。其他应用程序可对FPGA进行编程,或对已编程的目标系统进行产品生产后测试。
未来展望
我们将继续把这一技术集成到其他产品中。对于J-Link,未来将能够添加对新CPU的支持。任何人都能做到这一点,即使是SEGGER外部人员也可以。
凭借强大的API以及两个内部设计的单周期软核(“Speedy”)——其运行速度可达200MHz、单周期,不仅可以添加使用JTAG、SWD或cJTAG的其他内核,还能添加复杂的双引脚和单引脚接口。
在Flasher Hub中,一个例子是客户网页服务器,它允许自定义网页用户界面、添加新功能,或简单地将用户界面的语言更改为任何所需语言。
一旦应用程序可用,新的想法便会层出不穷。即使是在强大主机上运行的软件,也能从嵌入式应用程序(emApps)中获益。
它们在沙箱中运行且具有明确定义的API,这一特点使其相较于常规插件更具优势。
我们预见,未来不同行业的众多嵌入式应用都将能利用这一技术。借助应用程序,您可以以安全且可控的方式扩展功能,类似于智能手机上的应用程序。这种方法不仅增强了灵活性,还为第三方开发者提供了为生态系统贡献力量的机会。
我们热切期待嵌入式应用程序(emApps)将如何塑造嵌入式系统的未来,也迫不及待地想让您体验它们带来的益处!
请持续关注更多更新,准备好探索SEGGER嵌入式应用程序(emApps)带来的全新世界吧!如果您有兴趣在商业产品中使用嵌入式应用程序(emApps)并希望了解更多信息,请联系我们:info@segger.com
SEGGER(嵌入式专家)祝您一切顺利!
June 10th, 2025
作者:Rolf Segger
麦克泰技术代理SEGGER全线产品,具有30年的软件开发与调试工具使用方面的知识和经验,关于SEGGER产品的更多信息,欢迎咨询info@bmrtech.com。
麦克泰技术走过了30年发展历程(1995-2025),秉承“让嵌入式软件开发更容易”的理念,致力于推广嵌入式软件开发工具、测试软件和嵌入式操作系统。麦克泰技术通过举办嵌入式软件和操作系统研讨会、开设培训课程、出版图书,撰写博客文章,倡导和宣传开放和开源的嵌入式软件、操作系统以及开发技术,包括VRTX(90年代)、µC/OS(2000年),Montavista Linux(2010年)和FreeRTOS(2010年)以及IAR/BDI/J-Link等知名的产品和技术。
麦克泰技术具有丰富嵌入式软件项目开发、行业应用与服务经验。今天,我们依托欧美嵌入式软件商业团队支持,提供嵌入式软件商业授权和服务。包括(不限于)SEGGER嵌入式软件开发和编程工具(J-Link/Flasher),OS分析工具Tracealyzer,WITTENSTEIN公司的SafeRTOS(FreeRTOS)、Flexible Safety RTOS(µC/OS-II MPU)以及新一代PX5 RTOS。麦克泰技术专注预认证功能安全操作系统在汽车、轨交、医疗和工业领域的应用以及RISC-V处理器嵌入式开发生态建设。
-
嵌入式
+关注
关注
5186文章
20141浏览量
328643 -
应用程序
+关注
关注
38文章
3342浏览量
59904 -
SEGGER
+关注
关注
0文章
60浏览量
14759
原文标题:加速生态系统发展:嵌入式应用程序(Embedded Apps)重磅推出
文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
如何采用SAFERTOS和ESM保护嵌入式系统安全
RT-Thread 2025嵌入式软件大赛重磅来袭
RT-Thread 2025嵌入式软件大赛重磅来袭
嵌入式工程师为什么要学QT?
SEGGER J-Probe工具的工作原理和应用
SEGGER工具链集成到CMake和VS Code了
Linux嵌入式和单片机嵌入式的区别?
运行在嵌入式系统上的emApps
想在嵌入式领域高薪就业?先迈过这些人才门槛!
有方科技重磅亮相德国嵌入式展
使用Ozone调试基于nRF9160 Zephyr应用程序
嵌入式主板的概述与发展

SEGGER嵌入式应用程序重磅发布
评论