【01】初识ThreadX

【01】初识ThreadX简介ThreadX是一个成熟的商用硬实时嵌入式操作系统,被广泛应用于消费电子、航空航天、通信、工业控制与医疗等应用领域中,至今已服务超过62亿设备。它以轻量级的规模,提供了良好的实时性、可靠性与易用性,是嵌入式开发中不错的RTOS选择。凭借良好的发展势头,其母公司ExpressLogic于2019年被微软收购。技术上,ThreadXRTOS提供了高级调度、通信、同步、定时器、内存…

目录

 

简介

微内核

资料链接

入门索引


简介

ThreadX是一个成熟的商用硬实时嵌入式操作系统,被广泛应用于消费电子、航空航天、通信、工业控制与医疗等应用领域中,至今已服务超过62亿设备。它以轻量级的规模,提供了良好的实时性、可靠性与易用性,是嵌入式开发中不错的RTOS选择。凭借良好的发展势头,其母公司Express Logic于2019年被微软收购。

技术上,ThreadX RTOS提供了高级调度、通信、同步、定时器、内存管理、中断管理等基础功能。以及微内核体系结构、抢占阀值调度、事件链接、执行概要、性能指标和系统事件跟踪等高级特性。

作为一款老牌成熟商用操作系统,ThreadX提供了多种授权方案,包含Single Product、Single Product – Extended Branding、Product Family License、Microprocessor License、OEM License,甚至还有Custom License存在。并且授权后会提供完整源码,不收取运行时费用,也没有任何隐藏收费款项。


微内核

ThreadX采用微内核设计思想。所谓微内核,顾名思义就是精简的内核。将一般宏内核(例如linux kernel)中集成的系统服务层分离出来,变成可以根据需求动态加入的选件。优点是扩展性更高,资源占用更低,便于优化。缺点是标准微内核只提供了系统调度与核心功能,需要根据项目需求实现相关驱动,开发难度较大。

很重要的一点,微内核如果要对系统进行升级,只要用新模块替换旧模块即可,不需要改变整个操作系统,类似标准linux kernel的驱动模块。此外,ThreadX不像传统的内核架构那样在内核上层层叠加驱动,而是将服务直接插入核心调度。这样做能够提供更高效的上下文切换,提高服务调用性能。


资料链接

官网:https://rtos.com/solutions/threadx/real-time-operating-system/

Compatibility for POSIX:https://rtos.com/solutions/threadx/compatibility-for-posix/

API&User Guide:https://rtos.com/solutions/threadx/api/


入门索引

    ThreadX官网上提供了详细的文档、Windows下开发套件、多线程Demo。简要罗列如下:

 

  • ThreadX_User_Guide.pdf

    用户手册,入门必看。ThreadX采用picokernel”微内核”框架实现,目前最新版本为Version 5。

    没有额外说明的话,后续博文均默认参考该版本。

 

  • GUIX_User_Guide.pdf

    ThreadX提供了GUIX作为图形界面解决方案。GUIX专为嵌入式设计,原生就支持许多工业级显示需求。可以采用GUIX Studio快速开发。

 

  • GUIX_Studio_User_Guide-1.pdf

    ThreadX提供了运行于Windows环境的快速UI开发套件GUIX Studio。可以快速开发GUIX相关的图形界面程序。

 

  • FileX_User_Guide-1.pdf

    ThreadX提供了FileX作为文件系统解决方案。FileX支持FAT12、FAT16、FAT32、exFAT格式,可接入不限数量的存储设备(例如多块flash)。是一款采用连续分配实现的(ps:文件系统有三种分配方法,连续分配、链接分配和索引分配),高度优化的精简文件系统解决方案。

 

  • NetX_User_Guide-1.pdf

    ThreadX提供了NetX作为TCP/IP栈。NetX采用Piconet“微网络”框架,还实现了零拷贝机制,UDP快速寻址,BSD Socket API兼容等吸引人的特性。

 

  • NetX_Duo_User_Guide-1.pdf

    NetX Duo是基于NetX和Piconet的高性能实时网络解决方案。作为参考,其运行程序大小一般为5KB~30KB。

 

  • ThreadX_SMP_User_Guide.pdf

    ThreadX提供了SMP解决方案,同样采用picokernel”微内核”框架。作为参考,其运行程序大小一般为5KB~20KB。

 

  • USBX_Device_Stack_User_Guide-1.pdf
  • USBX_Host_Stack_User_Guide-1.pdf

    ThreadX提供了USBX作为USB框架,目前支持1.1、2.0和OTG规范(到2020.02.24为止还不支持3.0)。该框架分为设备侧与总线侧,两侧具有同样的三层结构:Controller layer | Stack layer | Class layer。

 

  • TraceX_User_Guide.pdf

    TraceX是一个运行于Windows环境的ThreadX RTOS系统分析工具。它提供了图形化的在线调试手段,便于用户分析嵌入式目标上运行的ThreadX系统事件信息,诊断系统问题,进行程序调优。

 

  • thread_metric_test_suite.zip

    官方发布的基准性能测试套件,用于测定当前ThreadX RTOS性能。

 

  • ThreadX_Demo_for_Win32.zip

    官方提供的上手Demo,一个完整的ThreadX多线程项目代码,可以在Windows环境中直接调试运行。

 

下一篇我们来搭建Windows端ThreadX学习开发环境。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215930.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于unity3d播放flash动画,使用插件uniswf

    关于unity3d播放flash动画,使用插件uniswf

    2021年11月21日
  • easyui(一) 初始easyui「建议收藏」

    easyui(一) 初始easyui「建议收藏」分享使我快乐。哈哈~–WZY一、什么是easyui?学习一个东西,最重要的是知道它的定位(是干嘛的,基本的用法是什么,快速入门),其实easyui也非常简单,不要觉得很难。easyui就是一

    2022年7月3日
  • Win7、Win10中Protel99se不能加载库文件解决方法「建议收藏」

    Win7、Win10中Protel99se不能加载库文件解决方法「建议收藏」Win7以后系统中Protel99se不能加载库文件解决方法在win7下安装Protel99se会出现无法添加原理图库,元件库的情况。如图,提示“filenotrecognized”。方法二:利用原理图FindComponent功能:首先,添加原理图库,在**.sch文件中点击“Find”(下图左)在“Path”中找到存放设计的文件夹,点击“Findnow”(下图右)再点击“close”即可;2)PCB库的添加如果在C:\Windows下找不到Advpcb

    2022年5月29日
  • ByteBuffer的allocate和allocateDirect

    ByteBuffer的allocate和allocateDirect在Java中当我们要对数据进行更底层的操作时,一般是操作数据的字节(byte)形式,这时经常会用到ByteBuffer这样一个类。ByteBuffer提供了两种静态实例方式:Java代码publics

    2022年7月3日
  • Pytest(2)使用和调用方法

    Pytest(2)使用和调用方法Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

    2022年7月31日
  • git如何退出vim_git提交的命令

    git如何退出vim_git提交的命令有很多方法:退出Vi当编辑完文件,准备退出Vi返回到shell时,可以使用以下几种方法之一。在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出,返回到shell。在末行模式下,输入命令:wVi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用

    2022年8月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号