【发布时间】:2013-08-28 09:08:53
【问题描述】:
我不知道如何提出这个问题,但它是这样的:
在我的 Atmel MCU 上使用 c++ 进行编程时,我倾向于在同一个数据存储器中混合使用“程序”变量和“用户”变量。这在时间上很麻烦,因为我想做一些可以加载或保存的预设。而且我不希望保存“程序”变量,因为程序将根据“用户”值生成正确的值。将其拆分在内存中是常见的做法吗?例如。 PGM-Memory 中的 timercounter,DATA-memory 中的 thresholdByUser?
在我的程序中,我创建了几个不同的函数,它们都有自己的一组用户变量。 例如:设置有 5 个用户变量,生成器有 6 个用户变量等... 你会制作 1 个大数组,然后将
#define settingsgeneratorSpeed 1, #define settingsBacklight 2作为地方,所以你可以这样称呼它们:Array[generatorSpeed], Array[settingsBacklight]还是你仍然会拆分它并使用 struct orso 收集它们?
在 STK500 上使用 ATMEGA644 处理 atmelstudio 4.0。
感谢您提供的所有帮助!
【问题讨论】:
-
您是在问低功耗嵌入式硬件的限制条件吗?您的担忧对于一般的 C++ 编程并不真正有效。
-
嗨,我不是在问约束。我正在寻求有关编程结构的帮助。上述问题的常见做法是什么。
-
好吧,正如我所说,您的担忧在一般 C++ 编程中无效。编译器将构造数据,找出寻址模式,每次计算偏移量和所有这些东西。既然您提到了“相同的数据内存”,我假设您的目标是功能有限的硬件,一些嵌入式平台有自己的棘手领域。无论如何,如果您想将相关设置“打包”在一起,为什么不直接使用结构呢?这也将确保正确对齐。
-
请指定您的架构。 AVR 的答案与 ARM 的答案大不相同。
-
我正在使用 atmelstudio 4.0(我更喜欢 6.0)