news 2026/5/11 5:01:11

minic的结构体内存对齐问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
minic的结构体内存对齐问题

8位MCU在使用结构体时,内部成员有bit,byte,word。

例如

struct Device_Data { byte B_JC :1; byte B_unlock :1; byte B_lock :1; byte B_CHG :1; byte R_SOC; byte R_version; word R_VBUS; byte B_ADC_CH_OK:1; byte B_A1 :1; byte B_A2 :1; byte B_C1 :1; byte B_C2 :1; byte NTC_temp; }

此时不同类型的数据不能混在一起,需要分开和对齐。不然会出现数据相互覆盖的情况。例如修改B_CHG会影响到R_SOC的值。

应该这样排列,不够一个byte,需要用B_reserved填充到1个byte

struct Device_Data { byte B_JC :1; byte B_unlock :1; byte B_lock :1; byte B_CHG :1; byte B_ADC_CH_OK:1; byte B_A1 :1; byte B_A2 :1; byte B_C1 :1;//1byte byte B_C2 :1; byte B_reserved0:1; byte B_reserved1:1; byte B_reserved2:1; byte B_reserved3:1; byte B_reserved4:1; byte B_reserved5:1; byte B_reserved6:1;//2byte byte R_SOC; byte R_version; byte NTC_temp; word R_VBUS; }

如果是32位MCU的话,最好32位对齐

struct Device_Data { byte B_JC :1; byte B_unlock :1; byte B_lock :1; byte B_CHG :1; byte B_ADC_CH_OK:1; byte B_A1 :1; byte B_A2 :1; byte B_C1 :1;//1byte byte B_C2 :1; byte B_reserved0:1; byte B_reserved1:1; byte B_reserved2:1; byte B_reserved3:1; byte B_reserved4:1; byte B_reserved5:1; byte B_reserved6:1;//2byte byte R_SOC; byte R_version; //4byte byte R_NTC_temp; byte R_reserved0; word R_VBUS; //8byte }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 8:40:02

Z-Image-Turbo_UI界面使用全记录:亲测文生图效果惊艳

Z-Image-Turbo_UI界面使用全记录:亲测文生图效果惊艳 最近试用了阿里通义推出的Z-Image-Turbo_UI界面镜像,整个过程比预想中更顺滑——没有复杂配置、不用写代码、不依赖云端服务,打开浏览器就能直接生成高质量图片。最让我惊喜的是&#xf…

作者头像 李华
网站建设 2026/5/9 13:24:56

AI股票分析师镜像部署案例:高校金融实验室搭建教学用AI分析沙盒环境

AI股票分析师镜像部署案例:高校金融实验室搭建教学用AI分析沙盒环境 在高校金融类课程教学中,学生常面临一个现实困境:缺乏真实、即时、可交互的市场分析工具来理解股票研究逻辑。传统教学依赖静态PDF报告或滞后新闻,难以培养动态…

作者头像 李华
网站建设 2026/5/9 7:46:51

Flowise模板市场实战:100+现成工作流快速复用技巧

Flowise模板市场实战:100现成工作流快速复用技巧 Flowise不是另一个需要从零写代码的AI开发平台,而是一个真正让业务人员、产品经理甚至非技术同事也能上手搭建AI应用的“工作流乐高”。当你看到“100现成模板”时,别只把它当成示例——它其实…

作者头像 李华
网站建设 2026/4/23 13:35:14

想定制功能?GLM-TTS二次开发入门指引

想定制功能?GLM-TTS二次开发入门指引 你是否遇到过这些场景: 为品牌定制专属播报音色,但现有TTS服务不支持方言克隆;需要让AI准确读出“重(chng)庆”而非“重(zhng)庆”&#xff0…

作者头像 李华
网站建设 2026/5/5 11:34:12

3个秘诀让游戏性能提升300%:OpenSpeedy游戏加速工具全解析

3个秘诀让游戏性能提升300%:OpenSpeedy游戏加速工具全解析 【免费下载链接】OpenSpeedy 项目地址: https://gitcode.com/gh_mirrors/op/OpenSpeedy 作为一款完全免费的开源游戏加速工具,OpenSpeedy能够有效突破游戏帧率限制,通过精准…

作者头像 李华
网站建设 2026/5/9 4:57:48

Qwen3-VL-8B开源大模型部署:ModelScope模型自动下载+断点续传支持

Qwen3-VL-8B开源大模型部署:ModelScope模型自动下载断点续传支持 1. 为什么你需要一个真正能落地的Qwen3-VL-8B聊天系统 你可能已经试过不少大模型Web界面,但总卡在几个地方:模型下到一半断网、显存不够直接崩、改个端口要翻三四个配置文件…

作者头像 李华