我们目前正在重新设计我们的嵌入式软件,并且正在从8位到32位Cortex-M微控制器。内存非常有限(128 kByte Flash和32 kByte RAM)。 在another thread中,建议使用嵌入式软件库(www.redblocks.de)。它似乎很好地满足了我的需求,但需要使用C ++。 有没有人像我们这样在嵌入式平台上有C ++经验?我想知道与C相比,我正在处理什么样的开销。
答案 0 :(得分:6)
根据您使用的C ++功能,与C.相比,几乎没有开销。
以下是一些比较的功能:
我认为最具挑战性的问题是开发人员的知识。 C ++,特别是在使用模板时,是一种比C语言更复杂的语言。所以你需要一群相当不错的开发人员。
但是,如果你想要一个干净和可重用的面向对象设计,C ++肯定是比C更好的选择。
答案 1 :(得分:2)
我自己不是嵌入式开发人员,但我有几位同事在你所针对的微控制器上使用c ++。
语言本身并没有增加很多开销,但如果你的Flash / RAM有限,不推荐使用标准库(容器,算法......)。
如果表演是一个问题,您可能还想避免RTTI和例外。
有关this paper或this page的更多信息。
书籍Effective C++ in an Embedded Environment表格Scott Meyers也是一个非常好的信息来源。