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. Hugging Face 年度回顾:2023,开源大模型之年

    在 2023 年,大型语言模型(Large Language Models,简称 LLMs)受到了公众的广泛关注,许多人对这些模型的本质及其功能有了基本的了解.是否开源的议题同样引起了广泛的讨论.在 ...

  2. IDEA美化教程

    一.IDEA 字体大小怎么设置(图文教程) IDEA 初次安装时,默认字体非常小,这种情况下,代码阅读起来非常费劲,对保护视力非常不友好.那么,要如何在 IDEA 中设置字体大小呢? 这里介绍两种方法 ...

  3. ifconfig详解

    linux下ifconfig命令详解 ifconfig 是一个用来查看.配置.启用或禁用网络接口的工具,这个工具极为常用的.可以用这个工具来临时性的配置网卡的IP地址.掩码.广播地址.网关等.也可以把 ...

  4. AntDesignBlazor示例——暗黑模式

    本示例是AntDesign Blazor的入门示例,在学习的同时分享出来,以供新手参考. 示例代码仓库:https://gitee.com/known/BlazorDemo 1. 学习目标 暗黑模式切 ...

  5. Programming Abstractions in C阅读笔记:p235-p241

    <Programming Abstractions in C>学习第66天,p235-p241总结. 一.技术总结 1.backtracking algorithm(回溯算法) (1)定义 ...

  6. 史上最强DIY,手工制作一只会说话的机器狗

    摘要:波士顿动力的机器狗,想要么?快来跟我一起动手制作吧. 波士顿动力的机器狗了解吗? 一个会后空翻.会开门.会爬楼梯的AI. 最近,我们实验室就来了一批mini版的机器狗,虽然不会各种高难度杂技动作 ...

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

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

  8. GaussDB(DWS)字符串处理函数返回错误结果集排查

    摘要:在使用字符串处理函数时,有时会出现非预期结果的场景.在排除使用问题后,应该从encoding和数据本身开始排查. 本文分享自华为云社区<GaussDB(DWS)字符串处理函数返回错误结果集 ...

  9. 详解GaussDB(DWS)的query_band负载识别与应用

    摘要:query_band是一个会话级别(session)的GUC参数,本身是字符串类型,支持任意形式字符组合. 本文分享自华为云社区<GaussDB(DWS)的query_band负载识别与应 ...

  10. 云图说|将源端MongoDB业务搬迁至华为云DDS的几种方式

    摘要:华为云文档数据库服务DDS能帮您在业务需要时,快速便捷的搬迁源端MongoDB业务上云. 如果您因业务调整或需要使用华为云文档数据库DDS特性功能时,可以通过数据迁移功能将原有MongoDB数据 ...