请张贴在为嵌入式系统设计或编码时应牢记的要点。
我没有提供编译器或平台详细信息,因为我想要通用信息。但是,也欢迎任何有关基于 Linux 的操作系统的具体信息。
请张贴在为嵌入式系统设计或编码时应牢记的要点。
我没有提供编译器或平台详细信息,因为我想要通用信息。但是,也欢迎任何有关基于 Linux 的操作系统的具体信息。
取决于你想得到多低。我目前正在为财务打印机编码,没有操作系统,主要规则是没有动态内存分配。有趣的是,我仍然说服工作人员编写完全现代的 C++ ;)。
实际上,我们决定了一些规则:
没有一般的答案,只有特定于语言/平台的答案......但是
内存占用小...
还会有更多。
对于真正的低占用空间,请考虑直接进行组装。
我们都知道 C 或 C++ 中的 Hello World 是 20kb+(因为所有链接的默认库)。在组装中,这个开销已经消失了。正如评论中指出的那样,可以大大减少标准库。然而,事实仍然是,在编写汇编代码时可以获得的代码密度远高于编译器从高级语言生成的代码密度。因此,对于每个字节都很重要的代码,请使用汇编。
同样,当在处理器能力较差的设备上编程时,用汇编语言编程可能是使程序足够快以使其足够实时以(例如)控制机器的唯一方法
当面临这样的限制时,建议预先分配内存以保证系统在负载下工作。诸如“对象池”之类的设计模式可用于在系统内共享资源。
C语言支持严格的资源(即内存和计算周期)控制。应该强烈考虑。
避免递归,因为它很容易被滥用并且可能导致堆栈溢出情况。