Skip to content

嵌入式常见陷阱

malloc 慎用原因

  • 容易形成碎片,长期运行内存不可预期。
  • 分配/释放耗时不确定,破坏实时性。
  • 调试困难,泄漏和双重释放定位成本高。

volatile 的边界

  • volatile 只保证每次访问都触发实际读写,不提供原子性或互斥;不能单独保证线程安全。

packed 结构体 on ARM

  • 关闭对齐可能导致非对齐访问,轻则性能下降,重则触发总线错误;需配合 __attribute__((packed)) 或手工字节序列化并留意硬件支持。