作者 | strongerHuang
微信公众号 | strongerHuang
说到SEGGER可能有些读者比较陌生,但说到J-Link相比大家都比较熟悉。
是的,J-Link就是SEGGER公司下的一款产品,SEGGER除了我们熟悉的J-Link其实还有很多嵌入式软件相关的产品,你了解多少?
之前还给大家分享过《 STM32生态系统增添embOS新成员 》的文章。
1SEGGER有哪些RTOS
可能我们熟悉的RTOS是μC/OS、 FreeRTOS、 RT-Thread等。但SEGGER也有RTOS,有三种不同的变体,分别是:embOS、 embOS-MPU、 embOS-Safe。
其实embOS发展有很多年了,embOS-MPU 和 embOS-Safe都是在embOS的基础上发展的产物。
2embOS
embOS库和源代码可免费用于非商业用途。
特点:
超过25年的持续发展
适用于所有流行的内核,编译器和开发工具
部署在广泛应用领域的数十亿设备中
通过了IEC 61508 SIL 3和IEC 62304 C类的功能安全认证
符合MISRA-C:2012
强大且易于使用的API
最高的性能,最少的内存使用
提供内核意识插件
零中断延迟
---来源官网,谷歌翻译
3embOS-MPU
embOS-MPU是embOS发展产物,这里的MPU是Memory Protection Unit(内存保护单元)。
是在embOS之上提供内存保护,增强了不少嵌入式产品的安全性。
由于具有完全兼容的API,现有的embOS应用程序不用,或者简单修改就能兼容embOS-MPU。
主要特点:
适用于任何安全关键型应用
无限数量的特权和非特权任务
非特权任务100%沙盒化
简单直接的运行时配置
易于集成到新产品和现有产品中
---来源官网,谷歌翻译
什么是内存保护?
说到MPU(内存保护单元),这里就再来描述一下什么是内存保护。
内存保护是控制内存访问权限的一种流行机制,并且是大多数现代处理器体系结构和操作系统的一部分。内存保护的主要目的是避免特定任务访问尚未分配给它们的内存,从而防止一个任务中包含的可能的错误甚至恶意软件影响整个系统。
为了实现此目的,必须限制可能影响其他任务或OS本身的应用程序任务访问整个内存,特殊功能寄存器和OS的控制结构。例如,执行第三方代码的任务可能被认为是不安全的,因此应受到相应的限制。此类应用程序任务不得以与OS相同的特权状态运行,后者以完全特权模式运行,并且可以访问所有内存,外围设备和CPU功能。而是,这些任务必须在非特权状态下运行,并且只能访问特定的内存位置。
什么是embOS-MPU?
embOS-MPU使用硬件的内存保护单元以及用embOS-MPU实施的其他软件机制来防止一项任务影响系统的整体。这保证即使在一项任务中发生错误的情况下,所有其他任务和操作系统本身也可以继续执行。
使用embOS-MPU,所有特权任务都可以完全访问整个内存。但是,无特权的任务具有对每个不同的内存区域的特定访问权限。为了访问外围设备,可以从非特权任务中调用其他内存位置和OS控制结构,设备驱动程序以及特定的embOS API。
因此,基于embOS-MPU的应用程序包含两个不同的部分:
第一部分以特权状态运行: 初始化MPU设置并包括设备驱动程序。此部分包含关键代码,必须经过验证才能完全可靠。
第二部分是应用程序本身: 不需要为完全可靠性而进行验证。由于它以非特权状态运行,因此该部分不会影响整个系统。
4embOS-Safe
embOS-Safe从描述也能猜测到,它是经过认证的功能安全的RTOS。
embOS-Safe同样是embOS的发展产物,与embOS相关的应用程序编程接口(API)相同。用户的应用程序可以轻松移植到该安全RTOS上。
特点:
增强您产品的安全性!
简化认证并降低风险
通过德国TÜV Süd的IEC 61508 SIL3和IEC 62304 C类认证
责任编辑:haq
-
API
+关注
关注
2文章
1500浏览量
62006 -
RTOS
+关注
关注
22文章
813浏览量
119627 -
源代码
+关注
关注
96文章
2945浏览量
66745
发布评论请先 登录
相关推荐
评论