ThreadX的CMSIS-RTOS V2封装层升级至V1.4.0(2026-01-14)

https://github.com/STMicroelectronics/stm32-mw-cmsis-rtos-tx

CMSIS-RTOS v2(简称 CMSIS-RTOS2)为基于 Arm Cortex 处理器的设备提供了通用的实时操作系统接口。它为需要实时操作系统功能的软件组件提供了标准化 API,从而为用户和软件行业带来显著优势:

CMSIS-RTOS2 提供了许多应用所需的基础功能。
1、统一的 CMSIS-RTOS2 功能集降低了学习成本,简化了软件组件的共享流程。
2、基于 CMSIS-RTOS2 的中间件组件可兼容不同实时操作系统,适配更便捷。
3、标准化的 CMSIS-RTOS2 项目模板可随开源可用的 CMSIS-RTOS2 实现一同分发。

本 CMSIS-RTOS v2 封装层基于 ThreadX 实时操作系统的 API,对 CMSIS-RTOS v2 接口进行了实现。当前版本支持的功能如下:

CMSIS-RTOS v2 设计
内核初始化与启动
在 ThreadX RTOS 中,仅通过一个接口(tx_kernel_enter)启动内核。该函数将执行以下步骤:

_tx_initialize_low_level:调用底层初始化函数,处理所有处理器相关的初始化事务。
_tx_initialize_high_level:调用高层初始化函数,初始化所有 ThreadX 组件及应用程序的初始化函数。
tx_application_define:调用应用程序提供的初始化函数,并将首个可用内存地址传递给它。
_tx_thread_schedule:进入调度循环,开始执行线程。

对于 ARM CMSIS 方案,必须将内核初始化与内核启动分离,以便用户在此期间创建线程、定时器、信号量等。为此,我们将 CMSIS-RTOS2 封装层设计如下:

osKernelInitialize:通过调用 _tx_initialize_kernel_setup 函数,完成底层和高层的初始化。
osKernelGetState:将调用应用程序提供的初始化函数来启动内核。

动态内存管理
CMSIS-RTOS v2 的 API(如 osThreadNew)使用户在实现应用程序时可以选择:
传递已声明或在应用层分配的块内存及栈地址;
由底层(封装层或 RTOS)分配内存。

动态内存分配方案的总体思路是使用两个 ThreadX BytePool:
HeapBytePool:用于线程、定时器、互斥锁、信号量、事件标志和消息队列对象的块内存分配。
StackBytePool:用于线程和消息队列的栈内存分配。

为此,我们添加了以下三个内部函数:
MemInit 创建 HeapBytePool 和 StackBytePool
MemAlloc 为对象块或栈分配所需内存
MemFree 释放对象块或栈的内存

注意事项:
HeapBytePool 和 StackBytePool 的大小由用户通过宏定义 RTOS2_BYTE_POOL_HEAP_SIZE 和 RTOS2_BYTE_POOL_STACK_SIZE 分别指定。
HeapBytePool 和 StackBytePool 的最小大小由 ThreadX 宏定义 TX_BYTE_POOL_MIN 决定。
HeapBytePool 和 StackBytePool 从 ThreadX 变量 _tx_initialize_unused_memory 定义的第一个空闲内存区域中分配。

静态内存管理
CMSIS-RTOS v2 使用户在实现应用程序时能够静态分配内存。实际上,静态缓冲区将基于用户定义的 RTOS2_BYTE_POOL_HEAP_SIZE 和 RTOS2_BYTE_POOL_STACK_SIZE 进行创建和分配。HeapBytePool 和 StackBytePool 的最小大小由 ThreadX 宏定义 TX_BYTE_POOL_MIN 决定。

部分截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1158898.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6个最好实践指导您快速部署YashanDB

数据库技术在现代信息系统中扮演着核心角色,面对性能瓶颈、数据一致性和高可用性等普遍挑战,选择一款高效、稳定且易管理的数据库方案显得尤为重要。YashanDB凭借其灵活的部署架构和强大的功能组件,成为满足多样业务需求的理想选择。本文将系…

数据编织创新脉络:知识图谱在科技成果转化中的应用与价值探索

科易网AI技术转移与科技成果转化研究院在当今科技创新日新月异的时代,科技成果的转化与应用已成为衡量一个地区乃至国家创新能力的重要标尺。然而,科技成果转化路径复杂、信息不对称、资源匹配难等问题,长期制约着创新链与产业链的有效对接。…

【挖掘Windows这三个隐藏工具】

挖掘Windows这三个隐藏工具,解决90%的疑难杂症 当系统出问题时,多数人会重启或重装。但掌握下面三个工具,你能像专业工程师一样精准定位和修复问题。 1. 可靠性监视器:系统健康的“时间胶囊” 你肯定用过事件查看器,但…

阿西米尼Asciminib治疗慢性髓系白血病的深度分子学反应与疗程依赖性分析

慢性髓系白血病(CML)作为一种骨髓增殖性肿瘤,其治疗一直是血液学领域的重点。阿西米尼(Asciminib)作为全球首个STAMP抑制剂,通过靶向ABL肉豆蔻酰口袋抑制BCR-ABL1激酶活性,为CML患者提供了新的治…

机器人质量与成本控制十年演进

下面给你一条从工程系统、产业落地与长期治理出发的 「机器人质量与成本控制十年演进路线(2025–2035)」。 我会把重点放在**“控制”如何演进**,而不是单纯的质量或成本指标。一、核心判断(一句话)未来十年&#xff0…

7大关键因素保障YashanDB数据库的稳定性

在现代业务环境中,数据库的稳定性对于保障服务的连续性和数据的正确性至关重要。如何确保数据库系统的稳定运行,避免性能瓶颈、数据丢失以及故障中断,是企业数据库管理的重要课题。本文基于行业技术实践,从YashanDB数据库的架构与…

2026短剧业务研判

2026短剧业务研判一、核心结论(给管理层/负责人看的 1 页版信息密度) 结论1:2026短剧的胜负手从“押题材”转向“做系统”。 题材仍重要,但不会再是决定性变量。决定性变量是:你能否把短剧当成一套可复制的工程——内容…

数据编织创新网络:知识图谱如何重塑技术转移的生态新格局

科易网AI技术转移与科技成果转化研究院 在科技创新浪潮奔涌的时代,技术转移作为科技成果转化为现实生产力的关键环节,其效率与质量直接关系到创新生态的活力与协同水平。然而,科技成果转化长期面临供需匹配难、信息不对称、转化路径不清晰等…

7大关键指标评估YashanDB性能表现与资源优化策略

现代数据库系统面临的普遍挑战包括性能瓶颈、资源的合理利用以及数据的一致性保障。针对这些问题,YashanDB通过其架构设计、存储管理及优化机制,提供了高性能且稳定的数据库服务。本文面向数据库管理员、系统架构师及开发人员,深入解析评价Ya…

机器人质量控制十年演进

下面给你一条从工程实践、系统架构与产业治理出发的 「机器人质量控制十年演进路线(2025–2035)」。 重点不在“指标怎么提”,而在质量控制对象、控制方式和控制位置如何发生根本变化。一、核心判断(一句话)未来十年&a…

机器人成本控制十年演进

下面给你一条从工程系统、产业落地与长期运营视角出发的 「机器人成本控制十年演进路线(2025–2035)」。 重点不是“省钱技巧”,而是成本控制对象、控制位置与控制方式如何发生结构性变化。一、核心判断(一句话)未来十…

7个步骤构建基于YashanDB的强大应用程序

在现代应用程序开发中,数据库不仅仅是数据存储的工具,更是提高性能、确保数据一致性和提供高可用性的关键组成部分。因此,如何优化查询速度、提高数据存取效率以及增强系统的可靠性,成为开发者和架构师的关注重点。YashanDB作为一…

当跨链协议开始将业务从「搭桥」拓展至「swap」

撰文:Tia,Techub News 在早期单链时代,角色边界是非常清晰的。桥就是桥,DEX 就是 DEX,DEX 聚合器解决的是「同一条链上怎么换最便宜」。如果你在以太坊上把 ETH 换成 USDC,1inch、Matcha 这类工具就是天然选…

重磅!Volcano发布AgentCube,构建AI Agent时代的云原生基础设施

本文分享自华为云社区《重磅!Volcano发布AgentCube,构建AI Agent时代的云原生基础设施》 云原生批量计算引擎 Volcano 社区全新子项目 AgentCube 现已正式发布。AgentCube的诞生基于 Volcano 在大规模高性能计算调度领域多年的生产实践积累,…

7个关键问题解密YashanDB数据库的技术架构

在现代数据库技术不断发展与演进的背景下,数据的高并发访问、数据一致性与完整性问题逐渐成为企业用户面临的共同挑战。随着数据量的激增,以及对实时分析、事务处理、云计算等技术需求的增加,数据库架构的灵活性与高可用性显得愈发重要。本文…

机器人技术十年演进

下面给你一条从工程可行性、系统能力与产业落地出发的 「机器人技术十年演进路线(2025–2035)」。 我会刻意避开“像人类”“通用智能”的空泛叙事,聚焦哪些技术真的会发生跃迁、为什么、以及工程上意味着什么。一、核心判断(一句…

架构师觉醒:从重构到引领-第2集:画布上的第一笔:架构图重构

故事大纲(30集微故事版) 主角:陆维,35岁,某中型互联网公司技术专家,因一次重大生产事故被临时推上架构师岗位。他拥有扎实的技术功底但缺乏架构视野,在危机中意外“连接”到一个来自未来的架构思…

GD25Q64EWIGR,支持标准、双通道及四通道SPI的高速64M位串行闪存

型号介绍今天我要向大家介绍的是 GigaDevice 的一款存储器——GD25Q64EWIGR。 它的安全性能如同铜墙铁壁,拥有软件和硬件两种写保护功能,能够有效防止数据被意外删除或修改。它还配备了独特的安全寄存器,如同武士的护身符,能够保护…

Spring Boot MyBatis-Plus处理日期查询代码报错分析与修复

以下spring boot mybatis-plus代码报错: /*** 获取资金信息列表*/public List<CapitalInfoVO> queryList(NotNull CapitalInfoQueryDTO queryDTO) {LambdaQueryWrapper<CapitalInfo > queryWrapper new LambdaQueryWrapper<>();// 构造查询条件queryWrappe…

科技知识图谱:释放创新潜能,构建协同生态

科易网AI技术转移与科技成果转化研究院 在全球化竞争日益激烈的今天&#xff0c;科技创新已不再是单打独斗的智力较量&#xff0c;而是一场需要多方协同、资源整合的复杂系统工程。如何让科技成果从实验室走向市场&#xff0c;如何构建开放协同的创新生态体系&#xff0c;成为…