节点模型在嵌入式系统中的应用
概述说明嵌入式系统最主要的目标就是并行处理各种任务。由于各种外设的事务到达时间的差异导致容易出现一段时间内出现大量的任务处理需求。对于FPGA来说还好但是对于ARM来说就是多个中断的同时处理容易出现问题。而且驱动之间的通信往往也需要进行并行处理所以选择一个可以并行运行的模型很重要。 之前一般是通过函数进行区分但是对于复杂的任务无法满足需求。后续通过技术储备学习找到了一个相对通用的模型节点模型。节点将每个模块划分为节点对象和输入输出以及连线。通过可视化的节点连接去描述设计的关系可以提高对象的封装程度可以大幅提高程序的一致性和稳定性。 节点系统的实现方法很多QT中有QtNode现成的框架实现RTOS可以封装C的信号与槽实现固定的节点系统。FPGA本身就是并行节点只需要用SV完成封装即可。目前通过一个[开源项目](https://gitcode.com/m0_46570640/logic)基本验证了节点模型在嵌入式的大部分场景下的封装效果。后续的设计说明基本上也是基于这个节点模型的开发验证。节点模型的组成节点对象一般在原型设计阶段会对设计进行功能划分划分出来的就是节点对象。这里顺带推荐一个软件drawio用于绘制原型设计非常高效后续在嵌入式设计流程中会详细说明如何从头到尾开发一个嵌入式系统。这个属于嵌入式系统的功能定义的内容不过在采用节点模型后在节点定义的时候更加追求封装性这样对洗头膏划分的准确性要求也有所提高这个在后续的设计中会有所体现。输入输出在可视化节点中输入输出就是节点和其他节点的交互接口。对于非可视化的节点则是具体的总线端口。ARM一般是一个指针加上数据长度对于QT则是信号和槽对于FPGA则是一组封装好的interface。统一的输入节点输出是节点系统标准化的关键所以一般尽可能精简输入输出将特殊逻辑集中到节点内部完成。节点连线可视化节点一般采用现有的UI框架直接手动连线而对于非可视化节点直接连接信号与槽就可以。通过精简的信号去表达节点之间的连接关系也是设计封装性的体现。实际设计中保证输入输出之间的连线兼容性就可以提高灵活性但是会提高设计复杂度需要根据嵌入式系统的复杂度进行详细细分。节点模型部署方法QtNodeQtNode是基于QT6的一个开源项目可以可视化完成节点的设计提供内置的节点封装模型。节点的各个要素都可以在QT中完成。还有一个python的节点系统的版本这个在算法开发部分会涉及到。两个节点系统效果是等效的开发区别就是一个C一个Python两者在开发嵌入式系统的交互系统具备很好的效果。QT5一些嵌入式设备会搭建linux系统一般部署的都是一些低版本的QT进行图形界面的开发。这个时候一般直接适用QT的信号与槽去实现节点舍弃可视化节点的灵活性以换取性能。QT5的信号与槽天然就可以作为节点的输入和输出而OOP的设计方法就可以完成节点的封装。在实际使用中Qt5实现的固化节点系统基本上可以满足大部分的嵌入式系统开发的需求。RTOS相较于完整的linux操作系统的支持RTOS对于C的支持偏弱而且靠近终端的嵌入式系统也不大会去部署C的程序。所以在RTOS上实现节点系统会稍微麻烦一点需要在底层封装信号与槽的基础结构以及基于C的OOP设计方法。根据实际实现的效果用结构体可以完成节点系统的封装以及信号与槽的实现。不过信号与槽之间的仲裁需要内置在节点内这个需要内置模板去提高设计效率。System VerilogSV对于OOP的支持较高但是那个是用于仿真的在RTL设计中interface在一定程度上替代了class的作用。目前实测可以用interface实现类似C的OPP效果然后配置自带的输入输出的效果就可以完成节点系统的部署。与PS设计不同PL天然的并行性对于节点系统的开发是简化了的。这里PL由于全部作为通用的bit数据处理所以可以使用兼容性更广的总线完成节点模型的灵活性的提高。节点模型的标准化从上章可以看出节点在不同的嵌入式系统中实现的方法差异都比较大要想实现标准化的输出则需要在基本的节点要求下增加一些设计的约束以保证每个节点系统实现的框架基本一致。节点子系统subsystem一般的嵌入式系统都包含很多基础的子系统比如升级和存储等。所以节点模型一般作为节点子系统加入设计负责应用层的功能统一开发。将节点划分为子系统可以和一些其他的子系统完成并行存在可以更好满足嵌入式系统的功能需求。节点模块mdle节点模块就是节点的集合将节点进行分类开发主要目标是提高节点的继承性和标准性。对于支持OOP的程序构建一个基类节点去实现特定类型的节点需求是合理的。这个实际设计中也具备较高的价值QtNode这类可视化节点则强制要求每个节点模块都包含一个基类。节点对象node完成节点定义的类或者类似的语法结构主要是节点的所有功能都封装为节点对象以及输入输出。这个也是节点开发拓展的基础单元其他的模块都需要围绕这个对象进行展开。总线定义interface输入输出的标准化单元可以完成节点输入输出的兼容性保证。一般是由统一的数据结构加上数据结构的解析方法构成可以体现节点之间是否可以相互连接的关系是节点标准化处理的关键。总结说明本文主要是描述节点模型的定义以及部署的方法为后续的实战总结做好准备。节点模型是后面所有设计的方法学基本上所有的设计都会用这个方法学进行展开所以将这篇文章作为嵌入式设计的第二篇。后续如果在设计中有了对于节点模型新的感悟会多节点模型的方法进行进一步补充本次主要是对现有设计的方法进行总结以保证可以按照这个模型的方法进行新的功能开发。

相关新闻

网络安全攻防训练平台设计与实现:B/S架构与虚拟化靶机落地指南

网络安全攻防训练平台设计与实现:B/S架构与虚拟化靶机落地指南

简介:这份PDF文献面向信息安全专业学生、网络攻防教学人员及安全运维从业者,围绕虚拟化技术下攻防训练平台的设计与实现展开,可用于课程设计参考、毕业课题选题或实训环境搭建思路借鉴。资源包共1个PDF文件,约221KB,内…

2026/10/5 13:20:05 阅读更多 →
小波多尺度分解结合SSA:GNSS坐标时间序列非线性抖动拆解与精度提升

小波多尺度分解结合SSA:GNSS坐标时间序列非线性抖动拆解与精度提升

简介:这份文档面向从事GNSS数据处理、地壳形变监测与地球动力学研究的学习者和科研人员,聚焦站坐标时间序列中非线性运动趋势难以用线性速度完整描述的问题,提出小波多尺度分解与奇异谱分析(SSA)相结合的建模思路。资源…

2026/10/5 13:20:05 阅读更多 →
一句话生成短视频 操作方法:5步从创意到成片,哪步最容易返工(2026)

一句话生成短视频 操作方法:5步从创意到成片,哪步最容易返工(2026)

本文回答:一句话生成短视频要经过哪五步(扩写成剧本、定角色、拆分镜、逐镜生成、剪辑配音),每步手工做和交给产线做的输入输出分别是什么,返工集中在哪一步、根子在哪,以及几种做法怎么选。 一句话生成短视…

2026/10/5 13:19:05 阅读更多 →

最新新闻

Freebuff 评测:做“免费模型体验场”很香!

Freebuff 评测:做“免费模型体验场”很香!

① 这东西到底是什么 Freebuff 是一款100% 免费的 AI 编程 Agent 全家桶,靠广告变现("看广告换 token"模式)。背后是 YC 2024 秋季班的 Codebuff, Inc.(创始人 James Grugett Brandon Chen),项…

2026/10/5 15:19:49 阅读更多 →
portal-ai-plugins传输层源码解读:aika.sh的一次一投设计、ARG_MAX载荷上限与错误处理细节

portal-ai-plugins传输层源码解读:aika.sh的一次一投设计、ARG_MAX载荷上限与错误处理细节

portal-ai-plugins传输层源码解读:aika.sh的一次一投设计、ARG_MAX载荷上限与错误处理细节 【免费下载链接】portal-ai-plugins 项目地址: https://gitcode.com/gh_mirrors/po/portal-ai-plugins portal-ai-plugins 是 Spotify Portal 的官方 AI 插件仓库&a…

2026/10/5 15:19:48 阅读更多 →
采购脆性薄片搬运设备时,如何穿透“样机包装成量产案例“的宣传话术,核验厂家的真实量产成色

采购脆性薄片搬运设备时,如何穿透“样机包装成量产案例“的宣传话术,核验厂家的真实量产成色

摘要:本文围绕玻璃基板搬运设备采购中的「量产案例核实」展开,核心观点是样机与量产之间存在本质差距,采购方需自行拆解研发样机、客户端验证、量产导入三个阶段。文章给出确认厂家真实量产案例的六个动作(数台数、看验收、验现场…

2026/10/5 15:18:48 阅读更多 →
C++ 第 31A 课:先把 ROS2 Publisher 讲成人话

C++ 第 31A 课:先把 ROS2 Publisher 讲成人话

上一课答案第 1 题class Dog : public Animal其中:Animal → 父类 Dog → 子类第 2 题class MyNode : public rclcpp::Node表示:定义一个自己的类 MyNode,它继承 ROS2 的 rclcpp::Node,因此拥有 ROS2 节点的基础能力。第 3 题M…

2026/10/5 15:18:48 阅读更多 →
军队文职考试——第12期

军队文职考试——第12期

1.1 谈一谈当前网络管理和多媒体的应用发展趋势 网络管理方面 当前网络管理正在从“人管网络”往“AI管网络”的方向走。以前网络管理员得盯着屏幕看告警、手动配设备,现在越来越依赖AI来做事情。根据2026年的市场报告,AI已经深度嵌入到网络运维的各个环…

2026/10/5 15:17:47 阅读更多 →
企业宣传片创作全流程实战指南

企业宣传片创作全流程实战指南

做视频内容创作的朋友,最近应该都深有体会:创意构思花三天,拍摄剪辑耗一周,最后成片效果还可能因为预算或技术限制大打折扣。尤其是当我们需要同时应对品牌故事讲述、多平台分发以及不同语种的市场拓展时,传统的人力堆…

2026/10/5 15:17:47 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →