gpt4 book ai didi

list - 在嵌入式系统上使用动态数据结构有多糟糕?

转载 作者:行者123 更新时间:2023-12-02 23:13:16 25 4
gpt4 key购买 nike

因此,在我明年将在大学学习的嵌入式系统单元中,我们将了解到动态数据结构在嵌入式系统程序中是一件坏事。但讲义并没有说明原因。

现在我正在开发一个中等规模的嵌入式系统\“LURC” Controller ,主要只是利用 AVR169MEGA 的“Butterfly”演示板的外围设备。产生 4 个 PWM 信号来控制 Helm 机和 ESC。并提供9段液晶屏。

现在我想不出比队列更好的方法来存储通过 USART 串​​行接收的指令。特别是对于那些我需要等待直到收到未知数​​量的数据的情况:例如要在 LCD 屏幕上显示的字符串。

那么为什么不在嵌入式系统的微 Controller 上使用动态数据结构呢?是否只是您处于内存严重受限的环境中,并且必须确保您的 malloc 成功?

最佳答案

不在嵌入式系统中使用 malloc(或等效项)的原因有很多。

  • 正如您提到的,重要的是不要突然发现自己失忆了。
  • 碎片 - 嵌入式系统可以运行多年,碎片可能会导致严重的内存浪费。
  • 并不是真正需要的。动态内存分配允许您在不同时间重复使用相同的内存来执行不同的操作。嵌入式系统往往总是做同样的事情(启动时除外)。
  • 速度。动态内存分配要么相对较慢(并且随着内存碎片化而变得更慢),要么相当浪费(例如好友系统)。
  • 如果您要为不同的线程和中断使用相同的动态内存,则分配/释放例程需要执行锁定,这可能会导致中断服务速度不够快。
  • 动态内存分配使得调试非常困难,特别是对于嵌入式系统上可用的一些有限/原始调试工具而言。如果您静态分配东西,那么您始终知道东西在哪里,这意味着检查某些东西的状态要容易得多。

最重要的是 - 如果您不动态分配内存,则不会出现内存泄漏。

关于list - 在嵌入式系统上使用动态数据结构有多糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1725923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com