灵异事件后续: C++代码里面进行浮点数计算就会破坏内存

2022-03-07 16:38:49 +08:00
 villivateur

前言: https://v2ex.com/t/837189

设备平台:Xilinx Zynq 7010s

架构:Arm Cortex-A9

嵌入式操作系统:FreeRTOS

现象:只要在程序中(不管是中断还是普通线程)执行浮点数操作(乘除),另一个线程里面的 TCP/IP 协议栈缓存区数据就会中等概率被破坏。

使用的平台有双精度 FPU ,并且在 g++ 里面已经启用,尝试修改 g++ 关于 FPU 的编译参数,无效。

4002 次点击
所在节点    C++
22 条回复
LANB0
2022-03-08 15:14:00 +08:00
之前碰到过类似问题,64 位平台 tx1 设备上,某一特定位置,只要一操作指针类型转换就崩溃,前面加条 printf 打印就正常。后来排查是内存非对齐访问触发了对齐异常
kingcanfish
2022-03-08 16:15:05 +08:00
@shyrock 经典二分了属于是

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/838643

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX