news 2026/6/10 12:44:37

嵌入式地址对齐引入的问题和解决方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式地址对齐引入的问题和解决方法

背景

通过串口传输float类型数据,接收后将接收到的数组通过float_tval=*(float_t*)(u_buf+5)进行强制转换为float类型,概率性出错,进入了HardFault

问题原因

float为4字节对齐,uint8_t是1字节对齐,进行转换的数组位置不一定是4字节对齐的起始,所以出现HardFault。

当然,不同系统中传输过去的数据也要考虑大小端问题。STM32(常见为 Little Endian)下,低地址存放低字节;

解决方法

1.利用memcpy,将内容复制到float类型变量

#include <string.h> uint8_t u_buf22[] = {0xAA, 0x19, 0x04, 0x9E, 0x3F}; float f; memcpy(&f, u_buf22 + 1, sizeof(f)); // 安全地读取 4 字节到对齐的 float 变量 printf("value = %f\r\n", f);

2.利用uint32_t 组装再转换

uint32_t tmp = (uint32_t)u_buf22[1] | ((uint32_t)u_buf22[2] << 8) | ((uint32_t)u_buf22[3] << 16) | ((uint32_t)u_buf22[4] << 24); float f; memcpy(&f, &tmp, sizeof(f)); // 将位样复制到 float

3.利用union

union { uint32_t u; float f; } conv; conv.u = (uint32_t)u_buf22[1] | ((uint32_t)u_buf22[2] << 8) | ... ; printf("%f\n", conv.f);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:34:51

博德之门3脚本扩展器:打造专属游戏世界的终极工具

博德之门3脚本扩展器&#xff1a;打造专属游戏世界的终极工具 【免费下载链接】bg3se Baldurs Gate 3 Script Extender 项目地址: https://gitcode.com/gh_mirrors/bg/bg3se 你是否厌倦了博德之门3原有的游戏限制&#xff1f;想要创造完全属于自己的冒险故事&#xff1f…

作者头像 李华
网站建设 2026/6/10 1:58:53

STM32与Keil5联合仿真:核心要点讲解

STM32与Keil5联合仿真&#xff1a;从零开始的实战教学你有没有遇到过这样的场景&#xff1f;硬件工程师还在画PCB&#xff0c;软件却已经等不及要写代码了&#xff1b;项目紧急&#xff0c;但下载器坏了、目标板没到货&#xff0c;只能干瞪眼&#xff1b;刚写的驱动一烧进去就“…

作者头像 李华
网站建设 2026/6/10 11:38:44

PDF补丁丁:零基础入门到精通的全能PDF处理神器

PDF补丁丁&#xff1a;零基础入门到精通的全能PDF处理神器 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱&#xff0c;可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档&#xff0c;探查文档结构&#xff0c;提取图片、转成图片等等 项目地址: https://gitcode.c…

作者头像 李华
网站建设 2026/6/10 11:38:23

性能优化:Youtu-2B在低显存环境下的调优技巧

性能优化&#xff1a;Youtu-2B在低显存环境下的调优技巧 1. 引言&#xff1a;轻量模型的现实挑战与优化价值 随着大语言模型&#xff08;LLM&#xff09;在各类应用场景中的广泛落地&#xff0c;端侧部署和低算力环境运行成为实际工程中不可忽视的需求。Youtu-LLM-2B作为腾讯…

作者头像 李华
网站建设 2026/5/3 11:57:30

PAGExporter终极指南:解锁跨平台动画渲染新纪元

PAGExporter终极指南&#xff1a;解锁跨平台动画渲染新纪元 【免费下载链接】libpag The official rendering library for PAG (Portable Animated Graphics) files that renders After Effects animations natively across multiple platforms. 项目地址: https://gitcode.c…

作者头像 李华
网站建设 2026/5/11 8:16:32

模型部署常见问题:cv_unet_image-matting刷新重置参数指南

模型部署常见问题&#xff1a;cv_unet_image-matting刷新重置参数指南 1. 引言 在基于 U-Net 架构的图像抠图项目 cv_unet_image-matting 中&#xff0c;WebUI 界面由开发者“科哥”进行二次开发构建&#xff0c;提供了直观、易用的操作体验。该工具支持单图与批量人像抠图&a…

作者头像 李华