0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

运行在嵌入式系统上的emApps

麦克泰技术 ? 来源:麦克泰技术 ? 2025-06-18 09:53 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在当今快节奏的嵌入式系统世界中,灵活性和适应性是嵌入式系统实现的关键。SEGGER推出了其最新创新:Embedded apps(emApps)应用,类似于手机上的应用程序,可以运行在嵌入式系统上。

应用是小型的动态软件,可以静态或动态地链接到设备固件中。通常使用动态链接方式,这意味着用户可以随时下载并将它们添加到已有固件中。

应用由固件中的一段高度优化的代码执行,这段代码即执行器,它实现了虚拟CPU的指令集。此功能扩展了设备功能,使其更加通用,适应新的需求和更新。从本质上讲,应用允许用户将嵌入式设备变成嵌入式平台!

应用的一个突出特点是它们是沙盒式的。换言之,它们在受保护的环境中运行,底层操作系统可以监视其行为。如果一个应用试图做一些它不应该做的事情,执行器将暂停应用程序的执行并返回到固件(调用者),由固件决定如何处理这种情况,这确保了即使应用程序出现问题,也不会造成任何伤害,系统的其余部分仍然保持稳定和安全。

基本原理

0e5e8638-4804-11f0-b715-92fbcf53809c.png

我们需要将带有API功能的沙盒和执行器添加到固件中,这样设备就可以执行应用了。要向应用添加功能,可以添加API函数。为了给文件系统添加读访问,通常会添加3个函数,比如OpenFile,ReadFile, CloseFile。为了允许写访问,需要添加一个WriteFile函数。

如何加载应用程序以及在什么上下文中/线程中执行它们取决于固件设计人员。

多个应用可以同时运行,在实时操作系统(RTOS)的控制下运行在一个核或不同核上。因为执行器由固件调用,任何RTOS都可以实现。

每个应用有独立的内存空间。如果应用程序遇到问题(如崩溃……),它不会影响系统稳定性,就像手机或桌面应用程序崩溃不会影响系统一样。这甚至可以让应用在安全关键环境中运行,甚至可以使认证一个关键系统变得更容易,因为外设功能(如显示器的控制)可以转移到一个应用中,而不需要成为认证过程的一部分。

内存需求

这些应用不仅提高了灵活性,其内存消耗也很小。执行器是嵌入式固件的一部分,通常需要600到1000字节空间。我们提供了一个ARM优化版本以及可移植的C版本,它可以运行在几乎任何平台上。固件提供API功能,通常会增加1到3 KB占用,具体取决于希望向应用公开的本地功能。这意味着emApps甚至可以在更小的系统(64KB闪存)上运行,该框架可以很容易地集成到现有固件中。

代码密度

运行这些应用的虚拟CPU的代码密度非常高,甚至高于主机CPU的代码密度,特别是在RISC-V环境中。这可以帮助节省宝贵的程序空间,特别是当应用静态地内置时!对于这个虚拟CPU,我们使用自己的C编译器,其他语言如Basic,Pascal,Phyton可以通过C转换器来使用。

内存保护-沙箱

应用只能使用固件分配的内存空间。只要应用处于活动状态,固件就会为其提供内存。任何意图访问指定空间之外的内存都会被拦截,执行器返回并让调用者(固件)决定如何处理这种情况。

性能

应用由固件中的执行器执行。执行器实现了一个虚拟CPU的指令集,我们为此进行了优化:

该指令集非常紧凑,因此由虚拟CPU执行的指令数量通常显著低于主机CPU执行相同功能所需的指令数量,并且可以在任何CPU上轻松高效地执行。结合将计算密集型任务卸载到主机CPU的能力,性能可以非常接近主机CPU。

这种创新的方法已经集成到J-Link和Flasher产品线中,通过应用可以方便的增加新的CPU支持。在Flasher Hub中,通过应用允许自定义web用户界面,添加新功能或简单地更改用户界面语言。

不同行业的嵌入式应用程序都可以利用这种技术。通过emApps,用户以一种安全可控的方式扩展功能,这种方法不仅提高了灵活性,而且为第三方开发人员提供了为生态系统做出贡献的机会。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3686

    浏览量

    131598
  • 内存
    +关注

    关注

    8

    文章

    3128

    浏览量

    75362
  • 应用程序
    +关注

    关注

    38

    文章

    3338

    浏览量

    59140
  • SEGGER
    +关注

    关注

    0

    文章

    55

    浏览量

    14510

原文标题:运行在嵌入式系统上的emApps

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+ Hypervisor应用场景调研

    Hypervisor有两个类型:I型和II型,其中I型直接运行在硬件设备,II型运行在一个操作系统,该操作
    发表于 10-14 11:21

    嵌入式系统复习资料

    嵌入式操作系统在整个嵌入式系统中起着承上启下的作用:一方面,操作系统嵌入式应用程序提供了一个
    发表于 07-04 17:10

    什么是嵌入式系统 嵌入式系统定义

    由单个程序实现整个控制逻辑。嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。与通用计算机能够运行用户选择的软件不同,嵌入式
    发表于 09-23 15:57

    如何入门嵌入式系统

    嵌入式系统简单介绍(入门)嵌入式操作系统是一种运行在嵌入式相关产品中的操作
    发表于 12-17 07:31

    嵌入式系统中的数据存储和管理的相关资料分享

    【功能】: 嵌入式系统中的数据存储和管理 数据查询【定义】:嵌入式数据库系统是指支持移动计算或某种特定计算模式的数据库管理系统,它通常与操作
    发表于 12-17 07:15

    常用的嵌入式GUI包括哪些呢

    :包括根文件系统以及建立于Flash内存设备的文件系统5.运行用户程序:用户编写的完成特定功能的程序一些用户程序运行在一个
    发表于 12-17 07:59

    Netdata嵌入式测试的相关资料推荐

    Netdata 嵌入式测试背景在 Netdata嵌入式配置 为了使 Netdata 更加适应于嵌入式设备,对其进行部分功能的裁剪。在将裁剪后利用一个周末的时间,让 Netdata 2*24 小时
    发表于 12-21 08:18

    嵌入式系统安装docker的步骤

    系列文章目录docker 门外初体验–嵌入式系统安装docker(九)文章目录系列文章目录前言一、设计思路二、操作要点三、验证四、总结前言嵌入式开发精髓在于软硬件的结合,如果嵌入式开发
    发表于 12-22 06:27

    如何在嵌入式设备运行高性能Java

    如何在嵌入式设备运行高性能Java
    发表于 03-28 09:43 ?16次下载

    嵌入式Linux系统中应用的GTK+和X分析

    嵌入式 Linux 下 GUI 的选择,对大多数开发人员来说是一个需要权衡对比的过程。选择 GTK+ 运行在 X 系统,然后 X 系统
    发表于 05-16 11:46 ?976次阅读

    基于ARM嵌入式系统软PLC的研究

    嵌入式软PLC是嵌入式系统与软PLC相结合的产物,软PLc作为一个嵌入式应用程序运行在嵌入式
    发表于 09-01 11:53 ?18次下载
    基于ARM<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>软PLC的研究

    嵌入式系统分类

    对于嵌入式系统来说,可以分为两类:一类是从运行在个人电脑的操作系统向下移植到嵌入式
    的头像 发表于 03-26 15:11 ?6077次阅读

    什么是嵌入式系统

    电路与用于提供项目解决方案的软件编程技术集成的电子系统称为嵌入式系统。通过使用这种嵌入式系统技术,可以在很大程度上降低电路的复杂性,这进一步
    发表于 10-21 11:36 ?3次下载
    什么是<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>

    嵌入式系统设计师笔记】——什么是嵌入式

    嵌入式系统的软件通常运行在有限的硬件资源:没有硬盘、操作系统、键盘或屏幕。 软件一般都没有文件系统
    发表于 11-03 20:51 ?13次下载
    【<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b>设计师笔记】——什么是<b class='flag-5'>嵌入式</b>?

    什么是嵌入式操作系统

    嵌入式操作系统是一种专门的操作系统(OS),旨在为非计算机的设备执行特定任务。嵌入式操作系统的主要工作是
    的头像 发表于 12-23 15:33 ?8474次阅读
    什么是<b class='flag-5'>嵌入式</b>操作<b class='flag-5'>系统</b>?