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/4/18 1:42:56

亲测Verl框架:用Qwen2.5-0.5B实现强化学习训练全流程分享

亲测Verl框架:用Qwen2.5-0.5B实现强化学习训练全流程分享 1. 为什么选Verl?一个为LLM后训练而生的RL框架 你有没有试过用PPO训练大语言模型,却卡在环境配置、显存爆炸、数据格式转换、算子不兼容这些环节上?我试过——在一块201…

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

ccmusic-database在音乐NFT发行中的应用:流派元数据自动生成与验证

ccmusic-database在音乐NFT发行中的应用:流派元数据自动生成与验证 1. 为什么音乐NFT需要可靠的流派标签? 你有没有试过买一张音乐NFT,点开详情页却只看到“Unknown Genre”或者一个模糊的“Electronic”?更尴尬的是&#xff0c…

作者头像 李华
网站建设 2026/4/17 13:57:59

如何用6大秘诀突破SketchUp到3D打印的技术壁垒

如何用6大秘诀突破SketchUp到3D打印的技术壁垒 【免费下载链接】sketchup-stl A SketchUp Ruby Extension that adds STL (STereoLithography) file format import and export. 项目地址: https://gitcode.com/gh_mirrors/sk/sketchup-stl 您是否曾经历过这样的困境&…

作者头像 李华
网站建设 2026/4/18 23:32:40

Hunyuan-MT-7B企业级落地:支持JWT鉴权、审计日志、翻译用量统计后台

Hunyuan-MT-7B企业级落地:支持JWT鉴权、审计日志、翻译用量统计后台 1. 为什么企业需要一个“能管得住”的翻译模型? 很多团队在尝试部署开源翻译模型时,都会遇到类似的问题:模型跑起来了,但没人知道谁在用、用了多少…

作者头像 李华
网站建设 2026/4/18 4:02:23

效果惊艳!科哥版Emotion2Vec+识别愤怒、快乐等真实案例展示

效果惊艳!科哥版Emotion2Vec识别愤怒、快乐等真实案例展示 1. 开篇:语音里藏着的情绪密码,这次真的被“听懂”了 你有没有过这样的经历:电话那头的朋友声音低沉疲惫,你脱口而出“你是不是不太开心?”——…

作者头像 李华
网站建设 2026/4/18 21:33:23

窗口置顶工具:让多任务处理效率倍增的实用工具

窗口置顶工具:让多任务处理效率倍增的实用工具 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop 窗口置顶工具是一款能够提升多任务处理效率的实用工具,它可…

作者头像 李华