news 2026/4/18 7:17:48

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/3/20 22:50:16

Z-Image-ComfyUI指令跟随功能体验报告

Z-Image-ComfyUI指令跟随功能体验报告 Z-Image不是又一个“能出图”的文生图模型,而是一次面向真实工作流的重新定义。当多数开源模型还在用30步采样换取基础可用性时,Z-Image-Turbo以8步完成高质量生成、中英文双语原生支持、16G显存稳定运行的工程表现…

作者头像 李华
网站建设 2026/4/18 7:12:41

系统优化3个维度:让你的电脑重获新生的空间释放指南

系统优化3个维度:让你的电脑重获新生的空间释放指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当你的电脑开始频繁卡顿、文件保存速度变慢&#…

作者头像 李华
网站建设 2026/4/10 19:24:31

Stable Diffusion用户转Z-Image-Turbo:迁移部署注意事项对比指南

Stable Diffusion用户转Z-Image-Turbo:迁移部署注意事项对比指南 1. 为什么Stable Diffusion老用户需要关注Z-Image-Turbo 如果你已经用Stable Diffusion跑了半年以上,每天调参、换模型、修LoRA、折腾ControlNet,甚至自己写过WebUI插件——…

作者头像 李华
网站建设 2026/4/8 15:26:21

BetterJoy:3大核心创新重构Switch控制器跨平台体验

BetterJoy:3大核心创新重构Switch控制器跨平台体验 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: https://gitcode.com/gh_…

作者头像 李华
网站建设 2026/4/16 19:49:50

数字模型实体化:Blender到3D打印的完整解决方案

数字模型实体化:Blender到3D打印的完整解决方案 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl Blender作为开源3…

作者头像 李华