当前位置:  开发笔记 > 编程语言 > 正文

开发嵌入式软件库,C或C++?

如何解决《开发嵌入式软件库,C或C++?》经验,为你挑选了3个好方法。

我正在开发一个软件库,用于嵌入式系统,如ARM芯片或TI DSP(对于大多数嵌入式系统,但如果它也可以在PC环境中使用它也会很好).显然,这是一个非常广泛的目标系统,因此能够轻松移植到不同的系统是一个优先事项.该库将用于与特定硬件接口并运行一些算法.

我认为C++是C语言的最佳选择,因为它更易于维护和阅读.我认为额外的开销是值得的,因为它能够在面向对象的范例中工作.如果我是为一个非常具体的系统编写的,我会在C中工作,但事实并非如此.

我假设现在大多数流行嵌入式系统的编译器都可以处理C++.它是否正确?

我还应该考虑其他因素吗?我的思路是否正确?



1> Eli Bendersk..:

如果可移植性对您来说非常重要,特别是在嵌入式系统上,那么C肯定是比C++更好的选择.虽然嵌入式平台上的C++编译器正在迎头赶上,但是C的广泛使用并不匹配,因为任何自尊平台都有兼容的编译器.

而且,我不认为C在连接硬件方面不如C++.抽象量足够低(即没有深层次的层次结构),使C成为一个很好的选择.



2> doron..:

对于ARM来说,C++肯定有很好的支持.ARM有自己的编译器和g ++也可以生成符合EABI的ARM代码.对于DSP,你必须查看他们的工具链来决定你将要做什么.请注意,DSP附带的库可能无法实现完整的C或C++标准库.

C++适用于低级嵌入式开发,用于SymbianOS内核.话虽如此,你应该尽可能地保持简单.

避免可能需要更多库支持的异常(因此使用new(std :: nothrow)Foo而不是new Foo).

尽可能避免内存分配,并尽早完成.

避免复杂的模式.

请注意,模板可能会使代码膨胀.



3> Kaz Dragon..:

我看到很多人抱怨C++"臃肿"并且不适合嵌入式系统.

然而,在接受Stroustrup和Sutter采访时,Bjarne Stroustrup提到他看到了大量模板化的C++代码(IIRC)进入了宝马的制动系统,以及战斗机的导弹制导系统.

我从这里得到的是,该语言的专家可以用C++生成复杂,高效的代码,这些代码当然适用于嵌入式系统.但是,"C With Classes"[1]程序员不知道里面的语言会生成不合适的膨胀代码.

问题归结为一如既往:您的团队可以用哪种语言提供最好的产品?

[1]我知道这听起来有点贬义,但是我要说我认识了很多这些人,他们制作了大量相对简单的代码来完成工作.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有