用数百行代码实现60亿设备互联:微软重金收购的ThreadX硬在何处

2023-05-16

origin: https://www.sohu.com/a/315222502_485057
2019年4月,微软收购了ThreadX的母公司Express Logic 公司, 而ThreadX有几亿个设备在运行

1. 物联网操作系统简介

物联网操作系统是一个实时、嵌入式、有网络通信功能的操作系统。其特点是系统资源较小,低功耗,低成本,安全可靠,并针对特殊的硬件和功能实现而设计。

物联网操作系统由内核、通信支持、外围组件、集成开发环境等组成,基于此,可衍生出一系列面向行业的特定应用。

2. ThreadX 简介

ThreadX 是由 Express Logic 公司开发的实时操作系统(RTOS),由 Express Logic公司开发,现已经被微软收购。

ThreadX创始人Edward L. Lamie博士曾经是美国加州大学斯坦尼斯分校计算机科学系教授,从事计算机科学的教学和科研工作多年。Lamie也是Nucleus RTOS(Accelerated Technology公司)的创始人。Nucleus从1.0版本发展到1.3版本后被Mentor收购,Mentor将Nucleus的版本修改为1.11后继续发展,而Lamie另立公司Express Logic,重新开发了一个ThreadX,最初版本是3.0,现在已经发展到了5.X。ThreadX和Nucleus虽然大体结构及大部分机制相似,但是Lamie 博士还是做了很多变化。

Express Logical位于加州San Diego,这里汇集了美国无线通信和医疗领域的高科技公司,著名的高通(Qualcom)公司总部就在San Diego,德州仪器、三星、Intel、摩托罗拉、松下等全球主流的高科技企业均在此地设有专门的无线通信研发机构,这使得ThreadX在无线通信领域有大量的应用。

和许多其他实时操作系统类似,ThreadX是多任务系统,应用在嵌入式操作系统中。大部分的开发工作在主机上完成,主机运行Windows或Linux系统,交叉编译器可以在主机上生成目标系统的机器码,然后下载到目标板上运行。

ThreadX采用抢占式调度,快速的中断响应,独立内存管理,支持线程间通信,互斥,事件和线程同步。支持优先级继承,这种微内核设计,使代码空间占用小。

ThreadX具有规模小、实时性强、可靠性高、无产品版权费、易于使用等特点,并且支持大量的处理器和SoC,广泛应用于消费电子、汽车电子、工业自动化、网络解决方案、军事与航空航天等领域中。

ThreadX是Express Logic针对高实时应用小面积速度快免费的RTOS。免版税的业务模式令ThreadX对于高容量器件来说极具吸引力。

ThreadX的简单易用也使带ThreadX的器件既能按时面市又不超预算,这些都是ThreadX在市场上成功并被大量使用的原因所在。目前Express Logic有超过62亿部设备都部署了其ThreadX RTOS系统,也是全球部署最多的RTOS之一。

2017年3月,Express Logic推出自家X-WARE物联网平台,该平台基于Express Logic的ThreadX RTOS和TCP/IP网络堆栈NetX DUO,针对嵌入式设备提供包括文件系统(FileX)、GUI、TCP/IP网络堆栈(NetX DUO)、USB协议栈等工业级解决方案。

微软通过这次收购,增加可以无缝连接到Azure的设备数量。Express Logic的Threadx RTOS加入了微软是对物联网设备的支持,并且与 Azure Sphere互为补充。微软选择Express Logic的Threadx RTOS主要是因为较好的安全认证和与Azure IoT Hub的现成连接。

微软希望将ThreadX与其现有的物联网系统Azure Sphere相结合,使制造商能够更轻松地创建可连接到Azure的MCU驱动设备。Azure Sphere在资源高度受限的设备中无法使用Azure Sphere,包括电池供电的装置以及闪存少于 64KB 的设备(例如灯泡、空调和医疗、家居设备等),于是采用Express Logic的ThreadX RTOS进行实时处理和更额外的安全认证。当物联网解决方案需要边缘计算功能时,还可以使ThreadX支持的设备连接到Azure IoT Edge设备。并希望通过此次收购覆盖超过90亿设备。

3. ThreadX 应用案例

据CMP统计表明,ThreadX RTOS已经占有全球第三大硬实时操作系统市场份额。

  • NASA"深度撞击"

2005年7月4日,美国国家航空航天局(NASA)成功实施了“深度撞击”飞船对坦普尔1号彗星的准确撞击,其中,ThreadX在其中发挥了关键作用,控制其中全部三套彗星成像仪的运行。ThreadX控制高分辨率摄像头、中分辨率摄像头和撞击目标传感器。每个设备都能帮助撞击器完成与彗星的撞击,并在撞击前、撞击发生时、撞击后收集科学研究数据。在三个控制器中,为使照相机能够执行它们的艰巨使命,ThreadX管理应用程序线程的调度,执行中断服务,以及传送消息。

航天的计算机系统首先要求的是可靠性,因为航天很多的环境都在极端温度和速度,主要的硬件都被设计成很耐用的状态,计算主频并不是要求很高,对于这种功能性简单但可靠性要求高,必须要保证可靠性运行,而且要经过美国航天局的认证。

  • 消费类电子

作为消费类电子产品,ThreadX得到了广泛的应用。惠普公司的多款数码相机中应用了ThreadX RTOS和配套的FileX文件系统组件,同时,惠普公司也在全系列打印机产品中使用了ThreadX RTOS, 其中采用Threadx开发所有的喷墨打印机;

ThreadX配有Express LogicTCP/IP协议栈NetX、文件系统FileX、USB协议栈USBX以及GUI开发包PEGX,所有这些都支持Tensilica最新的Diamond Standard 106Micro产品。低功耗Diamond Standard 106Micro是针对SoC(片上系统)设计中简单控制器应用而设计,为那些将产品从8位/16位控制器移植到32位处理器上的设计工程师理想选择。

其它数码产品应用还包括Panasonic公司的11Mbs无线网卡以及Konica-Minolta、Toshiba、Ricoh、Samsung等。目前在超过4亿5千万电子产品中得到广泛应用。

  • 瑞萨电子

目前ThreadX是瑞萨电子Synergy软件包的核心,可以帮助嵌入式设计人员加速开发,并在物联网领域实现差异化。在瑞萨电子2017年发布的新型RZ/N1解决方案套件中,瑞萨电子提供了在应用程序子系统上由ThreadX驱动的Express Logic X-Ware物联网平台的用例参考端口,ThreadX提供先进的调度、通信、同步、定时器、内存管理和中断管理设施。

  • Atmel

Express Logic的ThreadX RTOS和中间件使得设计人员能够使用爱特梅尔(Atmel)SAMA5处理器器件,将其项目更快地推向市场。ThreadX完全支持爱特梅尔所有基于ARM的处理器器件,包括新的SAMA5D3系列,并且兼容爱特梅尔Studio 6和IAR嵌入式Workbench IDE。该解决方案提供了易用性、直观API、完整源代码、免权益金许可,以及出色的文档资料和支持,实现无故障设计体验,并且能够更快地将原型推向市场。

  • Kinetis MCU-恩智浦半导体

恩智浦半导体在其Kinetis MCU中广泛使用了ThreadX RTOS,因为Express Logic具备出色的低功耗性能和智能功能集成、外设集合可扩展性,可以完全支持物联网、消费设备、便携式工业、智能电网和智能电表。

  • ThreadX支持的CPU有:

PowerPC,680x0/683xx,ColdFile,ARM7,ARM/Thumb,MCORE,ARC,TriCore,X86,StrongARM,MIPS,SH,I960,V8xx,SPARC,Xscale,H8/300H,TMS320C。

  • 手机操作系统的应用:国内的中兴u860手机,酷派F650手机。

4. ThreadX产品介绍

ThreadX是一个实时操作系统(RTOS),大多数RTOS用于嵌入式系统,专用于对特定硬件进行控制。对于特定硬件直接开发一个专用的应用程序也可以进行控制,而使用RTOS最重要的特性在于确定性,对于系统的每一个状态和输入,都能有一个特性的输出和下一状态。另外RTOS符合一个特定的时间约束,就是说这个输出结果必须是在特定的时间内获取。

以下是Thread X一些特殊的设计和性能:

(1) 优先级调度

ThreadX和其它RTOS和嵌入式操作系统一样,都是内核化的,具备上下文切换、时间片轮转,基于优先级的调度以及继承和翻转机制等。在优先级调度中有一个特有特征是抢占阈值(Preemption-threshold)。用一个优先级上限值来消除一定的占先操作。这种设计是一种相对增强和灵活的优先级调度机制,可以在时间片轮转中的资源分配和优先级调度中实现折衷。

(2) 对节能的支持

大部分处理器都可以进入低功耗模式,但这种模式是一种中断等待模式,通过操作系统的中断指令回到正常模式,所以操作系统性能一个很重要的指标就是判断低功耗模式并设置更加精确的时间刻度,并通过定时器编程来实现,ThreadX通过特定的服务程序调整Thread X定时到指定的量的时间片。这样能实现非常苛刻的时间要求保证芯片的低功耗切换。

(3) 内存管理

Thread X用两种内存管理来管理资源:内存字节池和内存块池。能给用户带来极大的灵活性。

内存字节池可根据线程需求分配任何字节大小内存块,Thread X对字节池的使用和数量没有限制。但这种连续内存分配会带来的碎片化,Thread X得碎片整理可以尽量减小额外开销。

而作为在实时操作系统中应用更多的内存块池,ThreadX用一个FIFO顺序维线程提供内存,通过链表操作简化内存分配的寻址以提高实时性。

(4) 线程间通信和互斥

ThreadX提供32位信号量进行通信,信号量除了互斥,还能提供事件通知以及线程同步。互斥量一般用于对临界区的控制,具有线程的所有权,可靠性更高,但信号量在速度上更胜一筹。

Thread X使用消息队列进行线程中通讯,而且遵循先进先出(FIFO)的原则。

(5) 异常处理

Thread X作为RTOS和处理器处理能力的紧密结合,简单易用而且功能强大。

ThreadX的初始化发生在应用程序的主函数中,一个调用进入到ThreadX初始化程序中,在这个函数中可以定义自己设置的系统对象(线程、队列、信号量、互斥量、定时器、内存池等)。

ThreadX的线程调度的上下文非常小,一般只占48字节的空间,尤其是减少中断处理的上下文以减少系统资源消耗。

ThreadX对处理器所有的程序异常和中断提供基本的处理,ThreadX程序设置针对异常处理事件的旋转循环,当异常发生时,开发者很容易设置断点以立刻检测到异常。

5. 物联网操作系统市场分析

物理网操作系统的特点需要满足内核实时性、可靠性、低功耗、可扩展等要求。相比PC和手机操作系统,物联网操作系统除具备传统操作系统的设备资源管理功能外,还需要屏蔽物联网碎片化的特征,提供统一的编程接口,实现统一的跨平台管理,降低应用的开发的成本和时间。因此需要更完善的GUI管理、网络管理、远程操作和存储能力的要求。

由于操作系统在产业链中处于极其特殊的地位,操作系统是物联网时代的战略制高点,决定了这不可能是纯粹技术比拼,而是综合实力的较量。今天PC和手机时代的操作系统霸主未必能在物联网时代延续霸业。而操作系统产业的规律是当垄断形成后,后来者就很难颠覆。对于微软这样的传统操作系统厂家也看中了这个巨大的市场机会。

未来物联网操作系统必然是基于云平台,因此未来的也将形成以现有云平台巨头为代表的寡头垄断,如亚马逊(FreeRTOS)、微软(ThreadX)、阿里(YUNOS)、华为(LiteOS)等。在底层的平台技术方面,微软占有一定的优势。但是在移动互联网时代,前台的交互系统也非常重要,如亚马逊的Alexa,但在目前这个阶段,可能计算平台比人工智能的交互界面更有优势,因为只有最大接入更多硬件设备和更大吞吐和数据量,应用才能越丰富,这个操作系统才能带给用户更好的体验,解决更多的问题。

中国M2M市场已经突破1亿,预计2020年市场规模将达1500亿元,是全球最大的市场,今年作为5G元年,物联网行业将迎来高速增长。在和国际巨头的竞争中,由于我们巨大的市场和领先的通讯和云计算技术积累,我国在这个领域处于第一梯队。目前华为LiteOS,阿里YunOS处于领先地位,华为依靠在底层技术研发和通信连接方面的技术积累,推出了全球最轻量的物联网OS内核,基于中国这个全球最大的通讯基础网络,通过运营商市场迅速扩张生态。而阿里作为国内最大的云服务商,在云计算市场领域占有国内绝对的市场份额,在汽车、机器人、智能硬件、互联网+产品等领域奠定了巨大的市场基础,占据了行业爆发前的有利地位。

对于中小创业企业而言,在不同的垂直细分领域可以研发专用的物联网OS,如RUFF,基于RUFF的物联网开发平台可发了针对工业领域的物联网应用产品 Ruff Plant Insight(设备宝)。如独角兽企业涂鸦智能,主要为智能家居产品提供物联网操作平台,用的是AWS的智能语音平台和开发架构。

中小企业也可以用开源社区的内核和中间件开发自己的专用操作系统,核心是挖掘行业和客户需求,提供高性能和低成本的解决方案。

国内外的各种物联网操作系统还有很多,大量芯片厂家(Intel、Arm)、嵌入式系统厂家(Vxworks,UBuntu)、IT企业(微软,Google,Oracle)都推出了自己的产品,其内核功能差异并不大,在开发语言、现有生态、对应用的支持等方面有一些差异。底层技术未来还是由大企业来主导,逐渐形成行业标准。小企业从应用出发,在细分领域拓展市场。对于想进入物联网行业的初创企业,选择好合适的操作系统架构,做一些应用方面的二次开发和创新,也很有机会。返回搜狐,查看更多

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用数百行代码实现60亿设备互联:微软重金收购的ThreadX硬在何处 的相关文章

  • [cartographer] 9. proto配置文件读取

    目录 1 proto文件 2 lua配置文件 3 代码 1 xff09 读取lua文件 2 xff09 赋值给proto options 获取proto参数值有两种方式 xff1a 1 xff09 lua文件 2 xff09 通过servi
  • [毫米波雷达建图系列]2. map generator node

    目的 xff1a 利用点云 xff0c 生成概率栅格地图 xff0c 并保存成 pgm 图片格式 主要的函数有三个 xff1a void GetGridMap 注册地图 SaveMap 可以保存成 pgm图片 或者 pcd 格式 xff08
  • 常见的旋转插值

    1 四元数slerp插值 slerp 插值的原理 xff1a 这里 slerp 插值的工程实现 xff1a eigen 的 slerp 函数 Eigen Quaterniond q 61 q0 slerp x0 q1 2 轴角插值 已知 R
  • docker限制cpu使用率

    start docker docker run itd name CONTAINER NAME privileged network host ipc 61 host hostname CONTAINER NAME env COLORFGB
  • Visual Studio + Opencv配置

    目录 Opencv安装 环境变量配置Visual Studio 库的两种配置 本文使用操作系统为Windows10 xff0c 仅适用于windows环境Visual Studio编译器上的 Opencv开发配置 Opencv所有平台通用的
  • jupyter notebook import torch报错

    create pytorch env 进入 pytorch 环境 conda activate pytorch name 安装jupyter notebook 安装ipykernel 用于安装kernel conda install ipy
  • 分享本地文件给其他人访问

    在想分享的文件夹下执行 python3 m http server 9999 https blog csdn net inter peng article details 121332985 为了保证不用每次都自己手动输入上述命令 xff0
  • C++ 文件读写fopen_s/fopen

    最好使用fopen s xff0c 使用fopen提示 not safe xff0c 二者区别如下 xff1a 1 fopen s的安全是在于比函数fopen多了溢出检测 2 在使用上 xff0c 函数fopen的返回值是文件指针 xff0
  • 齐次线性方程组和非齐次线性方程组

    定义 齐次线性方程组 等式右侧常数项全部为0 非齐次线性方程组 等式右侧常数项不全部为0 2 齐次方程组的求解 将系数矩阵化为行阶梯形矩阵 xff0c 记全为0的行数量为r 61 n R A 则非零行的首非零元所在列对应的就是约束变量 其余
  • C++求解汉明距离

    目录 汉明距离介绍汉明距离应用解法1 xff1a Brian Kernighan算法解法2解法3 汉明距离介绍 leetcode 461 汉明距离 xff0c 难度 xff1a 简单 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不
  • Qt无边框窗口,自定义标题栏,可拉伸,拖动,Qt5/6通用,windows, linux通用

    项目链接 gitee xff1a https gitee com linghuzhangmen qtframeless 截图 Qt6 4可编译 主要功能 xff08 1 xff09 自定义标题栏 可拖动 拉伸 xff1b xff08 2 x
  • QToolButton用法记录

    QToolButton是工具按钮 可以设置图标 文本 也可以结合qss灵活设置样式 例如下面的效果 点击之后 代码如下 include widget h include ui widget h include lt QDebug gt Wi
  • C#不使用配置文件封装log4net

    先使用NuGet安装log4net 如下图 log4net封装类 span class token keyword using span span class token namespace log4net span class token
  • Qt QTextEdit使用总结

    目录 QTextEdit类 QTextEdit基本用法 1 创建QTextEdit对象 2 设置文本 3 获取文本 4 插入文本 5 设置字体 字号和颜色 6 设置对齐方式 7 撤销和重做 8设置只读模式 9 信号与槽 10 多行显示 QT
  • C++ Qt智能指针使用教程

    C Qt智能指针使用教程 contents 一 QSharedPointer用法 二 QWeakPointer 三 QScopedPointer 四 QPointer 五 Qt智能指针需要注意的坑 Qt提供了类似C 11智能指针的实现 用于
  • 编程题:有两个字符串str1和str2,写一个函数实现在str1中查找str2的初始位置,要求不区分大小写

    编程题 xff1a 有两个字符串str1和str2 xff0c 写一个函数实现在str1中查找str2的初始位置 xff0c 要求不区分大小写 思路 xff1a 1 xff1a 首先判断两个字符串的大小 xff0c 作初步比较 2 xff1
  • vscode对C++程序进行调试

    调试helloworld 先建立一个文件夹然后在文件夹 xff0c 创建一个test cpp 写下一下内容 span class token macro property span class token directive hash sp
  • C++模拟go defer

    go defer介绍 在Go语言中 defer语句用于在函数返回之前执行一些代码 这对于释放资源或记录函数执行时间非常有用 当函数中有多个defer语句时 它们将按照后进先出 LIFO 的顺序执行 以下是一个简单的示例 演示了如何使用def
  • C++设计模式13:责任链模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式7:桥接模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式

随机推荐

  • C++设计模式8:组合模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式11:享元模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式15:解释器模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式16:迭代器模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式21:策略模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式18:备忘录模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式20:状态模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • stm32直流电机驱动与测速

    stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位 xff0c 51已经成为过去式 xff0c 32的功能更加强大 xff0c 虽然相应的难度有所增加 xff0c 但是依然阻止不了大家学习32的脚步 x
  • C++设计模式22:模板方法模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++ 设计模式23:访问者模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式17:中介者模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式14:命令模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • GPS 和 RTK 定位

    refers xff1a https blog csdn net u012241570 article details 80802675 GPS定位的基本原理 测量出已知位置的卫星到地面GPS接收器之间的距离 xff0c 然后接收器通过与至
  • 关于GD32的CMakeLists以及gcc部分编译选项的解释

    set CMAKE SYSTEM NAME Generic cmake最低版本 cmake minimum required VERSION 3 0 0 工程名称 语言 project TEST PRJ NAME LANGUAGES C C
  • ulimit -s 指定栈上的内存上限

    转自 xff1a http blog chinaunix net uid 24439730 id 144094 html ulimit s 指定栈上的内存上限 xff0c 单位为KB xff0c 如 xff1a root 64 wdqf1w
  • C++头文件重复包含问题

    为了避免同一个文件被include多次 有两种方式 1 span class token macro property span class token directive keyword ifdef span SOMEFILE H spa
  • TCP(select函数模型)

    客户端代码 include lt stdio h gt include lt sys types h gt include lt sys socket h gt include lt arpa inet h gt include lt st
  • i2c那些坑

    origin http bbs ntpcb com simple t126695 html I2C 的那些坑 一般情况下 xff0c i2c 设备焊接没什么问题 xff0c 按照设备手册一步步来 xff0c 基本上就顺风顺水能够用起来 如果
  • stm32f103系列引脚定义-功能图

    器件功能和配置 STM32F103xx增强型 STM32F103xx增强型模块框架图 STM32F103xx增强型VFQFPN36管脚图 STM32F103xx增强型LQFP100管脚图 STM32F103xx增强型LQFP64管脚图 ST
  • 用数百行代码实现60亿设备互联:微软重金收购的ThreadX硬在何处

    origin https www sohu com a 315222502 485057 2019年4月 xff0c 微软收购了ThreadX的母公司Express Logic 公司 而ThreadX有几亿个设备在运行 1 物联网操作系统简