新闻详情

新闻详情

首页 / 资讯中心 / 详情

SCP Firmware 的单线程事件模型

发布时间:2026/11/13 21:22:45来源:尧图网络
SCP Firmware 的单线程事件模型
SCP Firmware 为系统控制处理器提供电源、时钟、传感器等管理服务。在其 Framework 中Module 通过 Event 和 Notification 协作。理解这些消息如何被调度是阅读 Module 代码的基础。获取源码Arm 官方 SCP-firmware 仓库。本文使用v2.16.0版本。深入理解 ARM SCP Firmware 的 Event 与 Notification 机制1、Threading 在这里指什么本文的threading指 Framework 如何安排 Module 的事件处理工作。当前版本没有为每个 Module 创建独立线程Framework 在一条事件处理路径上取出消息调用目标 Module 的回调待回调返回后再处理下一条。因此Module 之间主要通过排队的消息协作而非依赖线程调度器轮流运行。这种单线程模型并不要求所有工作都同步完成。Module 可以启动一次硬件操作、结束当前回调待操作完成后通过新事件继续处理。异步的是工作流程不是同时运行了另一个 Module 线程。2、主循环如何调度事件在默认的独立运行模式下/framework/src/fwk_arch.c进入__fwk_run_main_loop()/framework/src/fwk_core.c中的主循环反复处理待办事件并在适当时机进入架构层的等待状态/* * framework\src\fwk_core.c */voidfwk_process_event_queue(void){for(;;){while(!fwk_list_is_empty(ctx.event_queue)){process_next_event();}if(!process_isr()){break;}}}noreturnvoid__fwk_run_main_loop(void){for(;;){fwk_process_event_queue();if(fwk_log_unbuffer()FWK_SUCCESS){fwk_arch_suspend();}}}Framework 维护三个相关队列见/framework/include/internal/fwk_context.h)free_event_queue保存可复用的 Event 对象event_queue保存待分发的普通事件isr_event_queue保存从中断上下文投递的事件。发送事件时Framework 将事件内容放入其管理的对象并依据当前上下文选取队列。队列里存放的是待处理的消息不是线程或正在执行的任务。fwk_process_event_queue()先逐条处理普通队列。process_next_event()根据事件的target_id找到目标 Module调用其process_event()或process_notification()回调返回后Framework 才取下一条。普通队列清空后process_isr()每次从 ISR 队列搬入一条事件再继续处理普通队列。这是 Framework 的事件分发顺序不代表硬件中断的优先级。3、中断与事件的边界单线程不等于没有中断。硬件中断仍可打断主循环ISR 完成必要的即时处理后可以投递 Event。中断返回时被打断的代码继续运行。新投递的 Event 要等主循环调度到它才会调用目标 Module 的回调。由此中断中的紧急工作与 Module 中较完整的后续处理分处两个阶段。普通代码和 ISR 可能访问同一份队列等共享状态因此仍需同步保护。Framework 在操作空闲事件对象和搬运 ISR 事件等关键位置使用短暂的中断屏蔽。这里需要防范的是主循环与中断之间的并发访问而非多个 Module 线程之间的竞争。4、对 Module 开发的影响一次事件回调会占用主循环直到它返回。若回调长时间忙等或等待硬件完成其他 Module 的 Event、Notification 和响应也会随之延后。因此耗时操作通常应拆成 “启动操作、返回、收到完成事件后继续处理” 几个阶段。/module/sensor/src/mod_sensor.c的异步读取展示了这种组织方式驱动读取尚未完成时请求先以FWK_PENDING表示结果待返回后续READ_COMPLETE事件到来再处理结果及延迟响应。整个过程跨越多个事件但不需要额外的 Sensor 线程。5、历史演进与运行方式2019 年的 SCP Firmware 架构演示 介绍过适用于 RTOS 环境的多线程模式。此后Framework 在 v2.10 版本移除了多线程特性本文所述版本的 Module Event 由单条事件处理路径串行分发。/* * change_log.md */SCP-firmware-version2.10New features-------------Framework:-Removed multi-threading feature,all platforms are now single threaded There is no longer any thread concept,please see relevant commitsfordetails.-framework:Add fwk_string interface运行环境与 Module 的事件调度是两个不同层次。默认独立运行时Framework 自己维持永久主循环启用SCP_ENABLE_SUB_SYSTEM_MODE时fwk_arch_init()初始化并处理当前待办事件后返回。此后外层运行环境需要在出现新事件时调用fwk_process_event_queue()并自行安排等待与唤醒。这种方式可用于将 SCP Firmware 集成到已有的 RTOS 或 TEE 环境但不会改变 Framework 内部串行处理 Module Event 的方式参见 框架运行阶段说明/doc/framework.md。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉