Threadx简介
1.0Threadx的独特功能
与其他实时内核不同,ThreadX具有通用性-通过使用功能强大的CISC,RISC和DSP处理器的应用程序,可以轻松地在基于微控制器的小型应用程序中扩展。
ThreadX可基于其基础体系结构进行扩展。因为ThreadX服务是作为C库实现的,所以只有应用程序实际使用的那些服务才被带到运行时映像中。因此,ThreadX的实际大小完全由应用程序确定。对于大多数应用程序,ThreadX的指令映像大小在2 KB至15 KB之间。
1.1picokernel™架构
ThreadX服务没有像传统的微内核体系结构那样相互叠加,而是直接插入其核心。这导致最快的上下文切换和服务呼叫性能。我们称这种非分层设计为picokernel体系结构。
1.2ANSI C源代码
ThreadX主要是用ANSI C编写的。需要少量的汇编语言才能将内核定制为基础目标处理器。通过这种设计,可以在很短的时间内(通常在几周内)将ThreadX移植到新的处理器系列中!
1.3先进的技术
以下是ThreadX高级技术的重点。
- 简单的picokernel架构
- 代码大小的自动缩放(代码使用空间小)
- 确定性处理
- 快速的实时性能
- 抢先式和合作式调度
- 灵活的线程优先级支持
- 动态系统对象创建
- 无限数量的系统对象
- 优化的中断处理
- 抢占阈值
- 优先继承
- 事件链
- 快速软件计时器
- 运行时内存管理
- 运行时性能监控
- 运行时的堆栈分析
- 内置系统跟踪
- 强大的处理器支持
- 大量的开发工具支持
- 完全中性
1.4不是黑匣子
ThreadX的大多数发行版都包含完整的C源代码以及特定于处理器的汇编语言。这消除了许多商业内核中出现的“黑匣子”问题。使用ThreadX,应用程序开发人员可以确切地看到内核在做什么—毫无疑问!
源代码还允许对应用程序进行特定的修改。尽管不建议这样做,但是如果绝对需要,具有修改内核的能力当然是有益的。
对于习惯于使用自己的内部内核的开发人员而言,这些功能尤其令人欣慰。他们希望拥有源代码和修改内核的能力。ThreadX是此类开发人员的终极内核。
2.0安全认证
2.1TÜV认证
根据IEC61508和IEC-62304,ThreadX已通过SGS-TÜVSaar认证,可用于安全关键型系统。该证书确认ThreadX可用于安全相关软件的开发,以达到国际电工委员会(IEC)61508和IEC 62304的最高安全完整性级别,用于“与电气,电子和可编程电子安全相关的功能安全”。系统。” 由德国SGSGroup和TÜVSaarland合资成立的SGS-TÜVSaar已成为领先的经认证的独立公司,致力于测试,审核,验证和认证全球安全相关系统的嵌入式软件。工业安全标准IEC 61508及其衍生的所有标准(包括IEC 62304)均用于确保电气,
根据ISO 26262标准,SGS-TÜVSaar已通过ThreadX认证,可用于安全关键型汽车系统。此外,ThreadX还通过了汽车安全完整性等级(ASIL)D认证,该等级代表了ISO 26262认证的最高水平。
此外,SGS-TÜVSaar已通过ThreadX认证,可用于安全关键型铁路应用,符合EN 50128标准,最高达到SW-SIL 4。
- 符合SIL 4的IEC 61508
- IEC 62304最高SW安全等级C
- ISO 26262 ASIL D
- EN 50128 SW-SIL 4
2.2符合MISRA C
MISRA C是使用C编程语言的关键系统的一套编程指南。最初的MISRA C指南主要针对汽车应用。但是,MISRA C现在被广泛认为适用于任何安全关键型应用。ThreadX符合MISRA-C:2004和MISRA C:2012的所有“必需”和“强制性”规则。ThreadX还符合除三个“建议”规则之外的所有规则。
2.3UL认证
ThreadX已通过UL认证,符合UL 60730-1附件H,CSA E60730-1附件H,IEC 60730-1附件H,UL 60335-1附件R,IEC 60335-1附件R以及UL 1998的安全标准可编程组件中的软件。与IEC / UL 60730-1及其附件H中对“使用软件进行控制”的要求一起,IEC 60335-1标准在其附件R中描述了对“可编程电子电路”的要求。IEC 60730附件H和IEC 60335 -1附件R解决了在洗衣机,洗碗机,烘干机,冰箱,冷冻机和烤箱等设备中使用的MCU硬件和软件的安全性。
UL / IEC 60730,UL / IEC 60335,UL 1998
2.4认证包
ThreadX Certification Pack™是100%完整的,交钥匙的,特定于行业的独立软件包,它提供所有ThreadX证据,以证明或成功提交基于ThreadX的产品达到安全性所需的最高可靠性和关键性级别。关键的航空,医疗和工业系统。支持的认证包括DO-178B,ED-12B,DO-278,FDA510(k),IEC62304,IEC-60601,ISO-14971,UL-1998,IEC-61508,CENELEC EN50128,BS50128和49CFR236。请与Microsoft联系以获取有关证书包的更多信息。
3.0嵌入式应用
嵌入式应用程序在诸如无线通信设备,汽车引擎,激光打印机,医疗设备等产品内的微处理器上执行。嵌入式应用程序的另一个区别是它们的软件和硬件具有特定的用途。
3.1实时软件
当对应用软件施加时间限制时,它称为实时软件。由于嵌入式应用程序与外部事件的固有交互作用,因此几乎总是实时的。
3.2多任务
如前所述,嵌入式应用程序具有专用的目的。为了实现此目的,软件必须执行各种任务。任务是执行特定职责的应用程序的半独立部分。同样,有些任务比其他任务更重要。嵌入式应用程序中的主要困难之一是在各种应用程序任务之间分配处理器。竞争任务之间的这种处理分配是ThreadX的主要目的。
3.3任务与线程
关于任务的另一个区别是,术语“任务”以多种方式使用。有时它意味着可单独加载的程序。在其他情况下,它可以引用内部程序段。因此,在当代的操作系统中,有两个术语或多或少地代替了task的使用:process和thread。甲过程是具有其自己的地址空间中的完全独立的程序,而一个线程是一个半独立的程序段,一个进程内执行。线程共享相同的进程地址空间。与线程管理相关的开销很小。
大多数嵌入式应用程序无法承受与成熟的面向过程的操作系统相关的开销(内存和性能)。另外,较小的微处理器没有支持真正的面向过程的操作系统的硬件体系结构。由于这些原因,ThreadX实现了一个线程模型,对于大多数实时嵌入式应用程序而言,该模型非常高效且实用。
为避免混淆,ThreadX不使用术语task。取而代之的是,使用更具描述性和现代性的名称线程。
4.0ThreadX的好处
使用ThreadX可为嵌入式应用程序带来许多好处。当然,主要好处在于如何为嵌入式应用程序线程分配处理时间。
4.1响应速度更快
在像ThreadX这样的实时内核之前,大多数嵌入式应用程序通常通过C main函数内部的简单控制循环来分配处理时间。这种方法仍然在非常小的或简单的应用程序中使用。但是,在大型或复杂的应用程序中,这是不切实际的,因为对任何事件的响应时间都取决于最坏情况下一次通过控制回路的处理时间的函数。
更糟糕的是,每当对控制回路进行修改时,应用程序的时序特性都会改变。这使应用程序固有地不稳定,难以维护和改进。
ThreadX提供对重要外部事件的快速确定性响应时间。ThreadX通过其可抢占的,基于优先级的调度算法来实现此目的,该算法允许较高优先级的线程抢占执行中的较低优先级的线程。结果,最坏情况的响应时间接近执行上下文切换所需的时间。这不仅是确定性的,而且还非常快。
4.2软件维护
ThreadX内核使应用程序开发人员可以专注于其应用程序线程的特定要求,而不必担心更改应用程序其他区域的时间。此功能还使修复或增强利用ThreadX的应用程序变得更加容易。
4.3吞吐量增加
控制回路响应时间问题的一种可能的解决方法是添加更多轮询。这样可以提高响应速度,但仍不能保证恒定的最坏情况响应时间,也无济于事以增强应用程序的未来修改。同样,由于额外的轮询,处理器现在正在执行更多不必要的处理。所有这些不必要的处理都会降低系统的整体吞吐量。
关于开销的一个有趣的观点是,许多开发人员认为ThreadX之类的多线程环境会增加开销,并对总系统吞吐量产生负面影响。但是在某些情况下,多线程实际上通过消除控制循环环境中发生的所有冗余轮询而减少了开销。与多线程内核相关的开销通常是上下文切换所需时间的函数。如果上下文切换时间少于轮询过程,则ThreadX提供的解决方案可能会减少开销并提高吞吐量。这使ThreadX成为具有任何程度的复杂性或大小的应用程序的明显选择。
4.4处理器隔离
ThreadX在应用程序和基础处理器之间提供了独立于处理器的强大接口。这使开发人员可以专注于应用程序,而不必花费大量时间来学习硬件细节。
4.5划分应用
在基于控制循环的应用程序中,每个开发人员都必须对整个应用程序的运行时行为和要求有深入的了解。这是因为处理器分配逻辑分散在整个应用程序中。随着应用程序大小或复杂性的增加,所有开发人员都不可能记住整个应用程序的精确处理要求。
ThreadX使每个开发人员都摆脱了与处理器分配相关的麻烦,并允许他们专注于嵌入式应用程序的特定部分。此外,ThreadX强制将应用程序划分为明确定义的线程。就其本身而言,将应用程序划分为多个线程使开发更加简单。
4.6 便于使用
ThreadX在设计时就考虑了应用程序开发人员。ThreadX体系结构和服务调用接口旨在易于理解。因此,ThreadX开发人员可以快速使用其高级功能。
4.7缩短上市时间
ThreadX的所有优点都可以加速软件开发过程。ThreadX处理大多数处理器问题和最常见的安全认证,从而从开发计划中省去了这些工作。所有这些都可以缩短上市时间!
4.8保护软件投资
由于其体系结构,ThreadX可以轻松移植到新的处理器和/或开发工具环境。加上ThreadX将应用程序与底层处理器的细节隔离的事实,使ThreadX应用程序具有很高的可移植性。结果,保证了应用程序的迁移路径,并保护了原始开发投资。
-------------本文结束感谢您的阅读-------------
本文链接: http://1ywd1.github.io/2021/02/07/Threadx%E7%AC%AC%E4%B8%89%E7%AB%A0%E8%AE%B2%E8%A7%A3/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!