【发布时间】:2014-02-17 10:53:15
【问题描述】:
定义数百个用于嵌入式 C 程序的双精度(64 位浮点)常量的最节省内存的方法是什么?请注意,此应用程序受内存限制,我需要尽可能多地节省 RAM。
这是一款 Atmel AVR,带有 2048B RAM,时钟频率为 8MHz。 32K 闪存。
【问题讨论】:
-
在什么方面有效率?内存、速度、编译简单性?
-
在源代码方面还是什么?如果您有完整的常量列表,则可以构建压缩方案。
-
我澄清了最初的问题 - 我正在尝试最大限度地减少内存使用量。压缩不是一个可行的选择。
-
如果压缩不是一个选项,你应该如何消耗总共少于 64*N 位?
-
:) “在需要时加载到内存中” 您只是在放置它们的位置之间进行选择——在代码或数据部分。您的程序将自然地至少使用每个常量一次,因此它们都将在代码部分中,这不少于,但可能超过数据部分中每个常量的单个记录。但是随后代码将引用它们,这将为每个常量添加一个指针。不确定什么更“有效”,但这需要经过大量测试,可能不是为了问 SO。