嵌入式C ++:是否使用STL?

我一直是嵌入式软件工程师,但通常在OSI堆栈的第3层或第2层。我不是一个真正的硬件专家。我通常总是做电信产品,通常是手提电话/手机,这通常意味着类似ARM 7处理器的东西。

现在,我发现自己处于一个更通用的嵌入式世界中,这是一个小型初创公司,在那儿我可能会转向“功能不那么强大”的处理器(有主观知识)-我无法预测哪个。

我已经读了很多有关在嵌入式系统中的C ++中使用STL的争论,并且没有明确的答案。有一些关于可移植性的小问题,还有一些关于代码大小或运行时的问题,但是我有两个主要的担忧:
1-异常处理;我仍然不确定是否要使用它(请参阅嵌入式C ++:是否使用异常?)
2-由于嵌入式系统可能带来的问题,我非常不喜欢嵌入式系统中的动态内存分配。我通常有一个缓冲池,该缓冲池在编译时静态分配,并且仅提供固定大小的缓冲区(如果没有缓冲区,则系统复位)。STL当然会进行很多动态分配。

现在,我必须决定是整个公司永远使用还是放弃STL(它涉及一些非常核心的软件)。

我跳哪条路?超级安全并丢失了构成C ++的大部分内容(imo,不仅是语言定义),而且以后可能会遇到问题,还是不得不添加大量异常处理以及现在可能还有其他一些代码?

我很想只使用Boost,但是1)我不确定它是否可以移植到我可能要使用的每个嵌入式处理器上,以及2)在他们的网站上,他们说他们不保证/不推荐它的某些部分。用于嵌入式系统(尤其是FSM,这似乎很奇怪)。如果我去助推器&以后我们发现问题....

转载请注明出处:http://www.gztaineng.com/article/20230526/888443.html