【单片机】空闲池结构
#define MSG_POOL_SIZE 8 // 消息池容量 #define MSG_MAX_LEN 256 // 单帧最大长度 typedef struct { uint8_t data[MSG_MAX_LEN]; uint16_t len; uint8_t in_use; // 1已分配, 0空闲 } msg_block_t; typedef struct { msg_block_t blocks[MSG_POOL_SIZE]; } msg_pool_t; msg_pool_t g_msg_pool; // 初始化 void msg_pool_init(msg_pool_t *pool) { for (int i 0; i MSG_POOL_SIZE; i) { pool-blocks[i].len 0; pool-blocks[i].in_use 0; } } // 申请一个消息块O(n)nMSG_POOL_SIZE够小 msg_block_t *msg_pool_alloc(msg_pool_t *pool) { for (int i 0; i MSG_POOL_SIZE; i) { if (!pool-blocks[i].in_use) { pool-blocks[i].in_use 1; pool-blocks[i].len 0; return pool-blocks[i]; } } return NULL; // 池耗尽 } // 释放 void msg_pool_free(msg_block_t *block) { block-in_use 0; block-len 0; }消息池本身只是一个内存分配器消息池只解决一个问题避免malloc。//通道支持协议数 #define CFGCOM_485_PRTLNUM 0x01 //接收通信BUF的长度必须是2的幂次 #define CFGCOM_485BUF_SIZE (1024U) //接收通信BUF static INT8U sU8_485_RCVBuf[CFGCOM_485BUF_SIZE]; //偏移组 static INT16U sU16_485_BufRcvOfs[1 CFGCOM_485_PRTLNUM 1]; //接收通信环 const STRU_COMRING comRingObj[] { {sU8_485_RCVBuf, sU16_485_BufRcvOfs, CFGCOM_485BUF_SIZE, CFGCOM_485_PRTLNUM}, }; #define FULLDUPLEX_COMM_RINGLIMIT 4 //发送数据单位 #define CFGCOM_TX_QUEUE_FRAME_SIZE (512) typedef struct { INT8U buf[CFGCOM_TX_QUEUE_FRAME_SIZE]; INT16U len; } STRU_TX_QUEUE_FRAME; //发送环乒乓形式 static STRU_TX_QUEUE_FRAME bllCom_fullDuplexSENDRing[FULLDUPLEX_INDEX_MAX][FULLDUPLEX_COMM_RINGLIMIT]; //发送环缓冲区 static INT8U bllCom_fullDuplexSENDRing_inOfs[FULLDUPLEX_INDEX_MAX]; //发送环缓冲区插入偏移量 static INT8U bllCom_fullDuplexSENDRing_outOfs[FULLDUPLEX_INDEX_MAX]; //发送环缓冲区取出偏移量 const STRU_SIGNRING bllCom_FDSENDTabl[FULLDUPLEX_INDEX_MAX] { bllCom_fullDuplexSENDRing, //指向环或环组的首地址 bllCom_fullDuplexSENDRing_inOfs, //指向插入数 bllCom_fullDuplexSENDRing_outOfs, //指向取出数 FULLDUPLEX_COMM_RINGLIMIT, //每个环有几个数据 sizeof(STRU_TX_QUEUE_FRAME), //环中每个成员的大小 FULLDUPLEX_INDEX_MAX, //环组拥有几个环 };

相关新闻

Coze智能体开发全流程与实战技巧

Coze智能体开发全流程与实战技巧

1. Coze 智能体概述第一次接触Coze平台时,我被"智能体"这个概念深深吸引。这不同于传统聊天机器人,而是一个具备完整身份设定和任务执行能力的AI实体。简单来说,你可以把它想象成一位虚拟员工——有明确的职责范围(天气…

2026/10/19 1:56:27 阅读更多 →
获客难题反复出现,企业为什么更适合 GEO+小程序模式,含零代码SAAS、AI编程、源码定制交付

获客难题反复出现,企业为什么更适合 GEO+小程序模式,含零代码SAAS、AI编程、源码定制交付

获客难题反复出现,企业为什么更适合 GEO小程序模式 摘要 在企业线上获客不断承压的背景下,传统依赖广告投流、平台流量和被动咨询转化的模式,正面临投入增加、线索分散、沉淀不足等现实挑战。虽然越来越多企业已经开始部署小程序作为线上承…

2026/10/19 0:50:43 阅读更多 →
AI分发能力:技术落地的核心竞争力解析

AI分发能力:技术落地的核心竞争力解析

1. 为什么说分发是AI的核心竞争力在AI行业摸爬滚打这些年,我越来越清晰地认识到一个事实:算法模型可以复制,算力资源可以购买,但用户触达和场景落地的能力才是真正的护城河。就像当年互联网时代的流量之争一样,AI时代的…

2026/10/18 12:01:29 阅读更多 →

最新新闻

显存不够怎么办:HERO-35B-A3B-i1-GGUF用7.6GB跑起35B大模型的极限技巧

显存不够怎么办:HERO-35B-A3B-i1-GGUF用7.6GB跑起35B大模型的极限技巧

【免费下载链接】HERO-35B-A3B-i1-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/mradermacher/HERO-35B-A3B-i1-GGUF 点击查看 免费下载 显存不够,还想本地跑35B大模型?HERO-35B-A3B-i1-GGUF 就是为你准备的。这个项目提供了一套完整的…

2026/10/19 1:56:24 阅读更多 →
【AI智能体】Langchain 结构化输出结果实战操作详解

【AI智能体】Langchain 结构化输出结果实战操作详解

目录 一、前言 二、Langchain 结构化输出介绍 2.1 什么是结构化输出 2.2 传统方式 vs 结构化输出 2.3 结构化输出模式 三、四种结构化输出格式使用 3.1 Pydantic 使用 3.1.1 基本使用 3.1.2 设置枚举类型 3.1.3 列表提取 3.1.4 嵌套结构 3.1.5 限制条件 3.2 TypedD…

2026/10/19 1:56:24 阅读更多 →
日记提示词:用结构化提问开启情绪疗愈与自我探索

日记提示词:用结构化提问开启情绪疗愈与自我探索

我身边不少朋友知道我有长期写日记的习惯,常来问我同一个问题:“日记到底怎么才能坚持写下去?”更常见的是:“我试过,翻开头一天写的内容,全是‘今天工作好累,吃了外卖’‘睡晚了’,…

2026/10/19 1:56:24 阅读更多 →
ArtCraft:Rust + Tauri AI 图像生成桌面应用源码构建完整指南,10 分钟从 clone 到出图

ArtCraft:Rust + Tauri AI 图像生成桌面应用源码构建完整指南,10 分钟从 clone 到出图

ArtCraft:Rust Tauri AI 图像生成桌面应用源码构建完整指南,10 分钟从 clone 到出图 【免费下载链接】artcraft ArtCraft is an intentional crafting engine for artists, designers, and filmmakers 项目地址: https://gitcode.com/GitHub_Trending…

2026/10/19 1:56:24 阅读更多 →
10 分钟录音练出 AI 变声模型:RVC WebUI 完整实战

10 分钟录音练出 AI 变声模型:RVC WebUI 完整实战

10 分钟录音练出 AI 变声模型&#xff1a;RVC WebUI 完整实战 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-…

2026/10/19 1:56:24 阅读更多 →
固态硬盘DRAM缓存有什么用?从原理到选购一次讲清

固态硬盘DRAM缓存有什么用?从原理到选购一次讲清

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

2026/10/19 1:55:24 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介&#xff1a;本资源为电源技术方向的学术研究文档&#xff0c;聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略&#xff0c;面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集&#xff0c;共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →