zoukankan      html  css  js  c++  java
  • 【STM32H7】第1章 选择ThreadX的优势

    论坛原始地址(持续更新):http://www.armbbs.cn/forum.php?mod=viewthread&tid=99514

    第1章   选择ThreadX的优势

    初学ThreadX,一般都比较关心这个问题,所以把这个问题放在第一章简单的说说。 这里分为八个方面跟大家进行说明。

    1.1 ThreadX移植的难易程度

    1.2 ThreadX上手难用程度

    1.3 ThreadX实时性

    1.4 ThreadX完整的中间件

    1.5 ThreadX高等级安全认证

    1.6 ThreadX多核支持

    1.7 ThreadX应用程序动态加载

    1.8 ThreadX各行各业应用案例

    1.9 总结

    1.1   ThreadX移植的难易程度

    ThreadX内核提供好了各种主流硬件平台和软件平台的移植文件,如下图所示:

     

    对于STM32H7来说,使用的是cortex-m7内核的文件,里面已经提供了MDK AC5,MDK AC6,IAR和GCC。

     

    有了提供好的port文件,移植也就比较省事,用户仅需使能系统时钟,使能相关宏定义即可使用。

    1.2   ThreadX上手难易程度

    ThreadX配套的官方手册在RTOS 基础知识、 API 函数及其举例方面都做的不错,用户上手比较容易。随着后面章节的学习,大家会体会到这一点。

    1.3   ThreadX 实时性

    ThreadX在大多数流行的处理器上实现了亚微秒的上下文切换时间。除了速度快之外,ThreadX还具有高度确定性。无论准备好200个线程还是仅准备一个线程,它都能实现相同的快速性能。

    以下是ThreadX的一些典型性能特征:

    •   快速启动:

    ThreadX的启动时间少于120个周期。

    •   可选的错误检查机制:

    当验证了应用程序代码并且不再需要对每个参数进行错误检查时,可以在编译时跳过ThreadX错误检查,优化性能。

    •   Picokernel™ Design(微内核设计):

    服务不会彼此套用,从而消       除了不必要的函数调用开销。

    •   优化的中断处理:

    除非需要抢占,否则仅在ISR进入/退出时才保存/恢复暂存寄存器。

    •   优化的API处理:

     

    测试平台:200MHz处理器。

    1.4    ThreadX完善的中间件

    ThreadX有自己完善的中间件,我们称之为ThreadX全家桶:

     

    包括文件系统FileX,GUI图形设计GUIX,网络协议栈NetX,USB协议栈USBX,GUIX上位机调试软件GUIX Studio,跟踪调试软件TraceX等。

    使用全家桶方案,最大的优势是用户无需倒腾各种组件与内核的兼容性,而且后期升级维护也非常方便。实际项目中,这种全家桶方式还是非常推荐的。

    1.5   ThreadX高等级安全认证

    ThreadX及其所有中间件的安全认证等级,至今没有一款小型RTOS可以与其匹敌。这么多安全认证,公司要入大量财力,人力和物力才可以完成,早前Micrium的一篇文章还谈过这个问题,投入了太多资金和人力了,还与风河的VxWorks做了简单对比。

    (1)医疗 - FDA510(k),IEC-62304 Class C,IEC-60601,ISO-14971

    (2)工业 - UL-1998,IEC-61508 SIL 4

    (3)运输/铁路 - EN50128 SIL 4,BS50128,  49CFR236,IEC-61508

    (4)航空航天设备 - DO-178B,ED-12B,DO-278

    (5)汽车 - IEC-61508 ASIL D

    (6)核应用 - IEC-61508

    (7)家电 - UL/IEC 60730/60335

    ThreadX的安全认证基本都达到了最高等级,像工业级认证IEC-61508达到了最高等级的SIL4,而uCOS,RTX5,embOS都是SIL3。

    除了ThreadX内核有安全认证,中间件GUIX,FileX,NetX,甚至是加密库都有安全认证。在安全领域,ThreadX基本已经做到了登峰造极。

    1.6   ThreadX多核支持(AMP&SMP)

    ThreadX通常以非对称多处理(Asymmetric Multiprocessing, AMP)方式使用,其中ThreadX和应用程序(或其它系统)的单独在每个内核上执行,并通过共享内存或处理器间通信机制来相互通信,比如OpenAMP(ThreadX支持OpenAMP)。这是使用ThreadX的最典型多核配置,如果应用程序能够有效地加载处理器,则它可能是最高效的。

    对于处理器高度动态加载的环境,ThreadX对称多处理(Symetric Multiprocessing,SMP)可用于以下内核:

    •   ARM Cortex-Ax
    •   ARM Cortex-Rx
    •   ARM Cortex-A5x 64位
    •   MIPS 34K,1004K和interAptiv
    •   PowerPC
    •   Synopsys ARC HS
    •   x86

    ThreadX SMP在n个处理器之间执行动态负载平衡,并允许任何Core上的任何线程访问所有ThreadX资源(队列,信号量,事件标志,内存池等)。ThreadX SMP在所有内核上启用完整的API,并引入了适用于SMP操作的API。

    1.7   ThreadX应用程序动态加载

    (注:类似安卓APP)

    ThreadX MODULES可以使一个或多个应用程序线程捆绑到一个“模块(MODULES)”中,该模块可以在目标上动态加载和运行(或就地执行)。

    ThreadX MODULES启用现场升级(field upgrade),错误修复和程序分区,以允许大型应用程序仅占用活动线程所需的内存。

    ThreadX MODULES还具有与ThreadX本身完全独立的地址空间。这使ThreadX可以在MODULES周围放置内存保护(通过MPU或MMU),这样模块外部的意外访问将无法破坏任何其他软件组件。

    1.8   ThreadX各行各业应用案例

    62亿电子设备采用,是其它RTOS无法逾越的高山。ThreadX的产品涵盖了各种领域,包括NASA的多个太空探测项目,飞机自动驾驶仪系统,火星侦察轨道器等。

     

    对此,ThreadX官网给出了航空航天,工业,汽车,医疗,消费电子,物联网,片上系统等方向的具体案例 : https://rtos.com/x-ware-showcase/

     

    以消费电子方向为例,三星,NEST,HTC等都是其客户,对应的产品也非常多。并且这些产品的直接使用ThreadX全套,基本ThreadX有的,就不再使用第三方组件:

     

    1.9   总结

    本章节就为大家介绍这么多,更多相关介绍,大家可以到ThreadX官网看看。

     

    微信公众号:armfly_com 安富莱论坛:www.armbbs.cn 安富莱淘宝:https://armfly.taobao.com
  • 相关阅读:
    Proj THUDBFuzz Paper Reading: The Art, Science, and Engineering of Fuzzing: A Survey
    Proj THUDBFuzz Paper Reading: A systematic review of fuzzing based on machine learning techniques
    9.3 付费代理的使用
    11.1 Charles 的使用
    第十一章 APP 的爬取
    10.2 Cookies 池的搭建
    10.1 模拟登录并爬取 GitHub
    11.5 Appium 爬取微信朋友圈
    11.4 Appium 的基本使用
    11.3 mitmdump 爬取 “得到” App 电子书信息
  • 原文地址:https://www.cnblogs.com/armfly/p/14448031.html
Copyright © 2011-2022 走看看