Azure RTOS ThreadX是Microsoft的高级工业级实时操作系统(RTOS),专门用于深度嵌入式,实时和IoT应用程序。Azure RTOS ThreadX提供了高级计划,通信,同步,计时器,内存管理和中断管理功能。此外,Azure RTOS ThreadX具有许多高级功能,包括其picokernel体系结构,抢先阈值计划,事件链,执行性能分析,性能指标和系统事件跟踪。结合其卓越的易用性,Azure RTOS ThreadX是最苛刻的嵌入式应用程序的理想选择。截至2017年,Azure RTOS ThreadX已在多种产品中进行了超过62亿次部署,包括消费类设备,医疗电子产品和工业控制设备。

API协议

Azure RTOS ThreadX API

  • 直观一致的API
  • 名词动词命名约定
  • 所有API均具有领先的tx_,可轻松将其标识为Azure RTOS ThreadX
  • 阻塞API具有可选的线程超时
  • 可从应用程序ISR直接获得许多API

Azure RTOS ThreadX服务

  • 动态线程创建
  • 线程数无限制
  • 主线程API包括:
    • tx_thread_create
    • tx_thread_delete
    • tx_thread_preemption_change
    • tx_thread_priority_change
    • tx_thread_relinquish
    • tx_thread_reset
    • tx_thread_resume
    • tx_thread_sleep
    • tx_thread_suspend
    • tx_thread_terminate
    • tx_thread_wait_abort
  • 附加信息和性能API

消息队列

  • 动态队列创建
  • 队列数量无限制
  • 通过值(或通过指针引用)复制的消息
  • 邮件大小从1到16个32位字
  • 空和满时可选螺纹悬挂
  • 所有暂停的可选超时
  • 主要消息队列API包括:
    • tx_queue_create
    • tx_queue_delete
    • tx_queue_flush
    • tx_queue_front_send
    • tx_queue_receive
    • tx_queue_send_notify
  • 附加信息和性能API

计数信号量

  • 动态信号量创建
  • 信号灯数量无限制
  • 32位计数信号量(0到4,294,967,295)
  • 支持消费者生产者或资源保护
  • 当信号灯不可用时,可选的线程悬挂
  • 所有暂停的可选超时
  • 主要的信号量API包括:
    • tx_semaphore_create
    • tx_semaphore_delete
    • tx_semaphore_get
    • tx_semaphore_put
    • tx_semaphore_put_notify
  • 附加信息和性能API

互斥体

  • 动态互斥体创建
  • 互斥量的数量没有限制
  • 支持嵌套资源保护
  • 支持可选的优先级继承
  • 互斥锁不可用时可选的线程挂起
  • 所有暂停的可选超时
  • 主要互斥量API包括:
    • tx_mutex_create
    • tx_mutex_delete
    • tx_mutex_get
    • tx_mutex_put
  • 附加信息和性能API

事件标志

  • 动态事件标志组的创建
  • 对事件标志组的数量没有限制
  • 同步一个或多个线程
  • 支持原子获取和清除
  • 对AND / OR事件集的可选多线程挂起
  • 所有暂停的可选超时
  • 主要事件标志API包括:
    • tx_event_flags_create
    • tx_event_flags_delete
    • tx_event_flags_get
    • tx_event_flags_set
    • tx_event_flags_set_notify
  • 附加信息和性能API

块内存池

  • 动态块池创建
  • 块池数量无限制
  • 固定大小的块或池的大小没有限制
  • 最快的内存分配/交易位置
  • 空池上的可选线程悬挂
  • 所有暂停的可选超时
  • 主要块池API包括:
    • tx_block_pool_create
    • tx_block_pool_delete
    • tx_block_allocate
    • tx_block_release
  • 附加信息和性能API

字节内存池

  • 动态字节池创建
  • 字节池数量无限制
  • 字节池大小无限制
  • 最灵活的可变长度内存分配/取消分配
  • 支持分配大小位置
  • 空池上的可选线程悬挂
  • 所有暂停的可选超时
  • 主要的字节池API包括:
    • tx_byte_pool_create
    • tx_byte_pool_delete
    • tx_byte_allocate
    • tx_byte_release
  • 附加信息和性能API

应用计时器

  • 动态计时器创建
  • 计时器数量无限制
  • 支持定期或单次计时器
  • 定期计时器可能具有不同的初始到期值
  • 无需搜索计时器激活或停用
  • 所有定时器由一个硬件定时器中断驱动
  • 主要的计时器API包括:
    • tx_timer_create
    • tx_timer_delete
    • tx_timer_activate
    • tx_timer_change
    • tx_timer_deactivate
  • 附加信息和性能API

Azure RTOS ThreadX核心计划程序

  • 最小2KB闪存,1KB RAM占用空间
  • 快速的亚微秒上下文切换
  • 完全确定性,与线程数无关
  • 基于优先级的完全抢占式调度
  • 32个默认优先级,可选最高1024级
  • 优先级(FIFO)内的协作调度
  • 抢占阈值技术
  • 可选的计时器服务,包括:
    • 每线程可选的时间片
    • 所有阻塞的可选超时
    • API需要硬件计时器中断
  • 执行性能分析
  • 系统级跟踪
  • 通过许多标准的安全认证

来源

【ThreadX】Azure RTOS ThreadX概述的更多相关文章

  1. Azure 认知服务概述

    背景知识 近些年随着机器学习.深度学习等技术的不断发展,人工智能在越来越多的场景得到了应用,如人脸识别.图像识别.语音识别.语音生成.自然语言处理.决策分析等等,让机器拥有了听.说.看和思考的能力,很 ...

  2. Azure CosmosDB (1) 概述

    <Windows Azure Platform 系列文章目录> Azure CosmosDB是一个全球分布式数据库服务(Global Distributed Database),提供低延迟 ...

  3. Azure 虚拟机代理概述

    Azure 虚拟机代理(AM 代理)是受保护的轻型过程,用于管理 VM 与 Azure 结构控制器的交互. VM 代理有一个主要角色,目的是启用和执行 Azure 虚拟机扩展. VM 扩展可用于对虚拟 ...

  4. Azure Resource Manager 概述

    应用程序的基础结构通常由许多组件构成:可能有虚拟机.存储帐户和虚拟网络,或 Web 应用.数据库.数据库服务器和第三方服务. 这些组件不会以独立的实体出现,而是以单个实体的相关部件和依赖部件出现. 如 ...

  5. ThreadX移植——STM32H7+MDK-AC6平台

    作者:zzssdd2 E-mail:zzssdd2@foxmail.com 一.前言 在uCOS全家桶宣布开源之后被微软收购的ThreadX也开源了,真是喜大普奔,对于我们这些嵌入式行业从业者来说,能 ...

  6. 免费电子书:Azure Web Apps开发者入门

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:之前介绍过微软正在逐步出版一个名为Azure Essential的入门系列教程,最近刚 ...

  7. 设置将 Microsoft Azure 的网络基础结构以支持设置为灾难恢复站点

    Prateek Sharma 云 + Enterprise 高级项目经理 Azure SiteRecovery (ASR)可以将Microsoft Azure用作您的虚拟机的灾难恢复站点. 当管理 ...

  8. 使用Windows Azure创建Windows系统虚拟机-上

    创建虚拟机来运行Windows 本教程介绍了如何轻松创建运行Windows 的 Azure虚拟机(VM),用作来自Azure管理门户中映像图库的Windows 服务器映像.映像图库提供了多种图像,包括 ...

  9. 使用Windows Azure创建Linux系统虚拟机-上

    创建虚拟机来运行Linux 当您在Azure管理门户中使用映像图库时,创建运行Linux的虚拟机很容易.本指南告诉您如何做到这一点,假设你没有使用过Azure. 注意: 即使你不需要使用过Azure虚 ...

  10. Azure cli使用arm创建多网卡虚拟机

    登录 Azure CLI 并使用 Resource Manager 模式: azure config mode arm 在以下示例中,请将示例参数名称替换为你自己的值.示例参数名称包括 myResou ...

随机推荐

  1. DVWA File Inclusion(文件包含)全等级

    File Inclusion(文件包含) 目录: File Inclusion(文件包含) 前言 PHP伪协议 1.Low get webshell 本地文件包含 远程文件包含 2.Medium 3. ...

  2. Pikachu漏洞靶场 Unsafe Fileupload(文件上传)

    Unsafe Fileupload 文章目录 Unsafe Fileupload 1.client check 2.MIME type 3.getimagesize 1.client check 标题 ...

  3. react-native在windows环境搭建并使用脚手架新建工程

    截止到2024-1-11,使用的主要软件的版本如下: 软件实体 版本 react-native 0.73.1 react 18.2.0 react-native-cli 2.0.1 Android S ...

  4. 2020-11-05:谈一下TCP的拥塞控制。

    福哥答案2020-11-05: 所谓拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载.出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞旺旺表现为通信时延的增加 ...

  5. 日常Bug排查-应用Commit报错事务并没有回滚

    日常Bug排查-应用Commit报错事务并没有回滚 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材_. 应用Commit报错并不一定回滚 事 ...

  6. 小熊派开发实践丨漫谈LiteOS之传感器移植

    摘要:本文基于小熊派开发板简单介绍了如何在LiteOS中移植传感器,从而实现对于传感器的相关控制. 1 hello world 相信大家无论在学习编程语言开始的第一个函数应该是HelloWorld,本 ...

  7. 理解三值逻辑与NULL,你离SQL高手更近了一步

    什么是NULL NULL 用于表示缺失的值或遗漏的未知数据,不是某种具体类型的值.数据表中的 NULL 值表示该值所处的字段为空,值为 NULL 的字段没有值,尤其要明白的是:NULL 值与 0 或者 ...

  8. 想快速重构智慧园区5A系统,这份方案推荐给你

    摘要:近年来,园区的数字化一直在演进,从OA.CA.BA.SA.FA等单一系统的信息化建设,到以应用为主导的大系统集成,再到以云.大数据为基础的数据开放平台构建,继而进入全量数据融合.数字技术泛在的智 ...

  9. 跟我读论文丨ACL2021 NER 模块化交互网络用于命名实体识别

    摘要:本文是对ACL2021 NER 模块化交互网络用于命名实体识别这一论文工作进行初步解读. 本文分享自华为云社区<ACL2021 NER | 模块化交互网络用于命名实体识别>,作者: ...

  10. 一文详述DMS资源池队列阻塞告警及原理

    摘要: 本文主要对DMS资源池队列阻塞告警进行介绍,以及对其背后涉及的内核原理进行介绍. 本文分享自华为云社区<DMS资源池队列阻塞告警及原理介绍>,作者: codefulture. 一. ...